GNU/Linux >> Tutoriales Linux >  >> Linux

Detectar proceso comiendo CPU sin:Top, Htop, Ps?

Pasé por un problema en el que solo podía adivinar qué proceso estaba consumiendo la CPU.

Mi uso de la CPU fue de alrededor del 80 % para todos los núcleos en psensor.

Probé htop , top y ps -A -o pcpu,pid,cmd --sort +pcpu (el último incluso probé con sudo sin éxito).
Todos estos mostraron el pid culpable (que yo conocía) usando solo alrededor del 7%...

Cuando hago SIGKILL en ese pid, todo vuelve a la normalidad.

Para probar, hice un bucle infinito en la terminal while true;do echo -n;done pero eso lo pude ver claramente en htop; así que supongo que lo que estaba causando problemas no era similar a eso...

Así que me pregunto si hay otras formas en las que podría haber encontrado al culpable sin tener que adivinar.

Pensándolo bien, creo que me gustaría saber qué cálculos psensor y los usos del "subprograma indicador de carga del sistema" que pudo mostrar ese valor pero los demás no pudieron?

PD:enlace sobre el tiempo de espera,
enlace sobre el promedio de carga

Respuesta aceptada:

No estoy lo suficientemente familiarizado con los detalles para dar sugerencias precisas, pero supongo que hay dos fuentes de diferencias entre la carga real causada y el uso de CPU que se muestra:

  1. El proceso puede constar de varios subprocesos y top puede que no los resuma. Puedes ver el número de subprocesos por esto:

    ps -eo pid,nlwp,%cpu,user,args
    

    En top puede cambiar el manejo del hilo con H . El uso de la CPU de cada subproceso suele ser bastante bajo.

  2. El proceso puede causar una gran cantidad de E/S. El tiempo de espera de E/S es parte de la carga general de la CPU, pero puede no ser parte del valor de uso de la CPU de un proceso. Así que revisa el wait valor en top . No le dice qué procesos lo causan y en qué medida, pero si el valor es bajo, no puede explicar el efecto.


Linux
  1. Principal contenido de administrador de sistemas febrero de 2021

  2. Solucionar problemas de alto uso de CPU en Windows Server

  3. ¿Detectar bloqueo de socket sin enviar ni recibir?

  4. Detectar la muerte del proceso principal

  5. El proceso vmlinuz se ejecuta en el 100 % de la CPU

Consejos para la parte superior:Monitoreo de la carga de la CPU en Linux

Los 30 mejores ejemplos de comandos para monitorear en Linux

Gestión de procesos de Linux mejorada con htop

Htop:un monitor de sistema Linux/visor de procesos interactivo

¿Cómo interpretar el uso de memoria superior/htop?

¿Picos frecuentes de la CPU, causados ​​por un proceso Java desconocido?