Comprender el promedio de carga en Linux

Comprender el promedio de carga en Linux
El promedio de carga es una medida de la cantidad de trabajo versus ciclos de CPU gratuitos disponibles en un procesador de sistema. En este artículo, definiré el término, demostraré cómo Linux calcula este valor, luego proporcionaré información sobre cómo interpretar la carga del sistema.

Diferentes métodos para calcular la carga

Antes de sumergirnos en los promedios de carga de Linux, debemos explorar las diferentes formas en que la carga se calcula y abordar la medición más común de la carga de la CPU, un porcentaje.

Windows calcula la carga de manera diferente a Linux, y dado que Windows ha sido históricamente más popular en el escritorio, la definición de carga de Windows generalmente es entendida por la mayoría de los usuarios de computadoras. La mayoría de los usuarios de Windows han visto la carga del sistema en el Administrador de tareas que se muestran como un porcentaje que varía del 0% al 100%.

En Windows, esto se deriva examinando cuán "ocupado" es el Proceso inactivo del sistema es y el uso del inverso para representar la carga del sistema. Por ejemplo, si el hilo inactivo está ejecutando el 99% del tiempo, la carga de la CPU en Windows sería del 1%. Este valor es fácil de entender, pero proporciona menos detalles generales sobre el verdadero estado del sistema.

En Linux, el promedio de carga es representado por un número decimal que comienza en 0.00. El valor se puede definir aproximadamente como el número de procesos en el minuto pasado que tuvieron que esperar su turno para la ejecución. A diferencia de Windows, el promedio de carga de Linux no es una medición instantánea. La carga se da en tres valores: el promedio de un minuto, el promedio de cinco minutos y el promedio de quince minutos.

Comprender el promedio de carga en Linux

Al principio, esta capa adicional de detalles parece innecesaria si simplemente desea conocer el estado actual de la carga de la CPU en su sistema. Pero dado que se dan los promedios de tres períodos de tiempo, en lugar de una medición instantánea, puede tener una idea más completa del cambio de carga del sistema con el tiempo en una sola mirada de tres números

Mostrar el promedio de carga es simple. En la línea de comando, puede usar una variedad de comandos. Simplemente uso el comando "W":

root@virgo [~]# w
21:08:43 Up 38 días, 4:34, 4 usuarios, promedio de carga: 3.11, 2.75, 2.70

El resto del comando mostrará quién ha iniciado sesión y qué están ejecutando, pero para nuestros propósitos esta información es irrelevante, así que la he recortado de la pantalla anterior.

En un sistema ideal, ningún proceso debe ser mantenido por otro proceso (o hilo), pero En un solo sistema de procesadores, Esto ocurre cuando la carga va por encima de 1.00.

Las palabras "sistema de procesador único" son increíblemente importantes aquí. A menos que esté ejecutando una computadora antigua, su máquina probablemente tenga múltiples núcleos de CPU. En la máquina estoy en, tengo 16 núcleos:

root@virgo [~]# nproc
dieciséis

En este caso, un promedio de carga de 3.11 no es alarmante en absoluto. Simplemente significa que un poco más de tres procesos estaban listos para ejecutar y los núcleos de CPU estaban presentes para manejar su ejecución. En este sistema en particular, la carga tendría que llegar a 16 para ser considerado en "100%".

Para traducir esto a una carga de sistema basada en porcentaje, puede usar este comando simple, si no obtuso,:

Cat /Proc /LoadAvg | CORTE -C 1-4 | Echo "escala = 2; ($ (

Estas secuencias de comando aíslan el promedio de 1 minuto a través de CUT y ECHOS, dividido por el número de núcleos de CPU, a través de BC, una calculadora de línea de comandos, para obtener el porcentaje.

Este valor no es de ninguna manera científico, pero proporciona una aproximación aproximada de la carga de la CPU en el porcentaje.

Un minuto para aprender, una vida para dominar

En la sección anterior puse el ejemplo de "100%" de una carga de 16.0 en un sistema central de 16 CPU en cotizaciones porque el cálculo de la carga en Linux es un poco más nebuloso que Windows. El administrador del sistema debe tener en cuenta que:

  • La carga se expresa en procesos de espera y hilos
  • No es un valor instantáneo, sino un promedio, y
  • Su interpretación debe incluir el número de núcleos de CPU, y
  • Puede que la E/S exagere la E/S espere como lecturas de disco

Debido a esto, conseguir una carga de CPU en un sistema Linux no es un asunto empírico. Incluso si lo fuera, la carga de CPU por sí sola no es una medición adecuada de la utilización general de recursos del sistema. Como tal, un administrador experimentado de Linux considerará la carga de la CPU en concierto con otros valores, como la espera de E/S y el porcentaje del núcleo versus el tiempo del sistema.

I/o espera

La E/S espera se ve más fácilmente a través del comando "superior":

En la captura de pantalla anterior, he resaltado el valor de espera de E/S. Este es un porcentaje de tiempo que la CPU estaba esperando los comandos de entrada o salida para completar. Esto suele ser indicativo de alta actividad de disco. Si bien un alto porcentaje de espera por sí solo puede no degradar significativamente las tareas unidas a la CPU, reducirá el rendimiento de E/S para otras tareas y hará que el sistema se sienta lento.

La alta E/S espera sin ninguna causa obvia podría indicar un problema con un disco. Use el comando "DMESG" para ver si se han producido errores.

Núcleo vs. Hora del sistema

Los valores resaltados anteriormente representan el tiempo del usuario y el núcleo (sistema). Este es un desglose del consumo general del tiempo de CPU por parte de los usuarios (I.mi. Aplicaciones, etc.) y el núcleo (yo.mi. interacción con dispositivos del sistema). El tiempo de usuario más alto indicará más uso de CPU por programas donde el tiempo más alto del núcleo indicará más procesamiento a nivel de sistema.

Una carga bastante promedio

Aprender la relación del promedio de carga al rendimiento real del sistema lleva tiempo, pero en poco tiempo verá una correlación distinta. Armado con las complejidades de las métricas de rendimiento del sistema, podrá tomar mejores decisiones sobre las actualizaciones de hardware y la utilización de recursos del programa.