4 Herramientas de monitorización del rendimiento de Linux basadas en la CLI: top, htop, ps y vmstat

Linux es un sistema operativo muy estable con fuertes características de seguridad. En varias ocasiones, podemos necesitar observar el rendimiento de nuestro sistema, quizá por algún fallo técnico o como parte de una comprobación rutinaria de la salud. La medición del rendimiento nos da una visión rápida de cómo está nuestro sistema, por ejemplo, los registros de rendimiento pueden decirnos qué procesos se están ejecutando, cuánta memoria está en uso, cuánta CPU se está utilizando, etc. Esta información también nos ayuda a tomar decisiones relacionadas con la planificación eficaz de recursos, la depuración de problemas del sistema, etc. La mayoría de las distribuciones de Linux ofrecen herramientas de línea de comandos y gráficas para realizar esta tarea. Algunas de ellas vienen preinstaladas con el sistema operativo y otras pueden necesitar ser instaladas. Estas herramientas se clasifican en herramientas de monitorización en tiempo real o en herramientas basadas en el registro.

Las herramientas de monitorización en tiempo real, como su nombre indica, proporcionan información sobre el sistema en su estado actual. Los resultados se actualizan continuamente.

Las herramientas basadas en el registro almacenan los resultados del rendimiento en un archivo que se puede recuperar posteriormente para procesar, analizar o trabajar con otra aplicación.

¿Qué vamos a hacer aquí?

En esta guía, presentaremos algunas de las herramientas basadas en la línea de comandos más utilizadas para supervisar el rendimiento del sistema. Para esta guía utilizamos el sistema operativo Ubuntu 20.04, aunque las herramientas que vamos a comentar están disponibles para la mayoría de las distribuciones basadas en Linux.

¿Por qué el modo CLI?

Una pregunta obvia que puede venir a la mente es por qué nos preocupamos más por las herramientas basadas en la línea de comandos. La primera razón es que no siempre puedes tener la suerte de que funcione un entorno gráfico, por ejemplo, el sistema en el que estás trabajando puede ser un servidor de producción remoto y no tiene una interfaz gráfica. Si por un momento tienes un sistema local, puede que no tengas privilegios para instalar una interfaz gráfica en él. Otra razón es que con una interfaz de línea de comandos tenemos la oportunidad de realizar varias tareas. Tmux es una aplicación de este tipo desde la que podemos monitorizar varios sistemas al mismo tiempo.

1. Arriba

Este comando muestra un resumen del estado del sistema en tiempo real. La salida muestra la cantidad de memoria del sistema (RAM) utilizada para diferentes propósitos, el porcentaje de CPU que se está utilizando, la memoria de intercambio y otra información. Las estadísticas de los procesos en términos de uso de memoria y cpu también se muestran simplemente ejecutando el comando top sin ninguna opción:

Salida del comando superior

 

También podemos seleccionar las columnas que se mostrarán en la salida de «top» escribiendo «f» mientras se ejecuta «top». En la nueva pantalla, selecciona o deselecciona cualquier columna pulsando la «barra espaciadora» o la «d» y luego pulsa «esc» para volver. En la imagen de abajo hemos eliminado algunas columnas y hemos añadido una nueva (GID):

Personalizar la salida del comando "top

2. Htop

El comando Htop muestra los datos de forma más informativa e interactiva. Los nombres de los procesos son más descriptivos y la integración del ratón es una característica extra que no está presente en el comando «top». Podemos utilizar el ratón para seleccionar varias columnas que se muestran en la salida del terminal. Otra ventaja es que proporciona una codificación por colores para captar y analizar fácilmente la salida. ‘Htop’ se puede instalar en Ubuntu 20.04 utilizando el comando

$ sudo apt install htop

Para ajustar diversas configuraciones, Htop utiliza teclas de función. Por ejemplo, se puede utilizar F3 para buscar la salida mostrada en la consola. Para listar los procesos que pertenecen a un usuario concreto, el comando a utilizar es:

$ htop -u User_Name

Para el usuario root, el comando será:

$ htop -u root

La salida del comando 'htop'
Para iniciar Htop en modo monocromo, utiliza:

$ htop -C

4. ps

La implementación del comando ‘ps’ difiere notablemente entre los distintos sistemas Unix, por ejemplo, puede utilizar una bandera (opción) en un sistema y otra para un sistema diferente, aunque la salida sea la misma en ambos casos. En el caso del comando ‘ps’, la salida es estática, a diferencia de los comandos ‘top’ y ‘htop’, en los que obtenemos actualizaciones en tiempo real. Cuando no se pasa ninguna opción, el comando ‘ps’ devuelve el nombre del shell activo y de los procesos eventuales.

Para mostrar todos los procesos en ejecución, incluidos los que pertenecen a otros usuarios (propietarios), utiliza el comando

$ ps aux

La salida del comando "ps

Como hemos utilizado la opción «u», también se mostrará el nombre de los usuarios. Otra forma de mostrar la lista de procesos que se están ejecutando en el sistema es utilizar el comando

$ ps -A

Seguramente habrás notado que las salidas del comando ‘ps’ suelen ser grandes. Para simplificar el trabajo de análisis o filtrado podemos utilizar el comando ‘grep’. Por ejemplo, para filtrar los procesos ‘/usr/lib/firefox/firefox’, utiliza:

$ ps aux | grep ‘/usr/lib/firefox/firefox/

Comando 'ps' con 'grep'
Del mismo modo, podemos redirigir la salida a un archivo en lugar de mostrarla en el terminal. Aquí tienes un ejemplo:

$ ps -aux > output.txt

El comando anterior dirigirá la salida a un archivo ‘output.txt’.

4. Vmstat

El reportero de memoria virtual o vmstat recoge datos sobre la CPU, la memoria virtual (swapd), la E/S en bloque, los discos, etc. Si no se utiliza ninguna opción, muestra la información media de estos parámetros. La media se toma desde la última vez que se reinició el sistema. Podemos especificar una frecuencia de muestreo tras la cual se mostrarán los datos en el terminal:

$ vmstat  2

Si utilizamos la opción ‘-a’, obtendremos la memoria activa e inactiva del sistema. Al igual que el comando ‘ps’, la salida de ‘vmstat’ varía según las plataformas. También podemos especificar el número de mediciones:

$ vmstat 1 4

Salida del comando 'vmstat'
El primer parámetro ‘1’ especifica la tasa de muestreo y el segundo parámetro ‘4’ da el número de mediciones que se mostrarán en la salida.

También te podría gustar...