El monitoreo del uso de recursos en un servidor Linux es crucial para mantener el rendimiento y solucionar problemas. Existen diversas herramientas disponibles para ayudar a seguir el uso de la CPU, memoria, disco y red. A continuación se presentan algunos métodos y comandos comunes para monitorear los recursos del sistema.
1. Verificar el uso de la CPU
Usando top
El comando top
proporciona una vista dinámica y en tiempo real de los procesos del sistema, incluido el uso de la CPU.
$ top
Verá una lista de procesos en ejecución y, en la parte superior de la pantalla, encontrará los detalles del uso de la CPU en la columna “%CPU”. El uso de la CPU se desglosa en procesos de usuario, procesos del sistema y tiempo inactivo.
Ejemplo de salida:
top - 15:25:01 up 3 days, 4:14, 1 user, load average: 0.13, 0.12, 0.10Tasks: 204 total, 1 running, 203 sleeping, 0 stopped, 0 zombie %Cpu(s): 5.2 us, 2.1 sy, 0.0 ni, 92.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 8032.8 total, 3094.0 free, 1634.4 used, 4304.4 buff/cache MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 6112.8 avail Mem
2. Monitorear el uso de memoria
Usando free
El comando free
muestra el uso de memoria, incluyendo la memoria total, usada y libre, así como el uso de swap.
$ free -h
El flag -h
asegura que la salida sea en un formato legible para humanos.
Ejemplo de salida:
total used free shared buff/cache availableMem: 7.8Gi 1.6Gi 3.0Gi 155Mi 3.2Gi 5.7Gi Swap: 2.0Gi 0B 2.0Gi
3. Uso del disco
Usando df
El comando df
muestra el espacio en disco usado y disponible en todos los sistemas de archivos montados.
$ df -h
El flag -h
asegura que la salida sea legible (por ejemplo, en GiB o MiB).
Ejemplo de salida:
Filesystem Size Used Avail Use% Mounted on/dev/sda1 50G 30G 18G 63% / tmpfs 16G 1.6G 15G 10% /dev/shm /dev/sdb1 100G 25G 70G 27% /data
4. Monitorear el uso de la red
Usando iftop
El comando iftop
muestra el uso de la red para las conexiones activas en tiempo real.
$ sudo iftop
Esto mostrará una lista de conexiones de red activas y mostrará su ancho de banda entrante y saliente.
Ejemplo de salida:
TX: 15.3 KB 22.1 KB Total 60.1 KBRX: 10.1 KB 12.3 KB IP address Port Pkts In Pkts Out Total In Total Out 192.168.1.2 22 200 150 25.5 KB 13.4 KB 192.168.1.5 80 85 120 5.2 KB 9.1 KB
Usando netstat
netstat
muestra las conexiones de red, las tablas de enrutamiento y las estadísticas de la interfaz.
$ netstat -tuln
Esto muestra los puertos de escucha y los servicios correspondientes que los están utilizando.
Ejemplo de salida:
Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp6 0 0 :::80 :::* LISTEN
5. Verificar la carga del sistema
Usando uptime
El comando uptime
proporciona una visión rápida de las cargas promedio del sistema durante 1, 5 y 15 minutos.
$ uptime
Ejemplo de salida:
15:30:02 up 3 days, 4:21, 1 user, load average: 0.10, 0.12, 0.08
6. Monitorear los procesos
Usando ps
El comando ps
permite verificar el uso de recursos de procesos específicos.
$ ps aux --sort=-%cpu | head
Este comando ordena los procesos por uso de CPU y muestra los procesos principales.
Ejemplo de salida:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1123 10.5 3.1 112340 31092 ? S 15:10 0:12 /usr/bin/python3 user 2345 7.8 1.8 82344 18640 ? S 15:15 0:09 /usr/bin/nginx
7. Herramientas avanzadas de monitoreo
Usando htop
htop
es un visor de procesos interactivo que proporciona una forma más amigable de monitorear los recursos del sistema.
$ sudo htop
Permite ordenar los procesos por CPU, uso de memoria y más, con una visualización atractiva.