我正在尝试监控导致磁盘退出待机状态的原因。我在 Ubuntu 20.04 上使用的工具之一是写入/proc/sys/vm/block_dump
,它提供了有关正在访问磁盘的详细信息。但是,这似乎在我的 22.04 LTS Server 安装中缺失。
是否有东西可以替代它并提供等效功能?
答案1
是的,看来这个功能已经从内核中移除了。不过还有更好的选择:
sudo blktrace -d /dev/sda -a pc -o - | blkparse -i -
然后在另一个终端
sudo hdparm -Y /dev/sda
暂停驱动器。在 blktrace 终端中,您将看到暂停命令,然后稍后尝试访问该驱动器的任何内容都会将其唤醒:
8,16 8 1 0.000000000 24462 D N 0 [hdparm]
8,16 10 1 0.605317187 0 C N [0]
8,16 3 1 13730.287432496 742463 D R 512 [udisksd]
8,16 11 1 13739.892840047 599559 R R [0]
8,16 11 2 13739.901193229 342 R R [0]
8,16 11 3 13739.909186805 342 R R [0]
8,16 11 4 13739.917183658 342 R R [0]
如你所见,在我的情况下它是 udisksd(进行搜索,你会发现数十个线程抱怨这个应用程序正在唤醒驱动器)
请注意:现代磁盘,尤其是那些为数据中心的高可用性而设计的磁盘,可能不喜欢频繁启动/停止,实际上可能最好让它继续运行。如果您的情况不明显(例如,每周使用一次备份 HDD),请研究 HDD 的 MTBF 等级,看看它是否有单独的启动和运行时间条目。对于笔记本电脑,另一个问题是,与关闭电源且驱动器头处于安全位置的情况相比,如果笔记本电脑掉落,旋转的驱动器通常表现更差。