Vigilancia

Comprensión del promedio de carga en Linux

Comprensión del promedio de carga en Linux
El promedio de carga es una medida de la cantidad de trabajo en comparación con los ciclos de CPU libres disponibles en un procesador de sistema. En este artículo definiré el término, demostraré cómo Linux calcula este valor y 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 se calcula la carga 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 mayoría de los usuarios de computadoras generalmente entienden la definición de carga de Windows. La mayoría de los usuarios de Windows han visto que la carga del sistema en el administrador de tareas se muestra como un porcentaje que va del 0% al 100%.

En Windows, esto se obtiene examinando qué tan "ocupado" el Proceso inactivo del sistema es y usando la inversa para representar la carga del sistema. Por ejemplo, si el subproceso inactivo se ejecuta 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 está representado por un número decimal que comienza en 0.00. El valor se puede definir aproximadamente como la cantidad de procesos durante el último minuto que tuvieron que esperar su turno para su ejecución. A diferencia de Windows, el promedio de carga de Linux no es una medida 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.

Comprensión del 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 obtener una idea más completa del cambio de la carga del sistema a lo largo del tiempo con un solo vistazo 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 hasta 38 días, 4:34, 4 usuarios, promedio de carga: 3.11, 2.75, 2.70

El resto del comando mostrará quién está conectado y qué está 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 detenido por otro proceso (o subproceso), pero en un sistema de un solo procesador, esto ocurre cuando la carga supera 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 en la que estoy, 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 ejecutarse y los núcleos de la CPU estaban presentes para manejar su ejecución. En este sistema en particular, la carga tendría que llegar a 16 para ser considerada en "100%".

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

cat / proc / loadavg | cut -c 1-4 | echo "escala = 2; ($ (Esta secuencia de comandos aísla el promedio de 1 minuto a través de cut y lo hace eco, dividido por el número de núcleos de CPU, a través de bc, una calculadora de línea de comandos, para derivar el porcentaje.

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

Un minuto para aprender, una vida que dominar

En el apartado anterior pongo el ejemplo "100%" de una carga de 16.0 en un sistema de 16 núcleos de CPU entre comillas porque el cálculo de la carga en Linux es un poco más confuso que en Windows. El administrador del sistema debe tener en cuenta que:

Debido a esto, controlar la carga de la CPU en un sistema Linux no es una cuestión completamente empírica. Incluso si lo fuera, la carga de la CPU por sí sola no es una medida adecuada de la utilización general de los recursos del sistema. Como tal, un administrador de Linux experimentado considerará la carga de la CPU junto con otros valores, como la espera de E / S y el porcentaje de kernel frente al tiempo del sistema.

Espera de E / S

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

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

Una espera alta de E / S sin una causa obvia podría indicar un problema con un disco. Utilice el comando "dmesg" para ver si ha ocurrido algún error.

Kernel vs. Hora del sistema

Los valores resaltados arriba representan el tiempo del usuario y del kernel (sistema). Este es un desglose del consumo total de tiempo de CPU por parte de los usuarios (i.mi. aplicaciones, etc.) y el kernel (i.mi. interacción con los dispositivos del sistema). Un mayor tiempo de usuario indicará un mayor uso de la CPU por parte de los programas donde un mayor tiempo de kernel indicará más procesamiento a nivel del sistema.

Una carga bastante media

Aprender la relación del promedio de carga con el rendimiento real del sistema lleva tiempo, pero en poco tiempo verá una clara correlación. 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 los recursos del programa.

Cómo capturar y transmitir su sesión de juego en Linux
En el pasado, los juegos solo se consideraban un pasatiempo, pero con el tiempo la industria del juego experimentó un gran crecimiento en términos de ...
Los mejores juegos para jugar con el seguimiento de manos
Oculus Quest presentó recientemente la gran idea del seguimiento manual sin controladores. Con un número cada vez mayor de juegos y actividades que ej...
Cómo mostrar la superposición de OSD en aplicaciones y juegos de Linux en pantalla completa
Jugar juegos en pantalla completa o usar aplicaciones en modo de pantalla completa sin distracciones puede aislarlo de la información relevante del si...