4コアラップトップのコアの1つがペグされており、温度が非常に高いことに気付きました。これは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
EDIT:固定されたCPUに加えて、追加の問題があることに気づきました。 USB大容量ストレージデバイスやキーボードなどの新しく接続されたUSBデバイスはlsusb
に表示されますが、使用できません。大容量記憶装置は自動マウントされておらず、USBキーボードは機能しません。 USBドライブを手動でマウントしようとしたことがありません。
Bratchleyの提案に従って、 これはID 359のsystemd-udev
プロセスのstrace です。
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の前に#を置いて2行目をコメントにすると、次のようになります。
#ENV{ID_MTP....
コンピュータを再起動するか、Sudo systemctl restart systemd-udevd
そして無料のCPUサイクルをお楽しみください:)
使用する udevadm monitor
は、どのドライバーがCPUをプールしているかを調べます。
別の原因:
システムは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が無効になっていることが原因であると思います。
ELobatoによって提案された解決策は私にはうまくいきませんでした。
記述されている同じ症状で、私はこのスレッドを見つけました: https://askubuntu.com/questions/1073185/after-upgrade-from-ubuntu-16-to-18-04-systemd-udevd-uses-100 -cp
それは私のために問題を解決しました。完全を期すために以下の解決策を繰り返しますが、すべてのクレジットは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
カーネルにバグがあり、systemd-udevsのCPU使用率が100%になります。
したがって、回避策は、システムを再起動し、Grubのロード中にShiftキーを押し続けることです。次に、ブートローダーリストにリストされている古いカーネルを選択します。
これは私にとってはうまくいきます。
これはHyper-Vで実行されているCentOSの一部のインストールでの問題であることがわかりました。 VM設定で統合サービスをオフにすると、問題が解決したようです。具体的には時刻同期です。
Linux Mint 17.3 Rosaでも同じ問題が発生しました。
それを解決するには、私のPCがアイドル状態のとき:
top
コマンドを使用して、systemd
のPIDを確認します。CPUが通常に戻り、RAM=使用率が低下しました。もちろん、デスクトップはまだ安定しています。その操作の後、デスクトップを通常どおり使用できます。