time
如果您想弄清楚给定命令需要多少CPU时间,这是一个很棒的命令。
我正在寻找类似的东西,可以衡量该程序和任何子项的磁盘I / O。优选地,它应该区分已缓存(因此不会导致磁盘旋转)的I / O和未缓存的I / O。
所以我想做:
iomeassure my_program my_args
并获得类似于以下内容的输出:
Cached read: 10233303 Bytes
Cached write: 33303 Bytes # This was probably a tmp file that was erased before making it to the disk
Non-cached read: 200002020 Bytes
Non-cached write: 202020 Bytes
我已经看过了vmstat
,iostat
和sar
,但这些都不是在看一个单一的过程。相反,他们着眼于整个系统。
我已经看过了iotop
,但是此刻只给了我一个视角。
-编辑-
snap的答案似乎很接近。
“文件系统输入:”是512字节块中的非缓存读取。
“文件系统输出:”是以512字节块为单位的缓存写操作。
您可以通过以下方法强制将缓存清空:
sync ; echo 3 | sudo tee /proc/sys/vm/drop_caches >/dev/null
我测试了:
seq 10000000 > seq
/usr/bin/time -v bash -c 'perl -e "open(G,\">f\"); print G <>;close G; unlink \"f\";" seq'