首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ubuntu 20.04.3 LTS系统d-udevd带CD/DVD光盘驱动器的高CPU

Ubuntu 20.04.3 LTS系统d-udevd带CD/DVD光盘驱动器的高CPU
EN

Ask Ubuntu用户
提问于 2021-09-09 18:12:14
回答 1查看 1.9K关注 0票数 2

我知道这个问题似乎在wifi、蓝牙或nvidia方面被问了很多,但我正在努力解决一个与cd-rom/dvd相关的问题。

我在并行VM上运行Ubuntu,没有物理DVD,也没有连接的ISO映像。

systemd在一段不重复的时间后,它的CPU高达100%,也就是说,它在启动时没有一致性。几天前我更新Ubuntu时,它似乎就开始了。使用udevadm监视器,我可以看到以下内容:

代码语言:javascript
复制
KERNEL[26618.989007] change   /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)
KERNEL[26619.020644] change   /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)
KERNEL[26619.077203] change   /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)
KERNEL[26619.200954] change   /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)
UDEV  [26619.233814] change   /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)
KERNEL[26619.281478] change   /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)
KERNEL[26619.312935] change   /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)
KERNEL[26619.360996] change   /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)
KERNEL[26619.478767] change   /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)
UDEV  [26619.504989] change   /devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0/block/sr0 (block)

不断地重复。

与ata4和sr0相关的dmesg信息:

代码语言:javascript
复制
[    2.165687] ata4: SATA max UDMA/133 abar m8192@0xf0200000 port 0xf0200180 irq 30

[    2.808027] ata4: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[    2.808812] ata4.00: ATAPI: Virtual DVD-ROM [1], FWR1, max UDMA/25
[    2.810047] ata4.00: configured for UDMA/25
[    2.811856] scsi 3:0:0:0: CD-ROM                     Virtual DVD-ROM  R103 PQ: 0 ANSI: 5
[    2.872450] sr 3:0:0:0: [sr0] scsi3-mmc drive: 44x/44x cd/rw xa/form2 cdda tray
[    2.872465] cdrom: Uniform CD-ROM driver Revision: 3.20
[    2.932438] sr 3:0:0:0: Attached scsi CD-ROM sr0

查看journalctl \ grep‘systemd’,我看到以下可能有用的信息:

代码语言:javascript
复制
Sep 09 17:15:01 ubuntu-vm systemd[1]: systemd-udevd.service: Watchdog timeout (limit 3min)!
Sep 09 17:15:01 ubuntu-vm systemd[1]: systemd-udevd.service: Killing process 205157 (systemd-udevd) with signal SIGABRT.
Sep 09 17:15:01 ubuntu-vm systemd-udevd[205158]: sr0: Spawned process 'cdrom_id --eject-media /dev/sr0' [205517] is taking longer than 59s to complete
Sep 09 17:15:01 ubuntu-vm systemd-udevd[205158]: sr0: Spawned process 'cdrom_id --eject-media /dev/sr0' [205517] timed out after 2min 59s, killing
Sep 09 17:15:01 ubuntu-vm systemd-udevd[205158]: sr0: Process 'cdrom_id --eject-media /dev/sr0' terminated by signal KILL.
Sep 09 17:15:01 ubuntu-vm systemd-udevd[205158]: sr0: Failed to wait for spawned command 'cdrom_id --eject-media /dev/sr0': Input/output error
Sep 09 17:15:01 ubuntu-vm systemd-udevd[205158]: sr0: Failed to execute 'cdrom_id --eject-media /dev/sr0', ignoring: Input/output error
Sep 09 17:15:02 ubuntu-vm systemd[1]: systemd-udevd.service: Main process exited, code=dumped, status=6/ABRT
Sep 09 17:15:02 ubuntu-vm systemd[1]: systemd-udevd.service: Killing process 205158 (systemd-udevd) with signal SIGKILL.
Sep 09 17:15:02 ubuntu-vm systemd[1]: systemd-udevd.service: Killing process 205192 (systemd-udevd) with signal SIGKILL.
Sep 09 17:15:02 ubuntu-vm systemd[1]: systemd-udevd.service: Failed with result 'watchdog'.
Sep 09 17:15:02 ubuntu-vm systemd[1]: systemd-udevd.service: Scheduled restart job, restart counter is at 5.
Sep 09 17:15:02 ubuntu-vm systemd[1]: systemd-udevd.service: Found left-over process 205158 (systemd-udevd) in control group while starting unit. Ignoring.

这个消息序列偶尔会出现,它看起来像是一个进程正在启动,以弹出一个cd光盘。没有挂载sr0。

我可以终止这个过程,但是它最终会重新启动,我不想继续这样做。我也不想要一个‘贴石膏’来阻止它,因为我可能想安装一个DVD或ISO映像,但无论如何,它将很好地确定什么可能导致系统开始与sr0一起工作,并停止它。

我对Linux并不十分精通--我正在将它用于特定的开发工具--我已经调查了我所能做的事情,但是任何帮助都会得到感谢。

编辑:终止进程是一个临时的修复,因为它是立即重新启动的,尽管从它开始上升的地方开始以较低的CPU %启动。运行这些命令(如udevadm man条目)将停止这个问题:

代码语言:javascript
复制
sudo systemctl stop systemd-udevd systemd-udevd-kernel.socket systemd-udevd-control.socket
sudo systemctl start systemd-udevd systemd-udevd-kernel.socket systemd-udevd-control.socket

所以感觉这可能是个靴子订单的事?也许是在与光盘设备交互之前没有初始化的东西?知道怎么说吗?

谢谢,

安德鲁

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2021-09-11 18:03:30

谁知道到底是什么导致了这一切的开始。如果没有回应,这就是我所做的。

在/usr/local/bin中创建一个脚本,并使其可执行:

代码语言:javascript
复制
#!/bin/bash
# Restart systemd-udevd to prevent runaway CD-ROM service

systemctl stop systemd-udevd systemd-udevd-kernel.socket systemd-udevd-control.socket
sleep 1

systemctl start systemd-udevd systemd-udevd-kernel.socket systemd-udevd-control.socket

在/etc/systemd/system中创建Systemctl服务:

代码语言:javascript
复制
[Unit]
Description=Stop CD-ROM runaway service
After=graphical.target

[Service]
Type=simple
ExecStart=/usr/local/bin/stopCdRomNotifications.sh

[Install]
WantedBy=default.target

然后通过以下方式启用它:

代码语言:javascript
复制
sudo systemctl enable [myscriptname]

现在,在启动时,失控系统d-udevd进程被停止,然后在非失控状态下重新启动。如果没有脚本中的睡眠1语句,它就不会起作用:我推测,当被要求重新启动时,它处于“即将停止”的状态,所以它不会先停止!毫秒或微秒的延迟可能有效,我没有费心去尝试。

在我看来,这有点像贴石膏,但我不明白为什么会突然发生这种情况,除非可能是Ubuntu的最新更新导致了这种情况。嗯,Linux。

编辑:我现在有一个根本原因,但没有不粘石膏的答案。这个问题是由VM的并行配置以及5.11.0.34内核版本造成的。如果我将VM配置为没有连接的CD/DVD -“失控”系统-udevd进程启动;如果我用附加的ISO映像配置它,那么它不会。引导到较早版本的内核没有问题,导致问题的是内核版本加上“断开”CD/DVD。目前,答案是用连接的ISO映像配置VM。这也修正了启动VM时2分钟的启动延迟.

票数 4
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1362833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档