在 iostat 中追踪哪些文件导致 io 活动

在 iostat 中追踪哪些文件导致 io 活动

使用

iostat -Nkx 1

我可以看到我在卷组上获得了常规 IO。我试图找到一种方法将该 IO 链接到文件/管道/其他内容,以查看哪个进程正在创建此 IO 以及它到达了哪个目的地。有人遇到过这个问题并解决了吗?

答案1

我想不出一个确定的方法,但这是一个应该能起到一定作用的尝试。我认为,你可以使用 blktrace 并收集数据,然后使用 blkparse 查看数据。系统调用应该显示哪些负责生成 IO。然后,如果你能将系统调用映射到相应的文件,那么你就能得到一些线索。例如,如果你看到大量的 mkdir 调用,并且你创建了一个新目录或类似的东西,那么你可以将 IO 归因于此。

您甚至可以使用它,然后使用 seekwatcher 查看文件系统级别的 IO 模式,但是,我真的不知道有什么工具可以获取哪些文件负责 IO。

答案2

你看过了吗iotop尝试通过名称或进程 ID (PID) 隔离有问题的进程?这样lsof -p PID就能合理地了解正在使用的主要文件。

相关内容