我有一些已知名称的进程,它们都写入单个目录中的文件。我想记录的数量一段时间内磁盘块的读写次数(不是只是文件访问)来测试参数更改是否会显着减少 I/O 量。我目前正在使用iostat -d -p
,但这仅限于整个分区。
答案1
我意识到这听起来既简单又荒谬,但是如果您可以控制有问题的应用程序(也许在测试环境中),您可以仅在其自己的分区上安装该目录,然后iostat
等等只会告诉您关于它,在那一点上没有其他任何事情。
如果涉及物理驱动器,您可以使用环回安装来伪造它
dd if=/dev/zero of=/bigdisk/LOOPFILE bs=1024m count=1024m # 1gb loopback file
mke2fs -j /bigdisk/LOOPFILE
mkdir /tmpcopy
mount -o loop /tmpcopy /bigdisk/LOOPFILE
cp -r -p $SPECIALDIR2MONITOR /tmpcopy
umount /tmpcopy
mount -o loop $SPECIALDIR2MONITOR /bigdisk/LOOPFILE,
这不会完全删除所有竞争的磁盘 I/O,但我很确定 的iostat
输出将更具体地满足您的需求。
答案2
您可以使用inotifywait -m DIRNAME
来自inotify 工具。