GNU/Linux >> Tutoriales Linux >  >> Linux

Monitoreo de hosts Linux y Windows con Glances

Los administradores de sistemas tienen muchas herramientas para ver y administrar los procesos en ejecución. Para mí, estos solían ser principalmente top , encima y htop . Hace unos años, encontré Glances, una herramienta que muestra información que ninguno de mis otros favoritos muestra. Todas estas herramientas monitorean el uso de la CPU y la memoria, y la mayoría de ellas enumeran información sobre los procesos en ejecución (como mínimo). Sin embargo, Glances también supervisa la E/S del sistema de archivos, la E/S de la red y las lecturas de sensores que pueden mostrar la temperatura de la CPU y de otro hardware, así como las velocidades de los ventiladores y el uso del disco por dispositivo de hardware y volumen lógico.

Miradas

Mencioné Glances en mi artículo 4 herramientas de código abierto para el monitoreo del sistema Linux , pero profundizaré en ello en este artículo. Si leyó mi artículo anterior, parte de esta información puede resultarle familiar, pero también debería encontrar algunas cosas nuevas aquí.

Glances es multiplataforma porque está escrito en Python. Se puede instalar en Windows y otros hosts con versiones actuales de Python instaladas. La mayoría de las distribuciones de Linux (Fedora en mi caso) tienen Glances en sus repositorios. Si no es así, o si está utilizando un sistema operativo diferente (como Windows), o si simplemente desea obtenerlo directamente desde la fuente, puede encontrar instrucciones para descargarlo e instalarlo en el repositorio de GitHub de Glances.

Sugiero ejecutar Glances en una máquina de prueba mientras prueba los comandos de este artículo. Si no tiene un host físico disponible para realizar pruebas, puede explorar Glances en una máquina virtual (VM), pero no verá la sección de sensores de hardware; después de todo, una máquina virtual no tiene hardware real.

Para iniciar Glances en un host Linux, abra una sesión de terminal e ingrese el comando glances .

Glances tiene tres secciones principales:Resumen, Proceso y Alertas, así como una barra lateral. Los exploraré y otros detalles para usar Glances ahora.

Sección de resumen

En sus primeras líneas, la sección Resumen de Glances contiene gran parte de la misma información que encontrará en las secciones de resumen de otros monitores. Si tiene suficiente espacio horizontal en su terminal, Glances puede mostrar el uso de la CPU con un gráfico de barras y un indicador numérico; de lo contrario, solo mostrará el número.

Me gusta más la sección Resumen de Miradas que las de otros monitores (como superior ); Creo que proporciona la información correcta en un formato fácilmente comprensible.

La sección Resumen anterior proporciona una descripción general del estado del sistema. La primera línea muestra el nombre de host, la distribución de Linux, la versión del kernel y el tiempo de actividad del sistema.

Las siguientes cuatro líneas muestran estadísticas de CPU, uso de memoria, intercambio y carga. La columna de la izquierda muestra los porcentajes de CPU, memoria y espacio de intercambio que están en uso. También muestra las estadísticas combinadas de todas las CPU presentes en el sistema.

Presiona el 1 para alternar entre la pantalla de uso de CPU consolidada y la pantalla de las CPU individuales. La siguiente imagen muestra la pantalla Glances con estadísticas de CPU individuales.

Esta vista incluye algunas estadísticas de CPU adicionales. En cualquier modo de visualización, las descripciones de los campos de uso de la CPU pueden ayudarlo a interpretar los datos que se muestran en la sección de la CPU. Tenga en cuenta que las CPU se numeran a partir de 0 (cero).

Sobre buenos números

Los números agradables son el mecanismo utilizado por los administradores para afectar la prioridad de un proceso. No es posible cambiar la prioridad de un proceso directamente, pero cambiar el número agradable puede modificar los resultados del algoritmo de configuración de prioridades del programador del kernel. Los números agradables van de -20 a +19, donde los números más altos son mejores. El número agradable predeterminado es 0 y la prioridad predeterminada es 20. Establecer el número agradable por encima de cero aumenta un poco el número de prioridad, lo que hace que el proceso sea más agradable y, por lo tanto, menos codicioso de ciclos de CPU. Establecer el número agradable en un número más negativo da como resultado un número de prioridad más bajo, lo que hace que el proceso sea menos agradable. Los números agradables se pueden cambiar con el comando renice o desde arriba, arriba y harriba.

Memoria

La parte Memoria de la sección Resumen contiene estadísticas sobre el uso de la memoria.

CPU Este es el uso actual de la CPU como porcentaje del total disponible.
usuario Estas son las aplicaciones y otros programas que se ejecutan en el espacio del usuario, es decir, no en el núcleo.
sistema Estas son funciones a nivel de kernel. No incluye el tiempo de CPU que toma el kernel en sí, solo las llamadas al sistema del kernel.
inactivo Este es el tiempo de inactividad, es decir, el tiempo no utilizado por ningún proceso en ejecución.
agradable Este es el tiempo utilizado por los procesos que se ejecutan a un nivel agradable y positivo.
irq Estas son las solicitudes de interrupción que consumen tiempo de CPU.
esperar Estos son ciclos de CPU que se gastan esperando que ocurra la E/S; esto es tiempo de CPU desperdiciado.
robar El porcentaje de ciclos de CPU que una CPU virtual espera a una CPU real mientras el hipervisor da servicio a otro procesador virtual.
ctx-sw Estos son el número de cambios de contexto por segundo; representa la cantidad de veces por segundo que la CPU cambia de ejecutar un proceso a otro.
entre Este es el número de interrupciones de hardware por segundo. Una interrupción de hardware ocurre cuando un dispositivo de hardware, como un disco duro, le dice a una CPU que completó una transferencia de datos o que una tarjeta de interfaz de red está lista para aceptar más datos.
sw_int Las interrupciones de software le dicen a la CPU que se completó alguna tarea solicitada o que el software está listo para algo. Estos tienden a ser más comunes en el software a nivel de kernel.

La sección Intercambio se explica por sí misma si comprende un poco sobre el espacio de intercambio y cómo funciona. Esto muestra cuánto espacio de intercambio total está disponible, cuánto se usa y cuánto queda.

La parte Carga de la sección Resumen muestra los promedios de carga de uno, cinco y 15 minutos.

Puede utilizar las teclas numéricas 1 , 3 , 4 y 5 para modificar su visión de los datos en esta sección. Los 2 tecla activa y desactiva la barra lateral izquierda.

Más información sobre los promedios de carga

Los promedios de carga suelen malinterpretarse, aunque son un criterio clave para medir el uso de la CPU. Pero, ¿qué significa realmente cuando digo que el promedio de carga de uno (o cinco o 10) minutos es 4.04, por ejemplo? El promedio de carga puede considerarse una medida de la demanda de la CPU; es un número que representa la cantidad promedio de instrucciones que esperan el tiempo de la CPU, por lo que es una medida real del rendimiento de la CPU.

Más sobre administradores de sistemas

  • Habilitar el blog de administrador del sistema
  • La empresa automatizada:una guía para administrar TI con automatización
  • Libro electrónico:Automatización de Ansible para administradores de sistemas
  • Historias del campo:una guía del administrador de sistemas para la automatización de TI
  • eBook:Una guía de Kubernetes para SRE y administradores de sistemas
  • Últimos artículos de administrador de sistemas

Por ejemplo, una CPU de sistema de un solo procesador completamente utilizada tendría un promedio de carga de 1. Esto significa que la CPU se mantiene exactamente al día con la demanda; en otras palabras, tiene una utilización perfecta. Un promedio de carga inferior a 1 significa que la CPU está infrautilizada, y un promedio de carga superior a 1 significa que la CPU está sobreutilizada y que existe una demanda acumulada e insatisfecha. Por ejemplo, un promedio de carga de 1,5 en un sistema de una sola CPU indica que un tercio de las instrucciones de la CPU deben esperar para ejecutarse hasta que se complete la anterior.

Esto también es cierto para varios procesadores. Si un sistema de cuatro CPU tiene un promedio de carga de 4, entonces tiene una utilización perfecta. Si tiene un promedio de carga de 3,24, por ejemplo, entonces tres de sus procesadores se utilizan por completo y uno se utiliza en aproximadamente un 24 %. En el ejemplo anterior, un sistema de cuatro CPU tiene un promedio de carga de un minuto de 4,04, lo que significa que no hay capacidad restante entre las cuatro CPU y algunas instrucciones se ven obligadas a esperar. Un sistema de cuatro CPU perfectamente utilizado mostraría un promedio de carga de 4,00, lo que significa que el sistema está completamente cargado pero no sobrecargado.

La condición óptima de promedio de carga es que el promedio de carga sea igual al número total de CPU en un sistema. Eso significaría que cada CPU se utiliza por completo y no se debe forzar ninguna instrucción a esperar. Pero la realidad es confusa y rara vez se cumplen las condiciones óptimas. Si un host estuviera funcionando al 100 % de su utilización, esto no permitiría picos en los requisitos de carga de la CPU.

Los promedios de carga a más largo plazo indican las tendencias generales de uso.

Diario de Linux publicó un excelente artículo sobre los promedios de carga, la teoría, las matemáticas detrás de ellos y cómo interpretarlos, en su número del 1 de diciembre de 2006. Desafortunadamente, Linux Journal ha dejado de publicarse y sus archivos ya no están disponibles directamente, por lo que el enlace es a un archivo de terceros.

Encontrar acaparadores de CPU

Una de las razones para usar una herramienta como Glances es encontrar procesos que consumen demasiado tiempo de CPU. Abra una nueva sesión de terminal (diferente de la que ejecuta Glances) e ingrese e inicie el siguiente programa Bash que acapara la CPU.

X=0;while [ 1 ];do echo $X;X=$((X+1));done

Este programa es un acaparador de CPU y utilizará todos los ciclos de CPU disponibles. Permita que se ejecute mientras termina este artículo y experimenta con Glances. Le dará una idea de cómo se ve un programa que acapara los ciclos de la CPU. Asegúrese de observar los efectos en los promedios de carga a lo largo del tiempo, así como el tiempo acumulado en el TIME+ columna para este proceso.

Sección de proceso

La sección Proceso muestra información estándar sobre cada proceso que se está ejecutando. Según el modo de visualización y el tamaño de la pantalla del terminal, se mostrarán diferentes columnas de información para los procesos en ejecución. El modo predeterminado con un terminal lo suficientemente ancho muestra las columnas que se enumeran a continuación. Las columnas que se muestran cambian automáticamente si se cambia el tamaño de la pantalla del terminal. Las siguientes columnas normalmente se muestran para cada proceso de izquierda a derecha.

MEM Esto muestra el uso de la memoria como un porcentaje de la cantidad total disponible.
total Esta es la cantidad total de memoria RAM instalada en el host, menos cualquier cantidad asignada al adaptador de pantalla.
usado Esta es la cantidad total de memoria en uso por el sistema y los programas de aplicación, pero sin incluir el caché ni los búferes.
gratis Esta es la cantidad de memoria libre.
activo Esta es la cantidad de memoria utilizada activamente; la memoria inactiva está sujeta a intercambio en el disco si surge la necesidad.
inactivo Esta es la memoria que está en uso pero a la que no se ha accedido durante algún tiempo.
amortiguadores Esta es la memoria que se utiliza para el espacio de búfer; por lo general, se utiliza para comunicaciones y E/S, como redes. Los datos se reciben y almacenan hasta que el software pueda recuperarlos para su uso o se puedan enviar a un dispositivo de almacenamiento o transmitirse a la red.
en caché Esta es la memoria utilizada para almacenar datos para la transferencia de disco hasta que pueda ser utilizada por un programa o almacenada en el disco.

Glances generalmente determina la columna de clasificación predeterminada automáticamente. Los procesos se pueden ordenar automáticamente (a ), o por CPU (c ), memoria (m ), nombre (p ), usuario (u ), velocidad de E/S (i ) o tiempo (t ). Los procesos se ordenan automáticamente por el recurso más utilizado. En las imágenes de arriba, el TIME+ la columna está resaltada.

Sección de alertas

Glances también muestra advertencias y alertas críticas, incluida la hora y la duración del evento, en la parte inferior de la pantalla. Esto puede ser útil cuando intenta diagnosticar problemas y no puede mirar la pantalla durante horas. Estos registros de alerta se pueden activar o desactivar con la l (L minúscula), las advertencias se pueden borrar con la w mientras que las alertas y advertencias se pueden borrar con x .

Barra lateral

Glances tiene una barra lateral muy agradable a la izquierda que muestra información que no está disponible en arriba o htop . Mientras arriba muestra algunos de estos datos, Glances es el único monitor que muestra datos sobre los sensores. Después de todo, a veces es bueno ver las temperaturas dentro de tu computadora.

Los módulos individuales, el disco, el sistema de archivos, la red y los sensores se pueden activar y desactivar con la d , f , n y s llaves, respectivamente. La barra lateral completa se puede alternar usando 2 . Las estadísticas de Docker se pueden mostrar en la barra lateral con D .

Tenga en cuenta que los sensores de hardware no se muestran cuando Glances se ejecuta en una máquina virtual.

Obteniendo ayuda

Puede obtener ayuda presionando la h llave; cierra la página de ayuda presionando h otra vez. La página de ayuda es bastante concisa, pero muestra las opciones interactivas disponibles y cómo activarlas y desactivarlas. La página de manual tiene explicaciones concisas de las opciones que se pueden usar al iniciar Glances.

Puede presionar q o Esc para salir de Miradas.

Configuración

Glances no requiere un archivo de configuración para funcionar correctamente. Si elige tener uno, la instancia de todo el sistema del archivo de configuración se ubicará en /etc/glances/glances.conf . Los usuarios individuales pueden tener una instancia local en ~/.config/glances/glances.conf , que anulará la configuración global. El propósito principal de estos archivos de configuración es establecer umbrales para advertencias y alertas críticas. También puede especificar si ciertos módulos se muestran de forma predeterminada o no.

El archivo /usr/local/share/doc/glances/README.rst contiene información útil adicional, incluidos módulos de Python opcionales que puede instalar para admitir algunas características opcionales de Glances.

Opciones de línea de comandos

Glances proporciona opciones de línea de comandos que le permiten iniciarse en modos de visualización específicos. Por ejemplo, el comando miradas -2 inicia el programa con la barra lateral izquierda deshabilitada.

Remoto y mas

Al iniciarlo en modo servidor, puede usar Glances para monitorear hosts remotos:

[root@testvm1 ~]# glances -s

A continuación, puede conectarse al servidor desde el cliente con:

[root@testvm2 ~]# glances -c @testvm1

Glances puede mostrar una lista de servidores Glances junto con un resumen de su actividad. También tiene una interfaz web para que pueda monitorear servidores Glances remotos desde un navegador. Las versiones recientes de Glances también pueden mostrar estadísticas de Docker.

También hay módulos conectables para Glances que proporcionan datos de medición que no están disponibles en el programa base.

Limitaciones

Aunque Glances puede monitorear muchos aspectos de un host, no puede administrar procesos. No puede cambiar el buen número de un proceso ni matar uno, como top y htop puede. Glances no es una herramienta interactiva. Se utiliza estrictamente para el seguimiento. Herramientas externas como matar y Renice se puede utilizar para gestionar procesos.

Las miradas solo pueden mostrar los procesos que consumen la mayor parte del recurso especificado, como el tiempo de CPU, en el espacio disponible. Si hay espacio para enumerar solo 10 procesos, eso es todo lo que podrá ver. Glances no proporciona opciones de desplazamiento o orden inverso que le permitan ver otros procesos que no sean los X principales.

El impacto de la medición

El efecto del observador es una teoría de la física que establece que "el simple hecho de observar una situación o fenómeno cambia necesariamente ese fenómeno". Esto también es cierto cuando se mide el rendimiento del sistema Linux.

El simple uso de una herramienta de monitoreo altera el uso de recursos del sistema, incluida la memoria y el tiempo de CPU. La parte superior La utilidad y la mayoría de los otros monitores usan quizás el 2% o el 3% del tiempo de CPU de un sistema. La utilidad Glances tiene mucho más impacto que las demás; por lo general, utiliza entre el 10 % y el 20 % del tiempo de la CPU, y lo he visto utilizar hasta el 40 % de una CPU en un sistema muy grande y activo con 32 CPU. Eso es mucho, así que considere su impacto cuando piense en usar Glances como su monitor.

Mi opinión personal es que este es un pequeño precio a pagar cuando necesita las capacidades de Glances.

Resumen

A pesar de su falta de capacidades interactivas, como la capacidad de reiniciar o matar procesos, y su alta carga de CPU, considero que Glances es una herramienta muy útil. La documentación completa de Glances está disponible en Internet, y la página de manual de Glances tiene opciones de inicio e información de comandos interactivos.


Partes de este artículo se basan en el nuevo libro de David Both, Using and Administering Linux:Volume 2 – Zero to SysAdmin:Advanced Topics.


Linux
  1. Navegar por la red de Windows con su máquina Linux con montaje automático y descubrimiento de todos los hosts y recursos compartidos.

  2. Instalar Linux Mint con Windows 8 | Arranque dual Windows 8 y Linux Mint 12

  3. Monitoreo de actividad y estado de usuario en Linux con GNU acct

  4. Interoperabilidad de Windows y Linux:una mirada a Samba

  5. Monitoreo de seguridad en Linux con Tripwire

Montaje y asignación de recursos compartidos entre Windows y Linux con Samba

Monitoreo del ancho de banda en Linux con Nethogs

Instalar Windows 10 en Linux con VirtualBox

Introducción a la supervisión y el ajuste del rendimiento de Linux

Cómo ejecutar aplicaciones GUI de Linux en Windows 10 con WSL y WSLg

Desarrollo Web y Técnicas Avanzadas con Linux sobre Windows (WSL)

    % de CPU Esta es la cantidad de tiempo de CPU como porcentaje de un solo núcleo. Por ejemplo, el 98 % representa el 98 % de los ciclos de CPU disponibles para un solo núcleo. Múltiples procesos pueden mostrar hasta el 100 % del uso de la CPU.
    % MEM Esta es la cantidad de memoria RAM utilizada por el proceso como porcentaje de la memoria virtual total en el host.
    VIRT Esta es la cantidad de memoria virtual utilizada por el proceso en formato legible por humanos, como 12M para 12 megabytes.
    RES Esto se refiere a la cantidad de memoria física (residente) utilizada por el proceso. Nuevamente, esto está en formato legible por humanos, con un indicador de K , M o G , para especificar kilobytes, megabytes o gigabytes.
    PID Todo proceso tiene un número de identificación, llamado PID. Este número se puede usar en comandos, como renice y matar , para gestionar el proceso. Recuerda que el matar La utilidad puede enviar señales a otro proceso además de la señal de "matar".
    USUARIO Este es el nombre del usuario propietario del proceso.
    TIEMPO+ Esto indica la cantidad acumulada de tiempo de CPU acumulado por el proceso desde que comenzó.
    THR Este es el número total de subprocesos que se están ejecutando actualmente para este proceso.
    NI Este es el buen número del proceso.
    E Este es el estado actual; puede ser (R )unning, (S )durmiendo, (yo )dle, T o t cuando el proceso se detiene durante un seguimiento de depuración, o (Z )ombie. Un zombi es un proceso que se ha eliminado pero que no se ha eliminado por completo, por lo que sigue consumiendo algunos recursos del sistema, como la memoria RAM.
    R/s y W/s Estas son las lecturas y escrituras de disco por segundo.
    Comando Este es el comando utilizado para iniciar el proceso.