SGCG

…esto no es un subtítulo…

Ir a: contenido categorías calendario archivo suscripción

Volver arriba

La carga en sistemas *nix

2020-07-09

La carga promedio («load average») de un sistema *nix es una medida habitual de cómo de utilizado está un ordenador. Los sistemas *nix manejan múltiples procesos de manera que, en un determinado momento, puede haber uno o varios procesos en ejecución y puede haber más procesos en cola listos para ser ejecutados. El número medio de procesos en ejecución y listos para la ejecución en un intervalo de tiempo es la carga promedio en dicho intervalo de tiempo. La carga se da normalmente como media móvil ponderada a un minuto, cinco minutos y quince minutos.

El sistema operativo reparte los procesos entre los diferentes núcleos de los procesadores y, además, fracciona el tiempo en intervalos cortos que reparte también entre los procesos, de manera que es posible ejecutar múltiples procesos de forma auténticamente simultánea en máquinas con múltiples núcleos y, además, es posible generar la ilusión de que se ejecutan múltiples procesos simultáneamente a base de alternar entre ellos rápidamente en los intervalos cortos en los que se fracciona el tiempo. Por este motivo, si la carga del sistema es inferior al número de núcleos, en principio hay tiempo de procesador libre para ejecutar más procesos sin dejar ninguno esperando, mientras que si la carga del sistema es superior al número de núcleos, en principio no hay tiempo de procesador suficiente para atender a todos los procesos que necesitan ejecutarse y las tareas empiezan a retrasarse. En general, la carga empieza a ser motivo de preocupación cuando es una fracción próxima a la unidad del número de núcleos y, si llega a ser mucho más grande que el número de núcleos, es habitual que el sistema se vuelva inmanejable.

El núcleo de Linux incluye en el factor de carga no solamente los procesos en ejecución y listos para ejecutarse, sino también los que están durmiendo de forma no interrumpible (lo que a menudo significa a la espera en llamadas de entrada y salida). Es por esto que los usuarios de sistemas basados en el núcleo de Linux pueden encontrarse con que un mismo valor numérico elevado de la carga puede a veces suponer que el sistema usa mucho el procesador y otras veces lo usa poco. Un sistema con un valor numérico de carga elevado debido mayoritariamente a procesos que están a la espera de ciertas llamadas de entrada y salida puede responder bien a nuevos intentos de interacción por parte del usuario, mientras que el mismo sistema con el mismo valor numérico de carga, esta vez dominado por el uso de procesador, puede no responder a los intentos desesperados del usuario por retomar el control y corregir la situación. Esto es un lío, por supuesto, ya que el hecho de que los procesos estén bloqueados en entrada y salida no implica necesariamente que una carga elevada sea tolerable y, de cualquier manera, esta carga elevada sí significa que los procesos bloqueados van a un tiempo excesivo en ejecutarse.


Categorías: Informática

Permalink: http://sgcg.es/articulos/2020/07/09/la-carga-en-sistemas-unix/