Cómo monitorear el uso de la CPU en Linux a lo largo del tiempo

Contenidos

utilidad principal que muestra el uso actual de la CPU para cada proceso en ejecución

los top La utilidad muestra el uso actual de la CPU para cada procedimiento en ejecución, pero ¿qué pasa si quisiera monitorear esto a lo largo del tiempo y mostrarlo en un gráfico? Hay algunas utilidades para esto si su proveedor de nube aún no cuenta con una.

Como nota al margen, si aún no lo tiene instalado, el htop La utilidad (en la imagen de arriba) es mucho más agradable de utilizar que la predeterminada top.

La respuesta trivial: utilice los gráficos de su proveedor en la nube

Esta solución es, con mucho, la más fácil de utilizar, pero no estará disponible para todos. Si está en AWS, CloudWatch facilita la supervisión del uso de la CPU.

Desde el Consola de administración de CloudWatch, selecciona «Métricas» y posteriormente ve las métricas para EC2. La métrica «CPUUtilization» muestra su uso promedio de CPU:

En la Consola de administración de CloudWatch, seleccione "Métricas" y luego vea las métricas para EC2.

Su uso promedio de CPU se mide en incrementos de 5 minutos, pero puede habilitar la supervisión extendida para la instancia y aumentarla en incrementos de 1 minuto. A pesar de esto, hacerlo tiene un costo adicional. Además puede configurar alarmas fácilmente para cuando el uso de la CPU sea demasiado alto.

Si está en el buscador de Google Cloud Platform, aparece un gráfico en la pestaña «Supervisión» cuando selecciona una instancia.

Gráfico que aparece en Google Cloud Platform en la pestaña "Supervisión" cuando se selecciona una instancia.

Azure tiene Monitor de Azure, que muestra información equivalente:

Azure Monitor muestra información similar a Google Cloud Platform.

Para la mayoría de los otros proveedores de la nube, es probable que además tengan un gráfico como este.

Usando / proc / loadavg

La mejor manera de hacer esto de forma nativa es mirar dónde top obtiene su información de. /proc/loadavg contiene promedios de 1 minuto, 5 minutos y 15 minutos. Puedes iniciar sesión con cat

cat /proc/loadavg/
1.71 1.32 1.38 2/97 6429

Puede utilizar esto para generar un gráfico imprimiendo cada línea en un archivo CSV separado por comas, usando algunos awk magia:

cat /proc/loadavg | awk '{print $1","$2","$3}' >> cpu.csv

Conecta esto a un cron trabajo que se ejecuta cada minuto, rote los registros con logrotate, y tendrá un monitor de CPU manipulado. Puede importar el archivo CSV a Excel, donde será fácil graficar el uso promedio de CPU en un gráfico de líneas.

Tenga en cuenta que el comando anterior imprime los promedios de 1 minuto, 5 minutos y 15 minutos. Si lo está ejecutando cada minuto, no es verdaderamente necesario imprimir los promedios de 5 y 15 minutos, debido a que puede averiguarlo computacionalmente.

Instalar sysstat

los sar La utilidad es excelente para monitorear el desempeño del sistema. Se incluye como parte de sysstat, que probablemente no esté instalado de forma predeterminada en su sistema. Tendrá que obtenerlo del administrador de paquetes de su distribución. Para sistemas basados ​​en Debian como Ubuntu, sería:

sudo apt-get install sysstat

A continuación, habilítelo editando /etc/default/sysstat y estableciendo «HABILITADO» en verdadero.

Al hacerlo, monitorea su sistema y genera un reporte cada 10 minutos, rotándolos después de una semana. Puede modificar esta conducta editando el crontab sysstat en /etc/cron.d/sysstat, o cambiando la configuración de rotación en el sysstat ajustes en /etc/sysstat/sysstat.

Puede generar un reporte en tiempo real con el siguiente comando:

sar -u 1 3

sysstat recopilará datos de uso de CPU en segundo plano cada minuto, guardándolos en /var/log/sysstat/. Después puede importar estos datos para su análisis, usando un programa de hoja de cálculo o una herramienta personalizada como sargraph, que muestra un buen gráfico:

sargraph muestra un gráfico del uso de la CPU.

Además puede usar las utilidades de la línea de comandos para trazar gráficos como este, como ttyplot, pero ninguno de ellos se acerca a ser tan fácil de utilizar (y tan atractivo) como una GUI. La línea de comando es mejor en este, los gráficos son más agradables.

Monit puede avisarle si el uso de la CPU es demasiado alto

Logotipo de Monit

Monit es una suite de monitoreo open source para Unix que verifica el estado de su servidor y se puede configurar para enviarle notificaciones si el uso de la CPU de su servidor se torna peligrosamente alto. Lea nuestra guía para configurarlo para obtener más información.

Tenga en cuenta que CloudWatch logra lo mismo de inmediato con alarmas y puede operar en múltiples métricas diferentes, no solo en el uso de la CPU.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.