哪些文件占用了我进程的大部分 I/O 时间?
Posted
技术标签:
【中文标题】哪些文件占用了我进程的大部分 I/O 时间?【英文标题】:Which files are taking most of my process's I/O time? 【发布时间】:2010-08-10 05:52:21 【问题描述】:我有一个相当大的 python 程序导致大量磁盘 I/O(top
、%wa
可以高达 80,iotop
说我的进程是罪魁祸首)。
有几件事可能导致此问题 - 我正在写入多个日志文件,并且我正在将缓存结果保存到多个位置的磁盘,因此我应该将注意力集中在哪里并不是很明显。
是否有 linux 工具或 python 技巧可以让我查看哪个子系统导致最多 I/O 操作?
【问题讨论】:
也许这会有所帮助? wiki.python.org/moin/PythonSpeed/PerformanceTips#ProfilingCode 当你运行分析器时,你学到了什么? 您可以查看 procfs 以鸟瞰程序正在使用的文件:ls -la /proc/您应该看看 SystemTap。它是非常强大的 Linux 系统调用跟踪和分析机制: http://sourceware.org/systemtap/wiki
我确信可以准确跟踪哪个文件描述符负责 IO 负载 - 但从 systemtap 开始会变得复杂。
【讨论】:
以上是关于哪些文件占用了我进程的大部分 I/O 时间?的主要内容,如果未能解决你的问题,请参考以下文章
查看系统的I/O使用iostat命令而使用iotop能够依据I/O统计信息排序,追踪到详细的进程