Làm cách nào để tôi có được số liệu thống kê theo quy trình đĩa i/o trong Mac OS X. Trong ứng dụng 'Activity Monitor' hoặc trong lệnh 'top', chúng tôi chỉ có thể lấy toàn bộ đĩa hệ thống i/o thống kê.
Để tham khảo Similar question asked for PC.Mỗi số liệu thống kê đọc/ghi đĩa trong Mac OS X
Trả lời
Sử dụng iotop
(như root), ví dụ:
iotop -C 3 10
Nhưng cách tốt nhất (đối với tôi) là:
sudo fs_usage -f filesys
rất tiện dụng. iotop chỉ cho tôi thấy rằng mds và mdworker đang đập đĩa của tôi. fs_usage cho thấy hàng tỷ tệp trong Mail.app đã được lập chỉ mục, vì vậy tôi đã chỉ cho tôi đúng hướng về vấn đề đó. –
Lưu ý rằng với El Capitan, nó không hoạt động, vì 'iotop' dựa vào' dtrace'. Và El Capitan vô hiệu hóa 'dtrace' với chế độ rootless (SIP). – Brice
Điều này cũng bị hỏng trên Sierra. –
Vì không có một câu trả lời ở đây về cách làm điều này theo chương trình, đây là một số thông tin khác. Bạn có thể lấy một số thông tin từ libproc nếu bạn có thể sử dụng C/C++/ObjectiveC++. Chức năng proc_pid_rusage
cung cấp cho bạn một loạt các thông tin tài nguyên cho một quá trình nhất định, nhưng những người liên quan đến câu hỏi của bạn là:
struct rusage_info_v3 {
...
uint64_t ri_diskio_bytesread;
uint64_t ri_diskio_byteswritten;
...
};
Mẫu mã:
pid_t pid = 10000;
rusage_info_current rusage;
if (proc_pid_rusage(pid, RUSAGE_INFO_CURRENT, (void **)&rusage) == 0)
{
cout << rusage.ri_diskio_bytesread << endl;
cout << rusage.ri_diskio_byteswritten << endl;
}
Xem <libproc.h>
và <sys/resource.h>
để biết thêm.
Tôi tìm thấy iStat Menus, nằm trong thanh trình đơn. Chỉ hiển thị 5 người dùng đọc/ghi đĩa hàng đầu (và tôi không chắc liệu đó có phải là tổng, nhưng nó không phân loại).
@Anoop Đây là một phần của công cụ giám sát bộ xử lý, không phải để hack – Raviprakash