¿Cómo saber qué proceso está acaparando mi CPU cuando no suman 100%?

9

El applet System Monitor de Ubuntu muestra el 100% de uso continuo de la CPU. Si hago clic en él, la pestaña de recursos también lo muestra al 100% de forma continua. Sin embargo, si voy a los procesos para averiguar qué proceso es el culpable, no hay nada por encima del 10%. Si corro arriba no hay nada por encima del 10%. Los procesos individuales no suman el 100%. Intento matar muchos procesos, pero el uso general sigue siendo del 100%. ¿Cómo puedo averiguar qué está acaparando la CPU?

texto alternativo

Esta es una situación inusual en una computadora que uso a diario, que nunca está cerca del 100% de la CPU a menos que esté haciendo algo que lo requiera (como cargar 32 pestañas de Firefox), después de lo cual vuelve a un nivel inactivo normal. No es una instalación nueva ni nada. No hay razón para que el procesador deba estar al máximo. No estoy seguro de cuándo comenzó o si cambié algo que causó que sucediera.

Normalmente usaría top o System Monitor y encontraría el proceso que se había salido de control, pero esta vez no puedo encontrar nada con esas herramientas. Persiste después de reiniciar y todo.

Y el procesador obviamente está caliente, por lo que no es una lectura errónea.

Actualización: Traté de eliminar todos los procesos, uno a la vez, hasta que el problema desapareció, y matar a vino-server finalmente lo solucionó, aunque ese proceso nunca superó el 5%. Había habilitado Remote Desktop hace unos días (y obviamente ahora lo he desactivado).

Pero la pregunta sigue siendo: ¿cómo logró un solo proceso usar el 100% de la CPU mientras que la parte superior solo mostró ese proceso al 5%? ¿Cómo identifico culpables como este en el futuro?

Parece que no soy el único que ha tenido este problema:

Sigue siendo un problema tanto alegre como kármico. Curiosamente, tanto System Monitor como htop no muestran que la suma de procesos individuales esté cerca del 100% de la CPU.

endolito
fuente
2
¿Tu sistema también es lento? Puede ser una lectura falsa.
Bobby el

Respuestas:

9

Cuando dice "nada por encima del 10%", ¿quiere decir "nada por encima del 10%"? Solo se necesitan 11 cosas a ~ 9% para alcanzar el 100% en total.

Además, parte del tiempo de CPU utilizado medido podría ser el tiempo de espera de E / S, tiempo en el que un proceso podría estar haciendo algo pero no porque esté esperando que responda un dispositivo de E / S (es decir, ha realizado una solicitud de disco y el disco aún no ha encontrado el bit de datos correcto y lo ha devuelto). En la parte superior, esto se puede ver en las líneas de CPU como la medida% wa. El estado de espera de E / S es un poco extraño: la CPU no está realmente ocupada haciendo nada (por lo que si otro proceso quisiera hacer algún cálculo, podría hacerlo) pero sí cuenta para las cifras de carga del sistema a medida que la carga del sistema representa más que solo la actividad de la CPU.

Sería útil agregar el resultado de top -n 1su pregunta.

Además, si su núcleo es lo suficientemente reciente como para tener la función de contabilidad de E / S (si está utilizando una versión reciente de Ubuntu, debería estarlo) y está activado, puede ver qué procesos están realizando activamente operaciones de E / S ejecutando iotop -n 1 -ob(iotop es posible que no se instale de manera predeterminada, si no lo tiene, intente instalarlo apt-get install iotopo lo encuentre en el administrador de paquetes de la GUI.

David Spillett
fuente
1
+1 por pedir agregar top -n 1a la pregunta
Tarnay Kálmán el
2

Tuve un problema similar. El procesador estaba funcionando a pleno rendimiento, y ninguno de los procesos en System Monitor mostró nada. Encontré una respuesta usando el comando "superior" en una ventana de terminal. Mostró que apt estaba acaparando mi CPU sin ninguna buena razón. Entonces, ¿por qué System Manager no mostró esto? Resulta que hay una opción en Ver para todos los procesos; el mío fue verificado como Mis procesos, por lo que nunca vi al culpable. Espero que esto ayude.

Ike Hall
fuente
0

Tengo el mismo problema, pero descubrí que Xorg estaba usando el 50% de la CPU, mientras que esto demostró que [este error] podía solucionarse con el comando sudo rmmod ums_realtek. Esta vez, Xorg solo usó alrededor del 5-10% de CPU en el monitor del sistema, pero en la pestaña de recursos aún mostraba el 100%.

Mientras estaba monitoreando el monitor del sistema, ¡vi un parpadeo de una raíz de proses usando 100% CPU! No tuve tiempo de ver qué era, pero estoy seguro de que esto tiene algo que ver con eso.

NatureShade
fuente
-1

La primera pregunta es si su sistema parece lento o no responde. Es su CPU, después de todo, pagó por ella, y tiene derecho a ejecutarla a pleno rendimiento para sus propósitos. La segunda pregunta es si solo está tratando de hacer demasiado con su sistema, y ​​debería considerar la actualización si es posible. Mi primera caja de Linux tenía un 486 lento, y fue realmente fácil de completar. Si está ejecutando en un OLPC XO, por ejemplo, sus recursos son realmente limitados.

En serio, es poco probable que estés ejecutando numerosos cerdos de recursos excesivos simultáneamente. Si ningún proceso está tomando más del 10%, entonces su sistema está siendo mordisqueado por patos, y no podrá reducir la carga sin reducir lo que está haciendo.

Dicho esto, revisa los servicios de tu sistema y apaga cualquiera de ellos que no quieras. Considere desinstalar los que está realmente seguro de que no desea ( sudo apt-get remove foo). Particularmente si está sobrecargando el sistema, cualquier reducción en la carga solo puede ayudar. Intenta salir de los programas que no estás usando.

Si hay un proceso que está utilizando toda la CPU disponible, intente encontrarlo ejecutando top y anotando qué porcentaje de recursos están utilizando los procesos principales. Cuando mates a unos pocos, mira si uno sube más rápido que los otros. Por supuesto, matar tal proceso no te comprará mucho, ya que no es más del 10% de la carga.

David Thornley
fuente
Si estuviera usando la CPU, lo sabría. No funciona al 100% de forma continua durante el funcionamiento normal, y ciertamente no debería hacerlo cuando he cerrado todo lo que se me ocurre que podría estar usándolo.
endolito el
-1
  1. apt-get install cpufrequtils
  2. abierto /etc/rc.conf
  3. agregue lo siguiente a los MÓDULOS: MODULES=(# your-modules-don't-touch #acpi-cpufreq cpufreq_ondemand cpufreq_performance)
  4. Reiniciar

Después de reiniciar, debe ejecutar cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governorspara ver qué módulos están cargados.

Durante el trabajo, puede cambiar los gobernadores a lo que se ajuste a sus necesidades. Por ejemplo:

  • cpufreq-set -r -g ondemand

Puede usar uno de los siguientes gobernadores:

  • rendimiento : se ejecuta la CPU en el reloj max (módulo: cpufreq_performance)
  • ondemand : enciende de forma dinámica entre la CPU (s) velocidades de reloj disponibles basándose en la carga sys (módulo: cpufreq_ondemand)
  • conservadora : Al igual que en ondemand, pero la CPU (s) velocidad de reloj cambia gradualmente a través de todas las frecuencias disponibles (basado en la carga sys) (módulo: cpufreq_conservative)
  • ahorro de energía : la CPU (s) funciona a la velocidad mínima (módulo: cpufreq_powersave)
  • espacio de usuario : permite al usuario configurar manualmente la velocidad del reloj de la CPU. (módulo: cpufreq_userspace)

Si está utilizando GNOME2, hay un applet, que es increíble.

  1. Haga clic derecho en su panel
  2. Añadir applet
  3. comienza a escribir: CPUdeberías poder verlo :)
  4. Hacer clic Add

Al usar este applet, puede cambiar entre los gobernadores disponibles (los agregó /etc/rc.confantes).

Por ejemplo, estoy usando ondemandtodo el tiempo, porque no necesito el rendimiento completo para ejecutar eclipse y el emulador de Android en mi ArchLinux: P

Summa Summarum - google for cpufrequtils y aprende cómo usarlo :) Ese paquete me ahorró tiempo y dinero; D

¡Salud!

Nikola
fuente