Đây là lệnh perf-trace có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
perf-trace - công cụ lấy cảm hứng từ strace
SYNOPSIS
perf theo dõi
perf theo dõi ghi
MÔ TẢ
Lệnh này sẽ hiển thị các sự kiện được liên kết với mục tiêu, ban đầu là các cuộc gọi tổng hợp, nhưng
các sự kiện hệ thống khác như mặc định trang, sự kiện toàn thời gian của nhiệm vụ, sự kiện lập lịch, v.v.
Đây là một công cụ chế độ trực tiếp ngoài việc làm việc với các tệp perf.data giống như các perf khác
công cụ. Tệp có thể được tạo bằng cách sử dụng perf ghi lệnh nhưng phiên cần phải
bao gồm các sự kiện raw_syscalls (-e raw_syscalls: *). Ngoài ra, perf theo dõi ghi có thể
được sử dụng như một lối tắt để tự động bao gồm các sự kiện raw_syscalls khi viết sự kiện
vào một tệp.
Các tùy chọn sau áp dụng cho dấu vết hoàn hảo; các tùy chọn để ghi lại dấu vết hoàn hảo được tìm thấy trong
trang người đàn ông ghi perf.
LỰA CHỌN
-a, - tất cả-cpus
Bộ sưu tập toàn hệ thống từ tất cả các CPU.
-e, --expr
Danh sách các cuộc gọi tổng hợp để hiển thị, hiện chỉ có tên các cuộc gọi tổng hợp. Tiền tố với! hiển thị tất cả
syscalls trừ những cuộc gọi được chỉ định. Bạn có thể cần phải thoát khỏi nó.
-o, --output =
Tên tệp xuất ra.
-p, --pid =
Ghi lại các sự kiện trên ID quy trình hiện có (danh sách được phân tách bằng dấu phẩy).
-t, --tid =
Ghi lại các sự kiện trên ID luồng hiện có (danh sách được phân tách bằng dấu phẩy).
-u, --uid =
Ghi lại các sự kiện trong chuỗi do uid sở hữu. Tên hoặc số.
--filter-pids =
Lọc ra các sự kiện cho các pids này và cho theo dõi chính nó (danh sách được phân tách bằng dấu phẩy).
-v, --verbose =
Mức độ chi tiết.
- không thừa kế
Nhiệm vụ con không kế thừa bộ đếm.
-m, --mmap-trang =
Số lượng trang dữ liệu mmap (phải là lũy thừa của hai) hoặc thông số kỹ thuật kích thước được nối thêm
ký tự đơn vị - B / K / M / G. Kích thước được làm tròn để có sức mạnh hai trang gần nhất
giá trị.
-C, --cpu
Chỉ thu thập mẫu trên danh sách CPU được cung cấp. Nhiều CPU có thể được cung cấp như một
danh sách được phân tách bằng dấu phẩy không có khoảng trắng: 0,1. Phạm vi CPU được chỉ định bằng -: 0-2. Trong
chế độ per-thread với chế độ kế thừa được bật (mặc định), Sự kiện chỉ được ghi lại khi
luồng thực thi trên các CPU được chỉ định. Mặc định là giám sát tất cả các CPU.
--duration: Chỉ hiển thị các sự kiện có thời lượng lớn hơn NM ms.
--sched: Tích lũy thời gian chạy chuỗi và cung cấp bản tóm tắt vào cuối phiên.
-i --input Xử lý các sự kiện từ một tệp dữ liệu hiệu suất nhất định.
-T --time In dấu thời gian đầy đủ thay vì thời gian so với mẫu đầu tiên.
--comm
Hiển thị quy trình COMM ngay bên cạnh ID của nó, theo mặc định, tắt bằng --no-comm.
-s, --tóm tắt
Chỉ hiển thị tóm tắt các cuộc gọi tổng hợp theo chuỗi với thời gian tối thiểu, tối đa và trung bình (tính bằng mili giây)
và tương đối stddev.
-S, - với-tóm tắt
Hiển thị tất cả các cuộc gọi tổng hợp theo sau bởi một bản tóm tắt theo chuỗi với thời gian tối thiểu, tối đa và trung bình (trong
msec) và stddev tương đối.
--tool_stats
Hiển thị số liệu thống kê của công cụ chẳng hạn như số lần fd → tên đường dẫn được phát hiện thông qua việc kết nối
mở syscall return + vfs_getname hoặc qua read / proc / pid / fd, v.v.
-F = [tất cả | min | maj], --pf = [all | min | maj]
Theo dõi trang mặc định. Theo tùy chọn, bạn có thể chỉ định xem bạn muốn phụ, chính hay tất cả
trang mặc định. Giá trị mặc định là Maj.
--tòa nhà
Hệ thống theo dõi các cuộc gọi. Tùy chọn này được bật theo mặc định.
--Sự kiện
Theo dõi các sự kiện khác, xem perf để có một danh sách đầy đủ.
--proc-map-hết thời gian
Khi xử lý các chuỗi / proc / XXX / mmap có từ trước, có thể mất nhiều thời gian, vì
tệp có thể rất lớn. Một khoảng thời gian là cần thiết trong những trường hợp như vậy. Tùy chọn này đặt thời gian
ngoài giới hạn. Giá trị mặc định là 500 ms.
TRANG PHỤC
Khi theo dõi trang mặc định, định dạng của dấu vết như sau:
lỗi [ + ] ⇒[email được bảo vệ][1]> (
mức>).
· Min / maj cho biết sự kiện lỗi là nhỏ hay lớn;
· Ip.symbol hiển thị biểu tượng cho con trỏ lệnh (mã tạo ra lỗi); nếu như
không có ký hiệu gỡ lỗi nào, dấu vết hoàn thiện sẽ in IP thô;
· Addr.dso hiển thị DSO cho địa chỉ bị lỗi;
· Loại bản đồ là d cho các bản đồ không thể thực thi hoặc x cho các bản đồ thực thi;
· Mức addr là k cho kernel dso hoặc . cho người dùng dso.
Đối với độ phân giải các ký hiệu, bạn có thể cần phải cài đặt các ký hiệu gỡ lỗi.
Xin lưu ý rằng thời lượng hiện luôn bằng 0 và không phản ánh thời gian thực tế
đã nhận lỗi để được xử lý!
Khi --verbose được chỉ định, perf trace sẽ cố gắng in tất cả thông tin có sẵn cho cả IP
và địa chỉ lỗi ở dạng ký hiệu dso @[2] + bù trừ.
VÍ DỤ
Chỉ theo dõi các trang mặc định chính:
$ dấu vết hoàn hảo --no-syscalls -F
Theo dõi cuộc gọi hệ thống, mặc định trang chính và phụ:
$ dấu vết hoàn hảo -F tất cả
1416.547 (0.000 ms): python / 20235 majfault [CRYPTO_push_info_ + 0x0] => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0@ 0x61be0 (x.)
Như bạn có thể thấy, đã xảy ra lỗi trang lớn trong quá trình python, từ
CRYPTO_push_info_ quy trình bị lỗi ở đâu đó trong libcrypto.so.
Sử dụng perf-trace trực tuyến bằng các dịch vụ onworks.net