Cómo realizar monitoreo de carga en Linux usando atop

El monitoreo de carga es una de las tareas más críticas, especialmente si se trata de servidores. No sólo le da una idea de cómo se están utilizando los recursos de su sistema, sino que también le ayuda a diagnosticar problemas relacionados con el rendimiento. En este artículo discutiremos cómo realizar la monitorización de carga en Linux usando la herramienta atop.

Nota : todos los ejemplos utilizados en el artículo han sido probados en Ubuntu 14.04.

Atop

Según su página man, la herramienta de línea de comandos en la parte superior es un monitor interactivo para ver la carga en un sistema Linux. Muestra cómo están ocupados los recursos de hardware del sistema, incluyendo la cpu, la memoria, el disco y la red, todo desde el punto de vista del rendimiento. No sólo esto, sino que también muestra qué procesos son responsables de la carga indicada.

Nota : se muestra la carga del disco si por proceso «storage accounting» está activo en el núcleo o si se ha instalado el parche del núcleo «cnt». Del mismo modo, la carga de red sólo se muestra por proceso si se ha instalado el parche del núcleo «cnt».

Descargar e instalar

Los usuarios de sistemas basados en Debian (como Mint y Ubuntu) pueden descargar e instalar la herramienta utilizando el siguiente comando:

sudo apt-get install atop

Aquellos que están en otras distribuciones de Linux pueden usar sus respectivas herramientas de gestión de paquetes. Por ejemplo, yum en el caso de Red Hat. También puede descargar la herramienta de su sitio web oficial .

Salida superior

Una vez instalada, puede ejecutar la herramienta ejecutando el siguiente comando desde la línea de comandos:

sudo atop

Aquí está la salida de muestra:

Cómo realizar monitoreo de carga en Linux usando atop

Como puede ver, es mucha información que está dividida en dos partes: Nivel de sistema y nivel de proceso. El primero consiste en las siguientes líneas de salida:

PRC : Esta línea contiene el tiempo total de CPU consumido en modo sistema (‘sys’) y en modo usuario (‘user’), el número total de procesos presentes en este momento (‘#proc’), el número total de hebras presentes en este momento en el estado ‘running’ (‘#trun’), dormir interrumpible («#tslpi») y «dormir ininterrumpidamente» («#tslpu»), el número de procesos zombis («#zombie»), el número de llamadas al sistema de clones («clones»), y el número de procesos que terminaron durante el intervalo («#exit», que muestra ‘?si no se utiliza la contabilidad de procesos).

CPU : Esta línea contiene el porcentaje de tiempo de CPU pasado en modo kernel por todos los procesos activos (‘sys’), en modo usuario (‘user’) para todos los procesos activos (incluyendo los procesos que se ejecutan con un valor superior a cero), para el manejo de interrupciones (‘irq’), incluyendo softirq, así como el porcentaje de tiempo de cpu no utilizado mientras no hay procesos esperando por disk-I/O (‘idle’) y mientras que al menos uno de los procesos está esperando por disk-I/O (‘wait’). En el caso de un sistema multiprocesador, se muestra una línea adicional para cada procesador individual (con’cpu’ en minúsculas), ordenada por actividad.

CPL : Esta línea contiene información sobre la carga de la CPU – el número de hebras que están disponibles para ejecutarse en una CPU (es decir, parte del runqueue) o que están esperando por la E/S del disco, el número de conmutadores de contexto (‘csw’), el número de interrupciones con servicio (‘intr’) y el número de CPUs disponibles.

MEM : Esta línea contiene información relacionada con el consumo de memoria – la cantidad total de memoria física (‘tot’), la cantidad de memoria que está actualmente libre (‘libre’), la cantidad de memoria en uso como caché de páginas (‘cache’), la cantidad de memoria dentro de la caché de páginas que tiene que ser vaciada al disco (‘sucia’), la cantidad de memoria usada para los meta datos del sistema de archivos (‘buff’) y la cantidad de memoria que se está usando para el malloc del kernel (‘slab’).

SWP : Esta línea contiene la cantidad total de espacio swap en el disco (‘tot’) y la cantidad de espacio swap libre (‘free’), el espacio de memoria virtual comprometido (‘vmcom’), y el límite máximo del espacio comprometido (‘vmlim’)

DSK : Esta línea contiene información relacionada con la utilización del disco: la parte de tiempo que la unidad estuvo ocupada tratando las solicitudes («ocupado»), el número de solicitudes de lectura emitidas («leído»), el número de solicitudes de escritura emitidas («escrito»), el número de KiBytes por lectura («KiB/r») y el número de KiBytes por escritura («KiB/w»), el número de MiBytes por segundo para lecturas (‘MBr/s’), el número de MiBytes por segundo para escritura (‘MBw/s’), la profundidad media de la cola (‘avq’) y el número medio de milisegundos que necesita una solicitud (‘avio’) para la búsqueda, latencia y transferencia de datos.

NET : Esta es la información relacionada con la utilización de la red (TCP/IP) – se muestra una línea para la actividad de la capa de transporte (TCP y UDP), una línea para la capa IP, y una línea por cada interfaz activa.

A la información de nivel de sistema le sigue la información de nivel de proceso, que como su nombre indica, detalla información relacionada con los procesos desde los cuales se ha modificado la utilización del recurso durante el último intervalo (un intervalo por defecto es de 10 segundos).

Un punto importante que vale la pena mencionar es que atop utiliza colores (rojo, cian, y más) para indicar la criticidad del consumo de recursos a nivel de sistema. Por ejemplo, cuando un recurso excede su porcentaje de ocupación crítica, toda la línea de la pantalla aparece en color ROJO.

Nota : pase por la página del comando man page para más detalles sobre la salida del comando.

Comandos interactivos

Puede controlar la salida del comando atop desde su teclado. Por ejemplo, pulse m para mostrar la salida relacionada con la memoria, d para la salida relacionada con el disco, n para la salida relacionada con la red, v para varias características del proceso, c para la línea de comandos del proceso, etc.

Aquí está la captura de pantalla de la información de nivel de proceso producida por el comando atop cuando se pulsó c:

Cómo realizar monitoreo de carga en Linux usando atop

Como puede ver, la línea de comandos del proceso se muestra en la salida.

Conclusión

Atop es un comando de monitorización de carga muy útil en Linux que no sólo proporciona una gran cantidad de información sobre los recursos del sistema, sino también varias formas de personalizar y controlar su salida. Se recomienda ir a través de la página command’s man page para obtener más información al respecto.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *