簡體   English   中英

Mac OS X中的每個進程磁盤讀/寫統計信息

[英]Per Process disk read/write statistics in Mac OS X

如何在Mac OS X中以編程方式獲取每個進程磁盤的i / o統計信息。在“Activity Monitor”應用程序或“top”命令中,我們只能獲得整個系統磁盤的i / o統計信息。
供參考類似的問題要求PC。

使用iotop (以root身份),例如:

iotop -C 3 10

但最好的方法(對我來說)是:

sudo fs_usage -f filesys

由於這里沒有關於如何以編程方式執行此操作的答案,因此這里有更多信息。 如果可以使用C / C ++ / ObjectiveC ++,可以從libproc中獲取一些信息。 函數proc_pid_rusage為您提供了一組給定流程的資源信息,但與您的問題相關的信息是:

struct rusage_info_v3 {
    ...
    uint64_t ri_diskio_bytesread;
    uint64_t ri_diskio_byteswritten;
    ...
};

示例代碼:

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;
}

有關詳細信息,請參閱<libproc.h><sys/resource.h>

活動監視器在“磁盤”選項卡中顯示每個進程的I / O統計信息(可能是自提出此問題以來的新信息)。 在此輸入圖像描述 請參見“字節寫入”和“字節讀取”列。

由於OP專門要求我推薦的磁盤I / O統計數據

sudo fs_usage -f diskio

它只關注讀/寫事件,與接受的答案中提到的-f filesys相反。 (當時不知道diskio選項是否可用。)

我找到了iStat Menus ,它位於菜單欄中。 僅顯示前5個磁盤讀/寫用戶(我不確定它是否是總和,但它不排序)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM