27

Mac OS X でプロセスごとのディスク I/O 統計をプログラムで取得するにはどうすればよいですか。「Activity Monitor」アプリケーションまたは「top」コマンドでは、システム全体のディスク I/O 統計しか取得できません。
参考までに PC にも同様の質問がありました。

4

5 に答える 5

36

iotopたとえば、(ルートとして)使用します。

iotop -C 3 10

しかし、(私にとって)最良の方法は次のとおりです。

sudo fs_usage -f filesys
于 2013-05-08T22:36:27.160 に答える
4

プログラムでこれを行う方法についての回答はここにないため、ここにいくつかの詳細情報があります。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>を参照してください。

于 2016-08-26T14:21:37.937 に答える