Linux磁盘IO负载是否按文件系统路径和/或进程细分?


15

是否有人拥有可以通过文件系统路径指示磁盘IO负载的工具的经验?

我经常使用“ iostat”实用程序来了解Linux主机上发生了多少磁盘活动。“ iostat”提供了按设备划分的详细信息,因此您可以查看特定块设备上的活动。但这没有比这更深入的了,例如,您无法在目录“ / var / log / httpd /”中查询由“ httpd”生成的写负载。


您实际上无法按文件系统路径进行监视,因为在内核开始使用块设备时,还没有关于请求在树中何处的信息。另一方面,知道是哪个进程造成了损害,却使您陷入困境,这通常最终会导致同一件事。
womble

4
根据这些答案,我尝试了htop和iotop,它们似乎都具有基本功能来分解每个进程的IO速率。一些较大的差异:* htop具有很多功能,可以测量各种系统统计信息,而iotop仅查看每个进程的IO速率。*第一次使用iotop会更容易一些,因为它更简单。* iotop的“ -o”(“仅”)标志隐藏了不参与IO的进程,这在排除磁盘占用问题时非常有用。我在htop中找不到类似的内容。两种工具都可以使用,但是为此我将使用iotop。
Ryan B. Lynch,2009年

1
还有一个顶部,它以交互方式显示每个进程的实时和历史数据。
东武

Answers:


18

您可以将iotop用于此目的。

我的工作就像正常的上衣,我不能说更多。大多数发行版都将其打包,但这是其主页。您将需要一个新的内核。


iotop很棒!
约瑟夫·科恩

24

使用htop执行以下操作。

htop
F5 (Tree view)
F2 (Setup)
Select columns
Select RBYTES WBYTES
F10 (Done)

然后,您就可以按进程磁盘I / O实时进行操作。


1
杰出的答案
Dave Cheney

1
为什么HTOP不会将其添加为默认值?:S
confiq

1
它似乎需要特权访问才能报告其他进程(非常类似于iotop)-可能也是为什么它也不默认的原因……
Paul Ridgway

0

Collectl还可以显示进程I / O负载,但是由于它还可以监视几乎所有其他系统资源,因此您可以使用一个工具来全部完成。例如,您可以立即查看磁盘,网络等最重要的I / O或cpu进程。但是,您还可以播放历史数据并显示相同类型的数据。此外,内核实际上提供了7种不同的进程I / O。Collectl可以显示所有内容,甚至可以对它们进行排序。-标记

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.