由于 MMP EXT4 功能,systemd/udev 通过 systemd-udevd 实现高 CPU 性能

由于 MMP EXT4 功能,systemd/udev 通过 systemd-udevd 实现高 CPU 性能

我对两个新驱动器进行了分区和格式化,突然我的 CPU 使用率达到了可用处理能力的一半。我检查了一下,有几个进程,其中之一是systemd-udevd.通过停止服务后systemctl stop systemd-udevd一切又恢复正常。但是,在登录后立即重新启动或从我的新驱动器之一安装/卸载文件系统时,问题总是会再次出现。

我检查udevadm monitor并看到一个滚动终端,总是显示相同的change事件。

UDEV  [359.270329] change   /devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sdb/sdb3 (block)
KERNEL[359.275809] change   /devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sdb/sdb2 (block)
KERNEL[359.282183] change   /devices/virtual/block/dm-2 (block)
UDEV  [359.286170] change   /devices/virtual/block/dm-3 (block)

经过多次尝试,终于找到了原因:

基质金属蛋白酶

This ext4 feature provides multiple mount protection (MMP). MMP
helps to protect the filesystem from being multiply mounted and
is useful in shared storage environments.

我在所有文件系统上启用了此功能,禁用它后,现在一切正常。我想提交一个错误,但我无法为 udev 提供错误跟踪器。我发现的只是 freedesktop 页面,systemd该页面被告知是当前项目页面。有人知道哪里可以提交这个错误吗?

答案1

2022 年 1 月 17 日更新:该问题已在此 Pull 请求中修复:https://github.com/storagged-project/udisks/pull/949

我受到同样问题的影响,并将其缩小到与您相同的根本原因,但只是在事后才发现您的问题。此外,我能够将问题与 udisks2 >= 2.7.6 关联起来。因此,如果您需要 MMP,您可能需要考虑降级。

可以在此处找到包含讨论的相应 GitHub 问题: https://github.com/storagged-project/udisks/issues/946

相关内容