Systemd-udev neden CPU'mu sabitliyor?


15

Dört çekirdekli bir dizüstü bilgisayardaki çekirdeklerden birinin saplandığını ve temp'in çok yüksek olduğunu fark ettim. Bunu şurada buldum 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

Neden systemd-udevCPU'yu dövüyor olabilirsiniz ? Bu bir Kubuntu 14.10 sistemidir:

$ 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: saptanmış CPU ek olarak, ek bir sorun olduğunu fark ettim. USB yığın depolama aygıtı veya klavye gibi yeni bağlanan USB aygıtları görünecek, lsusbancak kullanılamaz. Yığın depolama aygıtı otomatik olarak takılmamış ve USB klavye çalışmıyor. USB sürücüsünü manuel olarak monte etmeye çalışmadım.

Bratchley önerisine göre, burada strace olduğu bir systemd-udevkimliği 359 ile süreç.


2
Sen belki straceo kullanarak strace -fvvp 359şansı bir şeye sürekli döngü artar bile. Anlamlı bir şey seçebilirsiniz. Muhtemelen bir hatadır, ancak bu konuda veri toplayabilirseniz yine de iyi bir hata raporu verebilir.
Bratchley

1
@Bratchley: Teşekkür ederim, işte sıkıntı . Şimdi okumayı öğrenmek için çalışıyorum, ancak herhangi bir tavsiye takdir edilecektir.
dotancohen

1
Döngü gibi görünmüyor.Bir sürü dosyada okumak ve modprobeonları kurmak için -ing gibi görünüyor . Sadece rastgele bir sürü şey. İletilere veya dmesgkomuta bir şey yazdırıyor mu ?
Bratchley

1
Kontrol etmeliydim dmesg, makineyi iki veya üç saat önce sıfırladım. Döngü olmadığını doğruladığınız için çok teşekkür ederim. Bu sıkıntıyı aşmaya çalıştım ve onları okuma konusunda bilgili olmasam da, CPU yükseldiğinde her zaman düşündüğüm ilk şey olan sonsuz bir döngü bulamadım.
dotancohen

2
"Udevadm monitör" çalıştırdığınızda gösterilen herhangi bir şey var mı?
V13

Yanıtlar:


17

Görünüşe göre libmtp bir cihaz buldu, ancak düzgün bir şekilde bağlantısını kesemiyor ve sürekli kontrol ediyor. Belirli cihazlarda olur ve /lib/udev/rules.d/69-libmtp.rules düzenleyerek devre dışı bırakılabilir.

Şuna benzeyen birkaç satır arayın (dosyanın sonunda):

# 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'den önce bir # koyarak ikinci satırı yorumlayın, böylece şöyle görünür:

#ENV{ID_MTP.... 

Bilgisayarınızı yeniden başlatın veya çalıştırın sudo systemctl restart systemd-udevdve ücretsiz CPU döngülerinizin keyfini çıkarın :)


Yeniden başlatma benim için gerekliydi. Systemd-udevd'i birkaç kez yeniden başlatmayı denedim, ancak her zaman hemen cpu'yu tekrar pimleyecekti.
Nate Glenn

Bunu yorumlamak benim için çözmedi. Benim sorunum nvidia sürücüsü ile ilgili olduğunu düşünüyorum. @Wayfactory, unix.stackexchange.com/a/442324/134153 adresine bakın .
Dan H

9

udevadm monitorHangi sürücünün CPU'yu birleştirdiğini bulmak için kullanın .


TAMAM. Sanırım cihazı buldum. Şimdi ne var?
norok2

Bu yorum, bunu yere indirmeme yardımcı oluyor. Ben bilmiyordum udevadm monitor. Teşekkür ederim!
Dan H

5

Başka bir neden:

  1. Yüklü nvidia sürücüsü 396
  2. Boş ekranla yeniden başlat
  3. Bios'ta engelli nvidia
  4. Sistem Intel ile çalışır, ancak birkaç uyku / özgeçmişten sonra bunu aldım udevadm monitor(rastgele çizgiler ama aynı süreyi tekrarlayan):

    ...
    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)
    ...
    

Emin değilim ama bunun nvidia sürücüsünün aktif olması ancak nvidia'nın BIOS'ta devre dışı bırakılmasından kaynaklandığını düşünüyorum.


1
Ben de aynı problemle karşılaştım. kaldırıldı Nvidia sürücüleri sorunu çözdü.
TC Zhang

2

ELobato tarafından önerilen çözüm benim için işe yaramadı.

Açıklanan aynı semptoma sahip bu konuyu buldum: /ubuntu/1073185/after-upgrade-from-ubuntu-16-to-18-04-systemd-udevd-uses-100-cpu

bu benim için sorunu çözdü. Aşağıdaki çözümü tamlık için tekrar ediyorum, ancak tüm krediler brunom4ciel'in orijinal cevabına gidiyor.


İşlemlerin durdurulması ve başlatılması, istenmeyen yan etkiler olmadan sorunu çözüp çözmediğini deneyin:

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

Bu işe yararsa, altında bir komut dosyasına gömün /etc/init.d/systemd-udevd-solv.sh:

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

ve yapıştır:

#!/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

Ardından, girişte yürütülecek izni değiştirin

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

Benim için bu sadece bir grup yardımı: Görünüşe göre ~ 30 dakika beklersem, udevd'ün cpu kullanımı geri döndü.
Dan H

1

Çekirdekte systemd-udevs% 100 CPU kullanımına neden olan bir hata var.

Bu nedenle, etraftaki çalışma sistemi yeniden başlatmak, Grub'u yüklerken Shift tuşunu basılı tutmaktır. Ardından önyükleyici listesinde listelenen eski çekirdeği seçin.

Bu iş benim için iyi.


0

Aynı sorunu Linux Mint 17.3 Rosa'da da yaşadım.

Bilgisayarım boştayken bunu çözmek için:

  • Terminali açtım.
  • SU olarak giriş yapın.
  • topKomutu kullanın ve PID'sine bakın systemd.
  • Öldür.

CPU normale döndü ve RAM kullanımı azaldı. Tabii ki masaüstüm hala kararlı. Bu işlemden sonra masaüstümü normal şekilde kullanabilirim.


Her zaman systemd'in
aventurin

0

Hyper-V üzerinde çalışan bazı CentOS kurulumlarında bunun bir sorun olduğunu fark ettim . VM ayarlarında Entegrasyon Hizmetlerinin kapatılması sorunu çözmüş görünüyor. Özellikle Zaman senkronizasyonu .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.