如何列出最消耗 IO 的文件?

Nic*_*oul 11 monitoring disk-usage

我的文档管理软件正在执行大量 IO,我想知道它访问最多的文件。

有没有一个 Linux 工具可以每隔几秒钟给我一个最消耗 IO 的文件的列表,比如 iotop 但对于文件?

这可能看起来像:

$ thetool
THRPUT   R/W/SWP FILE
40MB/s   write   /usr/alfresco/repo/1283421/1324928.doc
12MB/s   read    /usr/alfresco/cache/3928dh29f8if
11MB/s   read    /tmp/239398hf2f024f472.tmp
Run Code Online (Sandbox Code Playgroud)

我看着的手册页iotoplsofstrace他们似乎并没有提供这样的功能。

Dav*_*rtz 2

我认为您的“字节数”指标是错误的。考虑两个访问。从一个文件中读取 10MB。另一个读取文件的每 512 个字节,获取前 10MB。与第二次访问相比,第一次访问的“字节数”将增加 512 倍。然而,它们都会给 I/O 子系统带来完全相同的负载。

如果您可以接受“操作数”(它与“字节数”一样好或一样坏),那么您就拥有了可以实际测量的东西。该inotifywatch程序执行此操作,并且它可能是您的发行版inotify-tools包的一部分。

它会立即告诉您哪些文件构成了大部分访问,并且可能会帮助您解决实际问题。