我在低功耗硬盘上运行 Fedora 23[*]。我可以听到硬盘驱动器的咔嗒声或旋转速度,然后又恢复,大约每10秒。 (并且活动 LED 闪烁)。
如果我登录并运行sync; fatrace --timestamp
,我看不到与启动相关的任何文件访问。
有一些定期文件访问,但它们都是缓存读取,例如 to/etc/passwd
或/etc/fstab
。如果relatime
由于某种原因没有被应用,我尝试使用 进行安装noatime
,但这没有帮助。我还禁用了交换 ( swapoff -a
)。
该驱动器不是为此而设计的&我预计它最终会杀死它。它也不是很节能:)。帮助!
[*] 这是一个 NAS 类型的系统。
答案1
我寻找的第二件事是直接设备访问。 sudo lsof /dev/sd*
什么也没显示。 cd /dev; fatrace --current-mount --timestamp
也没有显示任何关联的访问。
此时我需要开始剥离内核。咱们试试吧systemctl isolate rescue.target
。奇怪的是,它又弹回来了default.target
。然后systemctl status
显示系统已降级,因为dmeventd
在仍在监视设备时不想停止(!)...但硬盘驱动器已停止旋转备份(!!)。
事实上,在未降级的系统上,问题在 后就消失了killall -9 dmeventd
。
怎么可以这么破?原因是我开始使用docker
,并且由于我使用 LVM,它选择了 devicemapper 存储驱动程序。[*]
dmeventd[5054]: dmeventd ready for processing.
lvm[5054]: Monitoring thin vg_fossil-docker--pool.
[*] 如果您有 LVM 镜像、raid 或快照,这也可能是一个问题...不可否认,在 NAS 系统上有可能:(。如果您没有这些,例如只有简单的 LV 或没有 LVM所有,那么 dmeventd 就没有任何需要监视的内容,它会自行运行。
具体来说,dmeventd 大约每 10 秒执行一次这些 ioctl:
open("/dev/mapper/control", O_RDWR) = 7
...
ioctl(7, DM_TABLE_STATUS
ioctl(7, DM_DEV_WAIT
我仍然认为旋转是一个错误,但至少对于我的情况来说有一个明显的解决方法[*],我并不真正担心我会因此错过任何东西。
[*] 如果你真的想停止 dmeventd 工作,即使你有一个精简池,如果空间不足,它可能会严重死亡,搜索monitoring = 1
inlvm.conf
并将值更改为0
。
更新:该错误已修复在下一个版本中lvm2
,2.02.133
.