为什么systemd-udev固定我的CPU?


15

我注意到四核笔记本电脑的核心之一被钉住了,温度很高。我在top

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  359 root      20   0  188684 147228   1552 R  99.4  5.0 111:19.91 systemd-udevd
20011 root      20   0  188320 147604   2076 S  11.0  5.0   0:00.33 systemd-udevd
11053 dotanco+  20   0 3030036 918672  49608 S   9.6 31.2 280:40.65 firefox
 3468 dotanco+  20   0 3612776 136740  43484 S   1.7  4.6  57:02.52 plasma-desktop
20006 root      20   0       0      0      0 Z   1.0  0.0   0:00.37 systemd-udevd

为什么会systemd-udev重击CPU?这是Kubuntu 14.10系统:

$ uname -a
Linux loathe 3.16.0-44-generic #59-Ubuntu SMP Tue Jul 7 02:07:39 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/issue
Ubuntu 14.10 \n \l

编辑:我注意到,除了固定的CPU外,还有其他问题。新连接的USB设备(例如USB大容量存储设备或键盘)将显示在其中,lsusb但无法使用。大容量存储设备未自动安装,并且USB键盘不起作用。我没有尝试手动安装USB驱动器。

根据Bratchley的建议,这是systemd-udev ID 359 的进程的痕迹。


2
你可能strace也使用strace -fvvp 359它就有可能是在一些循环不断。您也许可以挑选出有意义的东西。这可能是一个错误,但是如果您可以收集有关该错误的数据,它仍然可以提供良好的错误报告。
布拉奇利

1
@Bratchley:谢谢,这是strace。我现在正在谷歌搜索以学习如何阅读它,但是任何建议都将不胜感激。
dotancohen 2015年

1
看起来好像没有循环,似乎正在读取一堆文件并添加modprobe-ing以进行设置。真的只是一堆随机的东西。它会在消息或dmesg命令中打印任何内容吗?
布拉奇利,2015年

1
我应该检查一下dmesg,大约两三个小时前我才重置了机器。非常感谢您确认没有循环。我尝试遍历strace,尽管我并不精通它们,但我找不到任何无限循环,这始终是CPU出现峰值时想到的第一件事。
dotancohen

2
当您运行“ udevadm monitor”时,是否显示任何内容?
V13 2015年

Answers:


16

看起来libmtp找到了设备,但无法正确断开连接,并且会不断检查它。它发生在某些设备上,可以通过编辑/lib/udev/rules.d/69-libmtp.rules来禁用

寻找几行如下所示(在文件末尾):

# Autoprobe vendor-specific, communication and PTP devices 
ENV{ID_MTP_DEVICE}!="1", ENV{MTP_NO_PROBE}!="1", ENV{COLOR_MEASUREMENT_DEVICE}!="1", ENV{libsane_matched}!="yes", ATTR{bDeviceCl     ass}=="00|02|06|ef|ff", PROGRAM="/usr/lib/udev/mtp-probe /sys$env{DEVPATH} $attr{busnum} $attr{devnum}", RESULT=="1", SYMLINK+="li     bmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"

通过在ENV前面加上#来注释第二行,如下所示:

#ENV{ID_MTP.... 

重新启动计算机或运行sudo systemctl restart systemd-udevd并享受免费的CPU周期:)


重新启动对我来说是必要的。我尝试了几次重新启动systemd-udevd,但是它总是总是立即再次钉住CPU。
内特·格伦

8

使用udevadm monitor找出哪个驱动程序是汇集CPU。


好。我想我找到了设备。现在怎么办?
norok2

4

另一个原因:

  1. 已安装nvidia驱动程序396
  2. 从黑屏重启
  3. BIOS中的禁用Nvidia
  4. 系统可与Intel一起使用,但经过几次睡眠/恢复后,我才从udevadm monitor随机行但无限期重复的所有操作中得到了这一点:

    ...
    KERNEL[10072.040174] remove   /module/nvidia (module)
    UDEV  [10072.062670] add      /module/nvidia (module)
    UDEV  [10072.063617] add      /kernel/slab/:A-0000256/cgroup/filp(40652:nvidia-persistenced.service) (cgroup)
    UDEV  [10072.076901] remove   /module/nvidia (module)
    UDEV  [10072.109365] add      /kernel/slab/:aA-0000192/cgroup/dentry(40652:nvidia-persistenced.service) (cgroup)
    KERNEL[10072.138225] add      /module/nvidia (module)
    KERNEL[10072.139241] add      /kernel/slab/:0012288 (slab)
    KERNEL[10072.139651] remove   /kernel/slab/:0012288 (slab)
    ...
    

我不确定,但是我希望这是由于nvidia驱动程序处于活动状态而在BIOS中禁用了nvidia引起的。


1
我遇到了同样的问题。卸载Nvidia驱动程序解决了该问题。
TC张

2

eLobato提出的解决方案对我不起作用。

在描述了相同的症状之后,我发现了这个线程:https ://askubuntu.com/questions/1073185/after-upgrade-from-ubuntu-16-to-18-04-systemd-udevd-uses-100-cpu

为我解决了这个问题。为了完整起见,我重复以下解决方案,但所有功劳归于brunom4ciel的原始答案。


尝试停止和启动进程是否解决了问题且没有不良影响:

sudo systemctl stop systemd-udevd systemd-udevd-kernel.socket systemd-udevd-control.socket

sleep 5

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

如果可行,则将其嵌入到脚本中,/etc/init.d/systemd-udevd-solv.sh并包含以下内容:

sudo vim /etc/init.d/systemd-udevd-solv.sh

并粘贴:

#!/bin/sh

sudo systemctl stop systemd-udevd systemd-udevd-kernel.socket systemd-udevd-control.socket

sleep 5

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

然后更改要在登录时执行的权限

sudo chmod a+x /etc/init.d/systemd-udevd-solv.sh

1

内核中有一个错误会导致systemd-udevs 100%CPU使用率。

因此,解决方法是重新引导系统,并在加载Grub时按住Shift键。然后选择引导加载程序列表中列出的旧内核。

这对我来说很好。


0

我在Linux Mint 17.3 Rosa上遇到了同样的问题。

要解决此问题,请在我的PC闲置时:

  • 我打开终端。
  • 以SU身份登录。
  • 使用top命令并查看的PID systemd
  • 杀了它。

CPU恢复正常,RAM使用率降低。当然我的桌面仍然稳定。完成该操作后,我可以正常使用桌面了。


我一直认为systemd总是PID 1 0pointer.de/blog/projects/systemd.html
砂金石

0

我发现在Hyper-V上运行的某些CentOS安装上存在此问题。在VM设置中关闭Integration Services似乎已解决。特别是时间同步

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.