41.2. 使用 SystemTap 跟踪每个文件的 I/O 时间
您可以使用 iotime.stp SystemTap 脚本监控每个进程从文件读取或写入到任何文件所需的时间。这有助于您确定系统上载入哪些文件。
先决条件
- 如安装 Systemtap 所述,已安装了 SystemTap。
流程
运行 iotime.stp 脚本:
stap --example iotime.stp
# stap --example iotime.stp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 脚本会在每次系统调用打开、关闭、读取以及写入文件时进行跟踪。对于每一个系统调用访问的文件,它会计算出任何读取或写入到完成并跟踪数据量(以字节为单位)的微秒数,以字节为单位,读取或写入文件。
输出包含:
- 微秒中的时间戳
- 进程 ID 和进程名称
-
access
或iotime
标志 已访问的文件
如果某个进程能够读取或写入任何数据,一对 access 和
iotime
行应同时出现。access 行指的是给定进程开始访问文件的时间。访问行的末尾将显示读取或写入的数据量。iotime
行显示进程执行读和写操作所使用的时间,以微秒为单位。
iotime.stp
脚本的输出类似如下: