我的磁盘经常被使用,但是top
(以及htop
自定义替换)没有显示任何可疑信息。
有没有办法按 I/O(更具体地说:磁盘)利用率对进程进行排序?
编辑
使用时发现iotop
那些奇怪的进程是flush-8:16
和jbd2/sdb3-7
。似乎与通常的文件系统操作有关。
答案1
你有没有尝试过iotop
?
您可能需要先安装它。此外,它还取决于您的特定发行版中可能启用或未启用的内核功能。
答案2
你可能想试一试atop
。它似乎能很好地让你知道发生了什么。
答案3
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%
每五秒钟,这将打印 NVMe 驱动器的详细 IO 统计信息。最重要的通常不是实际的读/写带宽——rKB/s
和wKB/s
——而是每秒的读取和写入次数(r/s
和w/s
,又称 IOPS),也许最重要的是进程等待每次读取和写入的平均时间——r_await
和w_await
(以毫秒为单位)。
所有这些值都通过非常有用的利特尔定律公式相互影响,稍加翻译便可得到latency = queue_size / IOPS
,或者await = aqu_sz / (r/s + w/s).