¿Cómo monitorizar el uso de CPU y memoria en un servidor Linux?
Monitorizar el uso de CPU y memoria puede ayudarle a identificar procesos que consumen demasiados recursos del servidor y a diagnosticar problemas de rendimiento en su servidor Linux.
Linux proporciona varias herramientas integradas para comprobar el uso actual de recursos, la carga del sistema y los procesos en ejecución.
Comprobar el uso de CPU con top
Ejecute el siguiente comando:
top
La utilidad top muestra información en tiempo real sobre el uso de CPU, el uso de memoria, la carga del sistema y los procesos en ejecución.
En el resumen de CPU, preste especial atención a:
- us — tiempo de CPU utilizado por los procesos de usuario.
- sy — tiempo de CPU utilizado por el kernel.
- id — tiempo de CPU inactivo.
- wa — tiempo dedicado a esperar operaciones de entrada/salida.
La lista de procesos también muestra el valor %CPU de cada proceso. Un valor constantemente alto puede ayudarle a identificar aplicaciones que consumen una cantidad significativa de recursos de CPU.
Nota:
En un sistema con varios núcleos, un proceso multihilo puede mostrar un uso de CPU superior al 100 %. Por ejemplo, un uso de aproximadamente el 200 % puede indicar que el proceso está utilizando el equivalente a dos CPU lógicas.
Comprobar la carga media del sistema
Para consultar rápidamente la carga media actual del sistema, ejecute:
uptime
El comando muestra tres valores de load average correspondientes aproximadamente a los últimos 1, 5 y 15 minutos.
El load average no es lo mismo que el uso de CPU. Representa el número medio de tareas que se están ejecutando, esperando tiempo de CPU o esperando en determinados estados no interrumpibles.
Para comprobar cuántas CPU lógicas están disponibles para el sistema, ejecute:
nproc
Al evaluar el load average, compárelo con el número de CPU lógicas disponibles para su servidor. Por ejemplo, un load average constante de aproximadamente 4 representa una carga relativa mucho mayor en un servidor con 4 CPU lógicas que el mismo valor en un servidor con 16 CPU lógicas.
Nota:
Un load average elevado no siempre significa que la propia CPU esté sobrecargada. Los procesos que esperan operaciones de disco u otras operaciones de entrada/salida también pueden aumentar el load average.
Encontrar los procesos que más CPU utilizan
Puede mostrar los procesos ordenados por uso de CPU con:
ps -eo pid,user,comm,%cpu,%mem --sort=-%cpu | head
Esto puede ayudarle a identificar qué procesos consumen más recursos de CPU.
Comprobar el uso de memoria
Para consultar el uso actual de RAM y swap, ejecute:
free -h
La salida muestra la memoria total, utilizada, libre y disponible, así como el uso de swap.
Al comprobar la memoria disponible, preste especial atención al valor available. Linux utiliza la RAM que no se está utilizando como caché del sistema de archivos, por lo que un valor free bajo por sí solo no significa necesariamente que falte memoria.
Si la memoria available permanece muy baja y el servidor utiliza activamente swap, el rendimiento de las aplicaciones puede disminuir. Puede utilizar top u otras herramientas de monitorización para identificar los procesos que consumen grandes cantidades de memoria.
Monitorizar el uso de recursos durante un período prolongado
Una sola medición no siempre indica un problema de rendimiento. El uso de CPU y la carga del sistema pueden aumentar temporalmente durante copias de seguridad, actualizaciones de software, tareas programadas, operaciones de bases de datos u otros procesos que requieren muchos recursos.
Si el servidor se vuelve lento o deja de responder con frecuencia, monitorice el uso de CPU, el load average, la memoria disponible, el uso de swap y los procesos que consumen más recursos durante un período más prolongado.