Tutoriales

Resolución de problemas y supervisión del rendimiento del sistema Linux con nmon

El monitor de Nigel (nmon) es una herramienta de supervisión del rendimiento del sistema desarrollada originalmente por IBM para el sistema operativo AIX y luego adaptada a varias arquitecturas de CPU en Linux.

principales beneficios nmon Sí, le permite monitorear diferentes aspectos de su sistema, como la utilización de la CPU, la memoria, el disco ocupado, la utilización de la red, etc. en una vista concisa.no nmondebe usar herramientas de monitoreo especializadas como top Para el proceso, iostat para discos y ifstat Se utiliza para la supervisión de red de varios recursos. Cada uno de ellos presenta los datos de una manera diferente.

solía nmon Primera vez como administrador del sistema AIX hace unos 10 años.mediante el uso nmon, pude solucionar algunos problemas difíciles de encontrar, incluido lo que inicialmente parecían cuellos de botella en la red.Verifique múltiples recursos al mismo tiempo usando nmondescubrí que era un problema de la aplicación causado por tener demasiados archivos abiertos.

Además de monitorear interactivamente su sistema, también puede usar nmon Recopile y guarde datos de rendimiento en modo por lotes para su análisis.Para más información nmon Para Linux, vea el proyecto Página web oficial.

Este artículo analiza esta poderosa herramienta de monitoreo. Comience por instalarlo.

instalar nmon

nmon Disponible en los repositorios predeterminados de muchas distribuciones de Linux. Por ejemplo, para instalarlo usando DNF en Fedora 35:

$ sudo dnf -y install nmon

Para Red Hat Enterprise Linux o CentOS, nmon Disponible en Paquetes adicionales para Enterprise Linux (EPEL) repositorio.

Instalar en pc nmonprimero habilite EPEL:

$ sudo dnf -y install \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

$ sudo dnf repolist

luego instalar nmon utilizar dnf:

$ sudo dnf -y install nmon

ahora has instalado nmonúselo para monitorear su sistema.

Usar nmon de forma interactiva

Después de instalar la aplicación, puede monitorear el sistema de forma interactiva ejecutando nmonVerá una pantalla de inicio con información del sistema y un pequeño menú de ayuda que muestra qué teclas puede presionar para cambiar entre las diferentes métricas:

$ nmon

┌─16k──[H for help]──Hostname=f35ks01─Refresh= 2secs ─18:04:27────┐
│                                                                 │
│------------------------------                                   │
│ _ __  _ __ ___   ___  _ __    For help type H or ...            │
│| '_ \| '_ ` _ \ / _ \| '_ \    nmon -?  - hint                  │
│| | | | | | | | | (_) | | | |   nmon -h  - full details          │
│|_| |_|_| |_| |_|\___/|_| |_|                                    │
│                               To stop nmon type q to Quit       │
│------------------------------                                   │
│                                                                 │
│Fedora release 35 (Thirty Five) VERSION="35 (Thirty Five)"       │
│Vendor=AuthenticAMD Model=AMD EPYC-Milan Processor               │
│MHz=1911.004 bogomips=3822.00     lscpu:CPU=4 Little Endian      │
│ProcessorChips=4 PhysicalCores=1        Sockets=4 Cores=1 Thrds=1│
│                 VirtualCPUs =4         MHz=0 max=0 min=0        │
│                                                                 │
│Use these keys to toggle statistics on/off:                      │
│  c = CPU         l = CPU Long-term     - = Faster screen updates│
│  C = " WideView  U = Utilisation       + = Slower screen updates│
│  m = Memory      V = Virtual memory    j = File Systems         │
│  d = Disks       n = Network           . = only busy disks/procs│
│  r = Resource    N = NFS               h = more options         │
│  k = Kernel      t = Top-processes     q = Quit                 │
│─────────────────────────────────────────────────────────────────│

Por ejemplo, presione C Alternar visualización de utilización de la CPU:

┌─16k──[H for help]──Hostname=f35ks01─Refresh= 2secs ─18:05:58─┐
│ CPU Utilisation ─────────────────────────────────────────────│
│---------------------------+---------------------------------+│
│CPU User%  Sys% Wait%  Idle|0          |25   |50 |75   100|   │
│  1   3.6  17.2   0.0  79.2|Ussssssss>                    |   │
│  2   2.1   6.2   0.0  91.7|Usss    >                     |   │
│  3   0.0   1.1   0.0  98.9| >                            |   │
│  4   6.1  17.2   0.0   0.5|UUUssssssss>                  |   │
│---------------------------+---------------------------------+│
│Avg   3.0  10.3   0.0  86.7|Usssss>                       |   │
│---------------------------+---------------------------------+│
│──────────────────────────────────────────────────────────────│

urgente norte Alterne la visualización de la red y apílela automáticamente debajo de la visualización de la CPU:

┌─16k──[H for help]──Hostname=f35ks01─Refresh= 2secs ─18:17:01─┐
│ CPU Utilisation ─────────────────────────────────────────────│
│---------------------------+---------------------------------+│
│CPU User%  Sys% Wait%  Idle|0         |25    |50  |75  100|   │
│  1   2.6  10.3   0.0  87.1|Usssss     >                  |   │
│  2   0.0   2.2   0.0  97.8|s           >                 |   │
│  3   6.5  11.0   0.0  82.5|UUUsssss>                     |   │
│  4   0.0   0.5   0.0  99.5|               >              |   │
│---------------------------+---------------------------------+│
│Avg   2.4   5.9   0.0  91.6|Uss     >                     |   │
│---------------------------+---------------------------------+│
│ Network I/O ─────────────────────────────────────────────────│
│I/F Name Recv=KB/s Trans=KB/s p_in p_out in_sz out_sz Peak->..│
│      lo      0.0       0.0       0.0    0.0     0.0    0.0...│
│  enp1s0      0.0       0.0       0.5    0.0    52.0    0.0...│
│  enp7s0    218.6    5923.4    3335.5 9989.68   67.1  607.2...│
│ Network Error Counters ──────────────────────────────────────│
│I/F Name iErrors iDrop iOverrun iFrame oErrors   oDrop oOver..│
│      lo       0       0       0       0       0       0   ...│
│  enp1s0       0   34419       0       0       0       0   ...│
│  enp7s0       0   34419       0       0       0       0   ...│
│──────────────────────────────────────────────────────────────│

Continúe presionando otras teclas para apilar otras métricas en la misma vista.Por ejemplo, use D Para E/S de disco, Metro para la memoria, y Tonelada para procesos de primer nivel.

(Ricardo Gerardi, CC BY-SA 4.0)

Además de apilar nuevos monitores, puede presionar la tecla de punto o punto (.) para mostrar solo las CPU y los discos ocupados, y + y Aumente o disminuya el tiempo de actualización de la pantalla.utilizar H Mostrar ayuda.

Debido a que puede habilitar y deshabilitar diferentes monitores y métricas en cualquier momento, nmon es una herramienta altamente flexible que le ayuda a comprender el comportamiento de su sistema. También ayuda a resolver problemas mostrando diferentes métricas al mismo tiempo, brindando una visión holística del sistema y mejorando su capacidad para comprender los problemas.

Cuando haya terminado, presione pedir Salga y termine la sesión de monitoreo.

Recopilar datos de rendimiento

Además de proporcionar una vista interactiva general del sistema, puede ejecutar nmon Recopile datos de rendimiento a largo plazo de su sistema en modo por lotes para su posterior análisis.

Además de las métricas en tiempo real proporcionadas por el modo interactivo, esta función le permite comprender cómo se comporta el sistema durante un período de tiempo prolongado. Esta es una característica poderosa que permite la planificación de la capacidad y la oportunidad de resolver problemas esporádicos que son difíciles de detectar en tiempo real.

Correr nmon Banderas de uso masivo -f al iniciar la aplicación. Debe ser el primer parámetro proporcionado. por defecto, nmon Los datos se recopilan cada cinco minutos durante un día.Puede cambiar estos valores predeterminados especificando parámetros -s Para el intervalo de recolección y -c por el número de instantáneas.

Por ejemplo, para habilitar nmon En el modo por lotes, los datos se recopilan cada minuto durante una hora, incluida la captura de procesos de nivel superior -tEjecute este comando:

$ nmon -f -s60 -c60 -t

El indicador de su terminal regresará inmediatamente porque la aplicación se ejecuta en segundo plano cuando ejecuta este comando.Puedes verlo funcionando usando ps:

$ ps -ef | grep nmon
ricardo 1849 1 0 12:27 pts/0 00:00:00 nmon -f -s60 -c60 -t

En modo por lotes, nmon Guarde los datos recopilados en formato de valores separados por comas (CSV) con la extensión .nmon En el directorio actual:

$ ls -l
total 36
-rw-r--r--. 1 ricardo ricardo 36395 Feb 13 12:28 f35ks01_220213_1227.nmon

Dado que se trata de un archivo CSV, puede procesarlo con otras herramientas de línea de comandos de manipulación de texto de Linux o abrirlo con un software de hoja de cálculo para un análisis más detallado.

$ head f35ks01_220213_1227.nmon
AAA,progname,nmon
AAA,command,nmon -f -s60 -c60 -t
AAA,version,16k
AAA,disks_per_line,150
AAA,max_disks,256,set by -d option
AAA,disks,10,
AAA,host,f35ks01
AAA,user,ricardo
AAA,OS,Linux,5.16.8-200.fc35.x86_64,#1 SMP PREEMPT Tue Feb 8 20:58:59 UTC 2022,x86_64
AAA,runname,f35ks01

Además de estos métodos, nmon El equipo de desarrollo proporciona un script para convertir estos datos en un gráfico que puede visualizar mediante un navegador web. A continuación voy a ver cómo hacer esto.

[ It wouldn’t be Linux if there weren’t a dozen ways to perform any task. For info on the various ways to install software, download this guide to installing applications on Linux. ]

Generar gráfico

CSV es un formato flexible que le permite exportar, analizar y ver estos datos utilizando diferentes aplicaciones, como el software de procesamiento de hojas de cálculo.Esta nmon desarrollador creado nmonchart Hazlo un poco más fácil. Este script de shell convierte estos datos a HTML utilizando Google Charts JavaScript para visualizar e interactuar con los datos en un entorno gráfico.

utilizar nmoncartdesde nmon Página principal:

$ curl -LO http://sourceforge.net/projects/nmon/files/nmonchart40.tar

Luego extraiga el contenido del paquete usando tar:

$ mkdir nmonchart

$ tar xvf nmonchart40.tar -C nmonchart

nmonchart utilizar hoja de maíz (ksh), por lo que para crear un gráfico, primero instale ksh utilizar en su sistema dnf:

$ sudo dnf install -y ksh

A continuación, convierte .nmon archivo creado cuando se ejecuta nmon Use este comando en modo por lotes:

$ ./nmonchart/nmonchart f35ks01_220213_1227.nmon 

El script crea un archivo HTML con el mismo nombre que la fuente .nmon documento.Alternativamente, puede proporcionar el nombre de archivo de destino como el segundo parámetro nmonchart. Aquí hay un ejemplo:

$ ls -lg
total 4164
-rw-r--r--. 1 ricardo 113822 Feb 14 18:52 f35ks01_220213_1227.html
-rw-r--r--. 1 ricardo 93436 Feb 13 13:26 f35ks01_220213_1227.nmon
drwx------. 2 ricardo 4096 Aug 28 2020 nmonchart

El diagrama de su sistema ya está listo. Su próximo paso es mirarlos.

[ Get the Bash shell scripting cheat sheet. ]

Visualizar gráficos de rendimiento

nmonchart Crear un archivo HTML para cada archivo .nmon El archivo de origen que proporciona, que incorpora la biblioteca JavaScript de gráficos necesaria. Si tiene el archivo HTML en su computadora local, visualícelo directamente en su navegador web.

También puede servir estos archivos usando un servidor web. Una de mis formas favoritas es usar Nginx en un contenedor Podman, como sugiero en Agregar 20 comandos de Linux de una línea a su caja de herramientas.

Primero, cree un directorio y mueva los archivos HTML allí:

$ mkdir html

$ mv f35ks01_220213_1227.html html/

Luego usa Podman de html Directorio usando Nginx en el puerto 8080:

$ podman run --rm -v ./html:/usr/share/nginx/html:ro,Z -p 8080:80 -d nginx

Si es necesario, abra el puerto 8080 en el firewall del servidor para permitir el tráfico:

$ sudo firewall-cmd --add-port 8080/tcp 

luego apunta tu navegador a tu url http://:8080/f35ks01_220213_1227.html Mira el gráfico:

(Ricardo Gerardi, CC BY-SA 4.0)

Haga clic en cualquier botón en la parte superior de la pantalla para ver el gráfico correspondiente. Los gráficos son interactivos. Puede acercar y alejar para ver más datos granulares, o pasar el cursor sobre el gráfico para ver datos detallados para un momento determinado.

envolver

nmon es una aplicación de monitoreo de sistema flexible y poderosa que lo ayuda a comprender mejor su sistema y solucionar problemas cuando surgen. Combina la capacidad de monitorear y consolidar datos en tiempo real de recursos dispares del sistema con la recopilación y el análisis de datos de rendimiento a largo plazo, lo que la convierte en una excelente herramienta para el administrador del sistema.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Botón volver arriba