dot*_*hen 16 systemd cpu-usage
我注意到四核笔记本电脑上的一个核心是固定的,并且温度非常高。我在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
Run Code Online (Sandbox Code Playgroud)
为什么可能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
Run Code Online (Sandbox Code Playgroud)
编辑:我注意到除了固定的 CPU 之外,还有一个额外的问题。新连接的 USB 设备,例如 USB 大容量存储设备或键盘,将显示lsusb但无法使用。大容量存储设备未自动挂载,USB 键盘不工作。我还没有尝试过手动挂载 USB 驱动器。
根据 Bratchley 的建议,这里是systemd-udevID 为 359的进程的跟踪。
小智 19
看起来 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"
Run Code Online (Sandbox Code Playgroud)
通过在 ENV 前放置 # 来注释第二行,使其看起来像:
#ENV{ID_MTP....
Run Code Online (Sandbox Code Playgroud)
重新启动您的计算机或运行sudo systemctl restart systemd-udevd并享受您的免费 CPU 周期:)
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
Run Code Online (Sandbox Code Playgroud)
如果这有效,请将其嵌入到以下脚本中/etc/init.d/systemd-udevd-solv.sh:
sudo vim /etc/init.d/systemd-udevd-solv.sh
Run Code Online (Sandbox Code Playgroud)
并粘贴:
#!/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
Run Code Online (Sandbox Code Playgroud)
然后更改登录时执行的权限
sudo chmod a+x /etc/init.d/systemd-udevd-solv.sh
Run Code Online (Sandbox Code Playgroud)
小智 6
另一个原因:
系统与英特尔合作,但经过几次睡眠/恢复后,我从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)
...
Run Code Online (Sandbox Code Playgroud)我不确定,但我希望这是由于 nvidia 驱动程序处于活动状态但 nvidia 在 BIOS 中被禁用。
| 归档时间: |
|
| 查看次数: |
36023 次 |
| 最近记录: |