Linux:有没有类似于 I/O 的“top”?

jav*_*top 66 linux process io top

我的磁盘经常被使用,但top(和htop自定义替换)没有显示任何可疑之处。

有没有办法按 I/O(更具体地说:磁盘)利用率对进程进行排序?

编辑
发现使用iotop那些奇怪的过程是flush-8:16jbd2/sdb3-7。似乎与通常的文件系统操作有关。

b0f*_*0fh 63

你试过iotop吗?

您可能需要先安装它。此外,这取决于在您的特定发行版中可能启用也可能未启用的内核功能。

  • 哇。这太妙了。15 年以上的管理工作,我从来没有遇到过。谢谢! (4认同)
  • 需要root权限,仅供参考。 (3认同)

小智 27

您可能想atop尝试一下。它似乎很好地让你知道发生了什么。

  • 似乎比 `iotop` 更好,因为它还显示 IO 繁忙百分比。 (2认同)
  • 也不需要 root 或 suid。 (2认同)

Civ*_*Fan 7

iostat仍然是详细 I/O 信息的王者,例如,此类信息可以确认您的 SSD 是否符合预期。

$ iostat -xht 5 nvme0n1
Linux 4.15.0-43-generic (myhost)    06/02/2021  _x86_64_    (8 CPU)

06/02/2021 08:59:20 AM
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           2.6%    0.1%    0.8%    0.1%    0.0%   96.4%

Device            r/s     w/s     rkB/s     wkB/s   rrqm/s   wrqm/s  %rrqm  %wrqm r_await w_await aqu-sz rareq-sz wareq-sz  svctm  %util
nvme0n1
                95.03   20.80      1.8M    300.1k     0.00    13.15   0.0%  38.7%    0.24    0.57   0.03    19.2k    14.4k   0.02   0.3%

Run Code Online (Sandbox Code Playgroud)

每五秒,这将打印 NVMe 驱动器的详细 IO 统计信息。最重要的通常不是实际的读/写带宽 -rKB/s而是wKB/s每秒的读和写次数(r/sw/s,又名 IOPS),也许最重要的是进程等待每次读和写的平均时间 -r_awaitw_await(以毫秒为单位)。

所有这些值都使用非常有用的利特尔定律公式相互补充,翻译一下为latency = queue_size / IOPS,或await = aqu_sz / (r/s + w/s).