Los diez comandos esenciales principales para la monitorización de sistemas Linux
Aprende diez comandos de monitorización de Linux para comprobar CPU, memoria, disco, sockets de red, carga y actividad histórica del sistema.
Diez comandos esenciales para la monitorización del sistema Linux
Cuando un servidor Linux se siente lento, necesitas comandos que te digan si la presión es de CPU, memoria, disco, red o carga. Estos comandos de monitorización de Linux te ayudan a pasar de "el servidor está lento" a un siguiente paso específico.
Las diez herramientas siguientes te proporcionan instantáneas rápidas, vistas interactivas y datos históricos. Úsalos juntos en lugar de confiar en un solo número de forma aislada.
1. top - Actividad de procesos en tiempo real
El comando top proporciona una vista dinámica y en tiempo real de un sistema Linux en ejecución. Muestra un resumen de la información del sistema y una lista de procesos o hilos gestionados actualmente por el kernel de Linux. A menudo es la primera herramienta a la que recurren los administradores para obtener una visión general rápida de la actividad del sistema.
Métricas clave:
- Uso de CPU:
us(usuario),sy(sistema),ni(nice),id(inactivo),wa(espera de E/S),hi(IRQ de hardware),si(IRQ de software),st(tiempo robado). - Uso de memoria: Total, libre, usada, búferes/caché.
- Uso de swap: Total, libre, usado.
- Lista de procesos: PID, Usuario, PR (prioridad), NI (valor nice), VIRT (memoria virtual), RES (memoria residente), SHR (memoria compartida), S (estado), %CPU, %MEM, TIME+, COMANDO.
Uso básico:
top
Ejemplos prácticos:
- Ordenar por uso de CPU: Mientras estés en
top, presionaP. - Ordenar por uso de memoria: Mientras estés en
top, presionaM. - Mostrar procesos de un usuario específico: Mientras estés en
top, presionauy luego escribe el nombre de usuario. - Matar un proceso: Mientras estés en
top, presionake ingresa el PID.
Consejos:
- Presiona
1para alternar la visualización de los núcleos de CPU individuales. - Presiona
qpara salir detop. - Usa
top -bn1para obtener una instantánea única (útil para scripts).
2. htop - Visor interactivo de procesos
htop es un visor de procesos mejorado, interactivo y fácil de usar que ofrece muchas ventajas sobre el comando tradicional top. Presenta una interfaz más atractiva visualmente y navegable, lo que facilita la monitorización y gestión de procesos.
Ventajas clave:
- Medidores visuales: El uso de CPU, memoria y swap se muestra gráficamente.
- Lista desplazable: Puedes desplazarte vertical y horizontalmente para ver todos los procesos y sus líneas de comando completas.
- Gestión sencilla de procesos: Matar, renice y otras acciones se pueden realizar directamente usando las teclas de función sin ingresar PIDs.
- Vista de árbol: Los procesos se pueden mostrar en un formato de árbol para mostrar las relaciones padre-hijo.
Uso básico:
# Puede requerir instalación:
# sudo apt install htop (Debian/Ubuntu)
# sudo yum install htop (RHEL/CentOS)
htop
Ejemplos prácticos:
- Filtrar procesos: Presiona
F4. - Matar un proceso: Selecciona el proceso, luego presiona
F9. - Ordenar por varias columnas: Usa
F6.
Consejos:
- Generalmente se prefiere
htoppara la monitorización interactiva debido a su experiencia de usuario superior. - Personaliza las opciones de visualización de
htop(F2) para adaptarlas a tu flujo de trabajo.
3. vmstat - Estadísticas de memoria virtual
El comando vmstat informa información sobre procesos, memoria, paginación, E/S de bloque, interrupciones y actividad de la CPU. Es una excelente herramienta para identificar cuellos de botella de memoria o E/S de disco alta.
Métricas clave:
r: Número de procesos esperando tiempo de ejecución.b: Número de procesos en sueño ininterrumpible (típicamente E/S).swpd: Cantidad de memoria virtual utilizada.free: Cantidad de memoria inactiva.si/so: Cantidad de memoria intercambiada desde el disco / intercambiada hacia el disco.bi/bo: Bloques recibidos de un dispositivo de bloque / bloques enviados a un dispositivo de bloque.wa: Tiempo dedicado a esperar la finalización de E/S.
Uso básico:
vmstat 1 5 # Informar cada 1 segundo, 5 veces
Ejemplos prácticos:
- Mostrar memoria activa/inactiva:
vmstat -a - Mostrar slabinfo:
vmstat -m - Mostrar estadísticas de disco:
vmstat -d
Consejos:
- Los valores altos de
si/soa menudo indican presión de memoria y swapping excesivo, lo que puede degradar gravemente el rendimiento. - Un porcentaje de
waconsistentemente alto sugiere un cuello de botella de E/S.
4. iostat - Estadísticas de E/S
iostat es parte del paquete sysstat e informa sobre la utilización de la CPU y las estadísticas de E/S para dispositivos, particiones y sistemas de archivos de red. Es crucial para comprender los problemas de rendimiento del disco.
Métricas clave:
%user,%system,%iowait,%idle: Desgloses de utilización de la CPU.r/s/w/s: Lecturas/escrituras por segundo.rkB/s/wkB/s: Kilobytes leídos/escritos por segundo.await: Tiempo promedio (en milisegundos) para que se atiendan las solicitudes de E/S emitidas al dispositivo.%util: Porcentaje de tiempo transcurrido durante el cual el dispositivo tenía solicitudes de E/S en curso.
Uso básico:
# Puede requerir instalación:
# sudo apt install sysstat (Debian/Ubuntu)
# sudo yum install sysstat (RHEL/CentOS)
iostat -xz 1 5 # Estadísticas extendidas, cada 1 segundo, 5 veces
Ejemplos prácticos:
- Monitorización de dispositivo específico:
iostat -xz /dev/sda 1 - Mostrar solo la utilización de la CPU:
iostat -c - Mostrar solo la utilización del dispositivo:
iostat -d
Consejos:
- Un
%utilalto combinado con un tiempoawaitalto a menudo apunta a un cuello de botella de E/S en ese dispositivo. En SSD modernos y almacenamiento virtualizado, confirma con la latencia de la aplicación antes de asumir que el disco está saturado. - Compara
rkB/sywkB/sconr/syw/spara comprender el tamaño promedio de E/S.
5. free - Uso de memoria
El comando free muestra la cantidad total de memoria física y espacio de intercambio libre y utilizado en el sistema, así como los búferes y cachés utilizados por el kernel.
Métricas clave:
total: Memoria total instalada.used: Memoria utilizada (incluye búferes/caché).free: Memoria no utilizada.shared: Memoria utilizada por tmpfs (segmentos de memoria compartida).buff/cache: Memoria utilizada por los búferes del kernel y la caché de páginas.available: Una estimación de cuánta memoria está disponible para iniciar nuevas aplicaciones, sin intercambiar.
Uso básico:
free -h # Salida legible para humanos
Ejemplos prácticos:
- Mostrar memoria en megabytes:
free -m - Actualizar continuamente cada 5 segundos:
watch -n 5 free -h
Consejos:
- La columna
availablees la métrica más importante para comprender cuánta memoria está realmente libre para nuevos procesos. - Linux utiliza agresivamente la memoria disponible para el almacenamiento en caché del disco, por lo que un valor bajo de
freees normal y a menudo deseable.
6. df - Uso del espacio en disco
El comando df informa la cantidad de espacio en disco utilizado y disponible en los sistemas de archivos. Es esencial para monitorizar la capacidad de almacenamiento y prevenir escenarios de disco lleno.
Métricas clave:
Filesystem: El nombre del sistema de archivos.Size: Tamaño total del sistema de archivos.Used: Cantidad de espacio en disco utilizado.Avail: Cantidad de espacio en disco disponible.Use%: Porcentaje de espacio en disco utilizado.Mounted on: El punto de montaje del sistema de archivos.
Uso básico:
df -h # Salida legible para humanos
Ejemplos prácticos:
- Mostrar uso de inodos:
df -i(los inodos son estructuras de metadatos; quedarse sin ellos puede impedir la creación de archivos incluso con espacio libre). - Mostrar tipo de sistema de archivos específico:
df -hT -t ext4
Consejos:
- Verifica regularmente
Use%para evitar que los sistemas de archivos se llenen, lo que puede causar fallos en las aplicaciones e inestabilidad del sistema. - El uso elevado de inodos puede ser un problema con muchos archivos pequeños.
7. du - Uso de disco de archivos y directorios
El comando du estima el uso del espacio de archivos. Mientras que df verifica el uso total del sistema de archivos, du se utiliza para averiguar el tamaño de archivos o directorios específicos, lo cual es fundamental para identificar qué está consumiendo espacio en disco.
Métricas clave:
- Tamaño total de archivos o directorios especificados.
Uso básico:
du -sh /var/log # Resumen, legible para humanos para el directorio /var/log
Ejemplos prácticos:
- Mostrar tamaños de todos los subdirectorios (un nivel de profundidad):
du -h --max-depth=1 /home/usuario - Encontrar los archivos/directorios más grandes:
du -ah /ruta/a/verificar | sort -rh | head -n 10
Consejos:
- Combina
duconsortyheadpara localizar rápidamente los acaparadores de espacio en disco. - Ten cuidado al ejecutar
duen directorios grandes, ya que puede consumir muchos recursos.
8. sar - Reportero de actividad del sistema
sar es una herramienta poderosa del paquete sysstat que recopila, informa o guarda información de actividad del sistema. A diferencia de top o vmstat que muestran instantáneas en tiempo real, sar sobresale al proporcionar datos históricos, lo que lo hace invaluable para el análisis de rendimiento a largo plazo y la planificación de capacidad.
Características clave:
- Estadísticas de CPU:
%user,%nice,%system,%iowait,%steal,%idle. - Estadísticas de memoria:
kbmemfree,kbmemused,kbbuffers,kbcached. - E/S de disco:
tps,rd_sec/s,wr_sec/s. - Estadísticas de red:
rxpck/s,txpck/s,rxbyt/s,txbyt/s. - Promedio de carga, actividad de swap, actividad del kernel y más.
Uso básico:
# Informar utilización de CPU cada 1 segundo, 5 veces:
sar -u 1 5
# Informar actividad de disco:
sar -d
# Informar utilización de memoria:
sar -r
# Informar estadísticas de red:
sar -n DEV
Ejemplos prácticos:
- Ver un archivo de actividad de CPU guardado:
sar -u -f /var/log/sysstat/saDDen muchos sistemas basados en Debian, o/var/log/sa/saDDen muchos sistemas basados en RHEL. ReemplazaDDcon el día del mes. - Mostrar todos los datos recopilados para hoy:
sar -A
Consejos:
- Asegúrate de que el paquete
sysstatesté instalado y configurado para recopilar datos regularmente para el análisis histórico. sarpuede ser abrumador; concéntrate en banderas específicas (-u,-r,-d,-n) relevantes para tu investigación.
9. ss (Estadísticas de socket) - Conexiones de red
ss es una utilidad para investigar sockets. Es un reemplazo más rápido y eficiente del comando netstat más antiguo, proporcionando información más detallada sobre TCP, UDP y otros tipos de sockets, incluyendo su estado, direcciones locales/remotas e IDs de proceso.
Métricas clave:
- Estado:
ESTAB,LISTEN,TIME-WAIT,CLOSE-WAIT, etc. - Recv-Q / Send-Q: Los tamaños de las colas de recepción y envío.
- Dirección local:Puerto / Dirección remota:Puerto: Los puntos finales local y remoto.
- Nombre del proceso: El proceso asociado con el socket.
Uso básico:
ss -tuln # TCP, UDP, escucha, puertos numéricos
Ejemplos prácticos:
- Listar todas las conexiones TCP:
ss -t - Listar todas las conexiones UDP:
ss -u - Mostrar procesos escuchando en puertos específicos:
ss -tulnp | grep 80 - Resumir estadísticas de sockets:
ss -s
Consejos:
- Un número elevado de sockets
TIME-WAITno es automáticamente malo; puede ser normal en servicios TCP ocupados. Combínalo con agotamiento de puertos, conexiones fallidas o crecimiento de colas antes de tratarlo como un problema. - Monitoriza
Recv-QySend-Qen busca de signos de problemas de almacenamiento en búfer de red o procesamiento lento de aplicaciones.
10. uptime - Tiempo de actividad del sistema y promedio de carga
El comando uptime muestra cuánto tiempo ha estado funcionando el sistema, la hora actual, cuántos usuarios han iniciado sesión y los promedios de carga del sistema para los últimos 1, 5 y 15 minutos.
Métricas clave:
- Hora actual: Explicación automática.
- Tiempo de actividad: Cuánto tiempo ha estado funcionando el sistema.
- Usuarios: Número de usuarios actualmente conectados.
- Promedio de carga: El número promedio de procesos que están en un estado ejecutable o ininterrumpible. Esto incluye procesos que se están ejecutando en la CPU, esperando la CPU o esperando E/S de disco.
- Promedio de carga de 1 minuto
- Promedio de carga de 5 minutos
- Promedio de carga de 15 minutos
Uso básico:
uptime
Ejemplos prácticos:
- A menudo se usa como una verificación de estado rápida de la actividad general de un servidor.
Consejos:
- Compara el promedio de carga con el número de núcleos de CPU en tu sistema. Un promedio de carga consistentemente más alto que el número de núcleos de CPU a menudo indica un cuello de botella de CPU o E/S.
- Un promedio de carga creciente con el tiempo (por ejemplo, 1 minuto > 5 minutos > 15 minutos) sugiere que el sistema se está volviendo más ocupado.
Un flujo simple de resolución de problemas
Para un servidor lento, comienza con uptime para verificar la carga, luego usa top o htop para encontrar procesos ocupados. Verifica free -h y vmstat 1 5 para presión de memoria, iostat -xz 1 5 para latencia de disco, y ss -tulnp para servicios en escucha o sockets respaldados. Si el problema ocurrió antes, usa sar para comparar la ventana mala con una normal.
La conclusión es simple: cada comando responde una parte de la historia. Tu trabajo es alinear la evidencia de CPU, memoria, disco y red antes de reiniciar servicios o redimensionar la máquina.