¿Por qué systemd-udev vincula mi CPU?

15

Me di cuenta de que uno de los núcleos de una computadora portátil de cuatro núcleos está vinculado y la temperatura es muy alta. Encontré esto en 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

¿Por qué podría systemd-udevestar martillando la CPU? Este es un sistema 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

EDITAR: Noto que además de la CPU vinculada, hay un problema adicional. Aparecerán dispositivos USB recién conectados, como un dispositivo de almacenamiento masivo USB o teclado, pero no podrán lsusbutilizarse. El dispositivo de almacenamiento masivo no se monta automáticamente y el teclado USB no funciona. No he intentado montar manualmente la unidad USB.

Según la sugerencia de Bratchley, aquí está la secuencia del systemd-udevproceso con ID 359.

dotancohen
fuente
2
Es posible straceque use strace -fvvp 359posibilidades de que se repita continuamente en algo. Es posible que pueda elegir algo significativo. Probablemente sea un error, pero aún podría ser un buen informe de errores si puede recopilar datos al respecto.
Bratchley
1
@Bratchley: Gracias, aquí está la situación . Estoy buscando en Google ahora para aprender a leerlo, pero cualquier consejo sería apreciado.
dotancohen
1
Bueno, no parece que esté en bucle. Parece estar leyendo en un montón de archivos y modprobe-ing para configurarlos. Solo un montón de cosas al azar realmente. ¿Imprime algo en los mensajes o en el dmesgcomando?
Bratchley
1
Debería haberlo verificado dmesg, solo reinicié la máquina hace unas dos o tres horas. Muchas gracias por confirmar que no hay bucles. Intenté repasar el tramo y, aunque no estoy versado en leerlos, no pude encontrar ningún bucle infinito, que siempre es lo primero en lo que pienso cuando los picos de la CPU.
dotancohen
2
¿Se muestra algo cuando ejecuta "monitor udevadm"?
V13

Respuestas:

16

Parece que libmtp encontró un dispositivo, pero no puede desconectarlo correctamente y lo está buscando constantemente. Sucede con ciertos dispositivos y puede deshabilitarse editando /lib/udev/rules.d/69-libmtp.rules

Busque un par de líneas que se vean así (al final del archivo):

# 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"

Comente la segunda línea poniendo un # antes de ENV, para que se vea así:

#ENV{ID_MTP.... 

Reinicia tu computadora o ejecuta sudo systemctl restart systemd-udevdy disfruta de tus ciclos de CPU gratis :)

eLobato
fuente
Reiniciar fue necesario para mí. Intenté reiniciar systemd-udevd varias veces, pero siempre vincularía la CPU nuevamente de inmediato.
Nate Glenn
8

Utilícelo udevadm monitorpara averiguar qué controlador está agrupando la CPU.

wayfactory
fuente
OKAY. Creo que encontré el dispositivo. ¿Ahora que?
norok2
4

Otra causa:

  1. Nvidia driver 396 instalado
  2. Reiniciar con pantalla en blanco
  3. Nvidia discapacitada en BIOS
  4. El sistema funciona con Intel, pero después de varias horas de suspensión / reanudación, obtuve esto udevadm monitor(líneas aleatorias pero que se repiten de manera indefinida):

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

No estoy seguro, pero espero que esto se deba al hecho de que el controlador nvidia está activo pero nvidia está deshabilitado en el BIOS.

dmatej
fuente
1
Tuve el mismo problema. los controladores de Nvidia desinstalados resolvieron el problema.
TC Zhang
2

La solución propuesta por eLobato no funcionó para mí.

Con los mismos síntomas descritos, encontré este hilo: /ubuntu/1073185/after-upgrade-from-ubuntu-16-to-18-04-systemd-udevd-uses-100-cpu

eso resolvió el problema para mí. Repito la solución a continuación para completar, pero todos los créditos van a la respuesta original de brunom4ciel.


Pruebe si detener e iniciar los procesos resuelve el problema sin efectos secundarios no deseados:

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

Si esto funciona, incrústelo en un script /etc/init.d/systemd-udevd-solv.shcon:

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

y pegar:

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

Luego cambie el permiso para ejecutarse al iniciar sesión

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

Hay un error en el núcleo que causa el uso de CPU de systemd-udevs al 100%.

Por lo tanto, la solución consiste en reiniciar el sistema, mantener presionada la tecla Mayús durante la carga de Grub. Luego, seleccione el kernel anterior que figura en la lista del cargador de arranque.

Esto funciona bien para mí.

Yema
fuente
0

Tuve el mismo problema en Linux Mint 17.3 Rosa.

Para resolverlo, cuando mi PC está inactiva:

  • Abro terminal.
  • Inicie sesión como SU.
  • Use el topcomando y vea el PID de systemd.
  • Mátalo.

CPU volvió a la normalidad y el uso de RAM fue bajo. Por supuesto, mi escritorio sigue siendo estable. Puedo usar mi escritorio normalmente después de esa operación.

Ryo Adi Suwito
fuente
Siempre pensé que systemd es siempre PID 1 0pointer.de/blog/projects/systemd.html
aventurin
0

He encontrado que esto es un problema en algunas instalaciones de CentOS que se ejecutan en Hyper-V . Apagar los servicios de integración en la configuración de VM parece haberlo resuelto. Específicamente sincronización de tiempo .

Yanzzee
fuente