ya sea que esté ejecutando un servidor para una aplicación o simplemente su máquina local, desea que su computadora ejecute lo mejor posible. Es por eso que debe asegurarse de monitorear el uso de la CPU, el disco y la memoria de su computadora. Monitorear cosas como el uso de la memoria y el uso del disco en realidad es bastante fácil. ¿Cuánto espacio en disco te queda? ¿Su disco está fragmentado? ¿Tienes suficiente RAM para las aplicaciones que estás usando? ¿Estás intercambiando memoria regularmente?
esas son preguntas fáciles de responder, y son preguntas que debes hacer., Pero algunas preguntas son más complicadas, especialmente cuando se trata de métricas de CPU. Claro, hay métricas simples como el uso general de la CPU. Pero si estás usando Linux, tienes métricas más esotéricas (y a veces más útiles), como la carga de CPU. En este post, vamos a hablar sobre lo que realmente significa la métrica de carga de CPU y cómo puede usarla para optimizar sus servidores.
la Carga de la CPU vs CPU
La primera cosa a entender es que la carga de la CPU no es la misma cosa como el uso de CPU., A pesar de que pueden sonar similares, son bastante diferentes. El uso de CPU es una medida, en un porcentaje, de cuánto tiempo la CPU pasa activamente computando algo. Por ejemplo, si tuviera un programa que requiriera potencia de procesamiento ininterrumpida durante 54 de los últimos 60 segundos, su uso de CPU en un núcleo sería del 90%. En cambio, si el programa solo requiere seis segundos de tiempo de procesamiento en un núcleo, el uso sería del 10%.
La mayoría de las empresas buscan mantener el uso de CPU de sus servidores lo más cerca posible del 100%., La mayoría de los servidores se venden por la potencia de cálculo general, y si su servidor solo está sentado en el 30% de uso de CPU, está pagando por demasiada potencia de procesador. Podría degradar su procesador a un nivel más bajo, ahorrar dinero y no ver ninguna reducción en la calidad del rendimiento de su servidor.
carga de la CPU
la carga de la CPU es diferente. En lugar de medir el porcentaje de tiempo que la CPU está trabajando, la carga de la CPU mide cuántos programas están utilizando o esperando un núcleo de procesador a la vez. Un procesador completamente inactivo tendría un valor de carga de 0., En nuestro ejemplo anterior, tendríamos tiempos de carga de un minuto de .9 y .1, respectivamente. Eso es bastante intuitivo. Sin embargo, lo que no es intuitivo acerca de la carga de la CPU es que un valor de 1 no es necesariamente una medición completamente cargada.
en cambio, lo que constituye la carga» completa » de la CPU depende de cuántos hilos del sistema operativo tenga su CPU. La mayoría de las CPU en estos días constituyen más de un solo núcleo de CPU, ejecutando más de un solo subproceso de CPU. Si su CPU tiene cuatro núcleos, entonces una carga de CPU de 1 no es una CPU completamente cargada. En su lugar, solo tendría una cuarta parte de carga., En su lugar, la carga de la CPU se consideraría completa para su CPU si su valor de carga fuera 4, NO 1.
descifrar las cargas de la CPU de Linux
ejecutar un programa que muestra los totales de carga de la CPU de Linux puede ser un poco confuso al principio. Si ejecuta un comando como uptime o top, es posible que vea un valor de carga de CPU que se parece a 1.68 0.55 5.91. Si no sabes lo que estás buscando, esto parece ruido. Afortunadamente, esto es bastante fácil de descifrar. Hay tres valores aquí, y los veremos en secuencia.
el primer valor es 1.68. Este es el valor de la carga de la CPU durante el último minuto., Como mencionamos antes, esta es una medida de cuántos programas estaban usando el tiempo de CPU durante el último minuto. Por lo tanto, durante el último minuto en esta máquina, hubo un promedio de 1.68 programas utilizando el tiempo de procesamiento de la CPU o esperando el tiempo de procesamiento de la CPU. Si se trata de una CPU de un solo subproceso, significa que el equipo está sobrecargado. Los usuarios esperan que sus programas se ejecuten en la CPU y experimentan un rendimiento degradado. Si, en cambio, se trata de una computadora de doble núcleo o de cuatro núcleos, los usuarios pueden obtener el tiempo de CPU tan rápido como lo necesitaban, durante el último minuto.,
el segundo valor es 0.55. Esta es la medición de los últimos 5 minutos. Como discutimos anteriormente, una medición por debajo de 1 significa que la CPU pasó parte del tiempo en esa ventana completamente inactiva. En este caso, la CPU estuvo inactiva durante casi la mitad del tiempo. Si estamos optimizando nuestra CPU para estar constantemente haciendo algo, eso no es una buena señal.
El número final, 5.91, es una medida de los últimos 15 minutos. Si está utilizando una CPU de ocho núcleos, entonces este número no es particularmente impactante. Si está utilizando una CPU de doble núcleo, entonces un número como 5.91 significa que su CPU está muy sobrecargada., Los usuarios esperan regularmente el tiempo de CPU y probablemente experimenten un rendimiento significativamente degradado.
cargas de CPU Unix vs. Linux
si está acostumbrado a usar la medición de carga de CPU en Unix, algunos de estos números pueden parecerle altos. Esto se debe a que Unix y Linux miden la carga de la CPU de manera diferente. Unix mide la carga de la CPU expresamente como una medida de programas que están usando activamente o esperando el procesamiento de la CPU. Linux mide las cosas un poco diferente, y entender cómo es clave para una buena administración del sistema.,
Linux mide la carga de la CPU mirando tanto los programas que actualmente están usando o esperando tiempo de CPU, además de los programas que están en estados de espera. Por ejemplo, un programa que está esperando una solicitud de red, o para cargar algo desde un disco, no contaría para la carga de CPU en Unix. En Linux, lo hace. Si este es un enfoque mejor o peor depende de su caso de uso. Si está buscando medir nada más que el uso general de la CPU, Unix proporciona una mejor interfaz., Pero si tienes un programa bloqueado durante 30 segundos esperando una solicitud de red, Linux te lo dirá. Unix nunca sacaría a la superficie esos datos.
optimizando las cargas de la CPU
no hay una bala de plata para optimizar las cargas de la CPU. Es un proceso que debes abordar de manera integral. Al igual que el uso de la CPU, cuando estás en un servidor quieres estar cerca del 100%, pero no más. A veces, el proceso de optimizar las cargas de la CPU es bastante fácil. Tal vez su servidor solo utilizará dos hilos al mismo tiempo., En ese caso, optimizar las cargas del servidor no es más complicado que tener un procesador de doble núcleo. Es posible que necesite un procesador más rápido para asegurarse de que esos programas se completen a tiempo, pero nunca necesitará más de dos núcleos.
Sin embargo, la mayoría de los sistemas no se limitan a exactamente dos subprocesos activos. La mayoría de los servidores son mucho más complicados. Y uno de los desafíos reales es mantener el número de núcleos lo más bajo posible, porque eso le ahorra dinero, sin ir demasiado bajo y degradar las experiencias del usuario. Podría ser que necesite optimizar el código que ejecuta su servidor., A veces, tendrá que determinar cuánto tiempo de programa se consume al esperar cosas como consultas de base de datos. Podría ser que realmente necesita aumentar el número de núcleos en su procesador. Los servidores con cuellos de botella pueden tener una serie de causas y se pueden solucionar de varias maneras.
¿cómo se carga tu CPU?
supervisar y optimizar la carga de la CPU es una parte importante para aprovechar al máximo la memoria de su servidor. Desafortunadamente, también es un proceso manual que consume mucho tiempo. Como se ha señalado, la mayoría de los comandos de Linux solo proporcionan carga de CPU para ventanas de 15 minutos., Eso es algo bueno; no querrías ventanas mucho más anchas que eso. Tendrías dificultades para obtener información útil de ellos. Sin embargo, mantener un ojo en la carga de la CPU durante períodos de 15 minutos es una especie de dolor de cabeza.
Afortunadamente, hay buenas herramientas para controlar este tipo de cosas para usted. Por ejemplo, Scalyr puede monitorear la carga de la CPU simplemente ingiriendo algunos registros. No obtendrá una simple impresión numérica., En su lugar, obtendrá una buena imagen que muestra la carga general de la CPU a lo largo del tiempo. Esto puede ser especialmente útil, ya que le ayuda a identificar las ventanas específicas que son las más exigentes en su CPU. Optimizar el rendimiento de su servidor significa entenderlo en detalle, y no solo a un alto nivel.
parte de ser un buen administrador de sistemas significa comprender su servidor desde todas las direcciones. Saber cómo interpretar la carga de CPU y cómo optimizarla es una parte clave para maximizar la inversión en servidores de su empresa., Antes de que pueda hacer eso, debe comprender cuál es la carga de CPU de su servidor en realidad. No hay mejor día que hoy para comenzar a monitorear la carga de la CPU de su servidor. Puede comenzar a formular un plan de optimización hoy mismo.
Este post fue escrito por Eric Boersma. Eric es un desarrollador de software y gerente de desarrollo que ha hecho de todo, desde la seguridad de ti en productos farmacéuticos hasta la redacción de software de inteligencia para el Gobierno de los Estados Unidos y la creación de equipos de desarrollo internacional para Organizaciones sin fines de lucro., Le encanta hablar de las cosas que ha aprendido a lo largo del camino, y le gusta escuchar y aprender de los demás también.