在我的系统上,sar
报告对磁盘的平均写入速度约为 5MB/s。使用dstat
我发现它不是那么永久,但是有 30-50MB/s 的峰值,然后是睡眠。
使用iotop
我发现大部分写作都是由一个应用程序完成的(但我不知道它有多确定)。
使用strace
并且fatrace
我看到该应用程序打开,在不同目录中创建文件,然后关闭/删除它们。有很多文件,但我没有看到strace
太多的文字。我试图找出更多使用/proc/pid/fd
来查看是否有任何文件不断增加(日志等),但我找不到任何文件。所以我的结论是,所有的写入都是通过应用程序创建的小临时文件完成的。
如何检查每个文件写入了多少?我想要一份报告,其中包含写入每个文件的字节数。
有什么办法吗?我考虑过重写系统调用open
并write
监视对每个文件的更改,或者使用systemtap
但我希望有更简单的方法。
Brendan Gregg 的iosnoop
(他的一部分perf-tools
)将为您提供有关应用程序 I/O 的详细信息;例如:
# ./iosnoop
Tracing block I/O... Ctrl-C to end.
COMM PID TYPE DEV BLOCK BYTES LATms
supervise 1809 W 202,1 17039968 4096 1.32
supervise 1809 W 202,1 17039976 4096 1.30
tar 14794 RM 202,1 8457608 4096 7.53
tar 14794 RM 202,1 8470336 4096 14.90
tar 14794 RM 202,1 8470368 4096 0.27
tar 14794 RM 202,1 8470784 4096 7.74
tar 14794 RM 202,1 8470360 4096 0.25
tar 14794 RM 202,1 8469968 4096 0.24
tar 14794 RM 202,1 8470240 4096 0.24
[...]
Run Code Online (Sandbox Code Playgroud)
(示例取自他的博客文章)。
您可以使用它来跟踪所有系统的 I/O 如上所述,或将其限制为单个进程、设备...
归档时间: |
|
查看次数: |
280 次 |
最近记录: |