¿Cómo leo htop

9

Tengo problemas para comprender la información que muestra htopel reemplazo popular del comando superior de Linux.

volcado de pantalla htop

En la captura de pantalla anterior, hay muchas instancias de Java enumeradas, pero solo la principal utiliza el tiempo de CPU. ¿Qué son los otros?

¿Por qué las barras de utilización de CPU muestran núcleos tan ocupados cuando la columna% de CPU muestra que no sucede mucho en todos los procesos? De hecho, se mueven sin correlación la mayor parte del tiempo.

¿Por qué el promedio de carga, arriba a la derecha, que supongo es un historial de 3 pasos, tan bajo cuando los núcleos casi siempre están verdes y parecen ocupados?

¿Alguien sería tan amable de explicar cómo leer esta información?

¡Gracias!

Luke Puplett
fuente
He realizado algunos cambios que ayudan mucho. Muestre los hilos en un color diferente, muestre los nombres de los hilos, actualice los nombres de los procesos al actualizar y, principalmente, cambie el retraso a 2/10 segundos. La velocidad de actualización predeterminada solo muestra un retraso masivo entre los medidores de CPU y los procesos.
Luke Puplett el
1
Para el promedio de carga al menos, eso no es necesariamente un valor bajo. La carga es esencialmente un indicador de si el sistema tiene que esperar para hacer algo. Un valor aceptable es menor que el número de núcleos, en este caso 4. Por lo tanto, esos promedios son razonables. Son los últimos 1, 5 y 15 minutos. Para obtener más información, consulte [Wikipedia] ( en.wikipedia.org/wiki/Load_(computing))
ssmy

Respuestas:

5
  1. Con respecto a "Load" y CPU%, wikipedia tiene una explicación detallada y un ejemplo, a continuación hay una cita parcial

    Una computadora inactiva tiene un número de carga de 0 y cada proceso que usa o espera CPU (la cola preparada o la cola de ejecución) incrementa el número de carga en 1. La mayoría de los sistemas UNIX cuentan solo los procesos en ejecución (en la CPU) o ejecutables (esperando CPU) estados. Sin embargo, Linux también incluye procesos en estado de suspensión ininterrumpible (generalmente esperando actividad del disco), lo que puede conducir a resultados marcadamente diferentes si muchos procesos permanecen bloqueados en E / S debido a un sistema de E / S ocupado o estancado. Esto, por ejemplo, incluye el bloqueo de procesos debido a una falla del servidor NFS o la lentitud de los medios (por ejemplo, dispositivos de almacenamiento USB 1.x). Tales circunstancias pueden dar como resultado un promedio de carga elevado, que no refleja un aumento real en el uso de la CPU (pero aún da una idea de cuánto tiempo deben esperar los usuarios).

    Los sistemas calculan el promedio de carga como el promedio móvil exponencialmente amortiguado / ponderado del número de carga. Los tres valores del promedio de carga se refieren a los últimos uno, cinco y quince minutos de operación del sistema.

    Para los sistemas de CPU única que están vinculados a la CPU, uno puede pensar en el promedio de carga como un porcentaje de la utilización del sistema durante el período de tiempo respectivo. Para sistemas con múltiples CPU, uno debe dividir el número por el número de procesadores para obtener un porcentaje comparable.

    Las barras pueden estar ocupadas moviéndose, pero nunca alcanzan el 100%, lo que indicará que la CPU / núcleo se utiliza por completo. La barra es solo una visualización del% de utilización de la CPU, que se encuentra en 27%, 26.5%, 24.5%, 24.7% y 71.7%. Todos los núcleos de la CPU todavía tienen el poder de "repuesto". Todos están infrautilizados en ese punto.

    Un sistema de 5 núcleos / CPU completamente utilizado tendrá una carga de 5 o superior.

  2. En cuanto a las filas de Java, son procesos primarios (PID = 5073) y secundarios. No puedo explicar por qué los padres acumulan más tiempo de CPU. Eso realmente depende de la lógica interna del programa. Sin embargo, según el TIME +, esos procesos secundarios consumieron tiempo de CPU, con el último (PID = 5074) más acumulado.

John Siu
fuente
¿Es posible que los procesos secundarios sean el conjunto de hilos JVM? Cuando configuro la opción para mostrar los nombres de los hilos, todos tienen el mismo nombre. Soy un programador de Windows + .NET, para tu información.
Luke Puplett el
Sí, es posible que sean hilo.
John Siu