我想计算一下Linux中的命令消耗的IOs
例如,如果我运行'ls'命令,它应该消耗IOs
我已经试过这里的帮助了:
How to measure IOPS for a command in linux?
但是,我无法通过命令执行实际的IO操作。我想我得到的是命令执行的时间。
同样的,请帮忙。

最佳答案

应用程序在从文件或块设备读取/写入数据时执行系统调用(例如pread/pwrite)。有时这些系统调用会在存储设备级别产生实际IO,有时则不会。对于读操作,请求的数据可以从页面缓存提供。对于写入,可以将数据写入DRAM,然后异步刷新到存储设备。
可以使用strace查看应用程序的系统调用。例如,要跟踪与IO相关的系统调用,像strace -f -e file ls之类的东西应该打印所有与文件描述符相关的系统调用。您可以将输出重定向到一个文件,然后再进行处理。
使用iostat,例如iostat -d 1 -k -x,查看存储设备看到的IO数量。

09-11 18:39
查看更多