Nota:

Supervise los recursos del sistema en Oracle Linux

Introducción

En este tutorial, trabajará con Oracle Linux vmstat, mpstat y top para supervisar el uso de los recursos del sistema. La supervisión del uso de los recursos del sistema es útil para detectar problemas que pueden afectar negativamente al rendimiento del sistema.

Antecedentes

Oracle Linux proporciona herramientas para supervisar y analizar el uso de los recursos del sistema, así como herramientas de rastreo para diagnosticar problemas de rendimiento en varios procesos y threads relacionados.

Objetivos

¿Qué se necesita?

Un sistema cliente con Oracle Linux 8 o posterior instalado.

Nota: al utilizar el entorno de prácticas gratuitas, consulte Aspectos básicos del laboratorio de Oracle Linux para conocer la conexión y otras instrucciones de uso.

Exploración y uso de las opciones del comando vmstat

vmstat muestra cuánta memoria virtual hay y cuánto queda libre. El comando también muestra la actividad de paginación. Puede observar las entradas de página y las salidas de página a medida que se producen en el sistema.

Puede considerar la posibilidad de maximizar el área de visualización mediante los controles Ocultar pasos y "Pantalla completa" ubicados en la barra de tareas, como se muestra en las imágenes.

Ocultar pasos Ocultar pasos

Vea el siguiente vídeo para obtener una visión general de vmstat.

  1. Ejecute el comando vmstat sin ninguna opción.

    vmstat
    

    El comando genera un único informe. La salida se divide en seis secciones: procs, memory, swap, io, system y cpu.

    • Las dos primeras columnas proporcionan información sobre los procesos:

      • r es el número de procesos que están en estado de espera. Se trata de procesos inactivos y en espera de ejecución.

      • b es el número de procesos que estaban en modo de espera y se interrumpieron desde la última actualización.

    • Las cuatro columnas siguientes proporcionan información sobre la memoria:

      • swpd es la cantidad de memoria virtual utilizada.

      • free es la cantidad de memoria inactiva.

      • buff es la cantidad de memoria utilizada como buffers.

      • cache es la cantidad de memoria utilizada como caché.

    • Las dos columnas siguientes proporcionan información sobre el intercambio:

      • si es la cantidad de memoria intercambiada desde el disco (por segundo).

      • so es la cantidad de memoria intercambiada en el disco (por segundo).

        Los números si y so distintos de cero indican que no hay suficiente memoria física, lo que hace que el núcleo intercambie memoria en el disco.

    • Las dos columnas siguientes informan de entrada/salida:

      • bi es el número de bloques por segundo recibidos de un dispositivo de bloques.

      • bo es el número de bloques por segundo enviados a un dispositivo de bloques.

    • Las dos columnas siguientes proporcionan la siguiente información del sistema:

      • in es el número de interrupciones por segundo, incluido el reloj.

      • cs es el número de cambios de contexto por segundo.

    • Las últimas cinco columnas proporcionan los porcentajes del tiempo total de CPU:

      • us es el porcentaje de ciclos de CPU utilizados en los procesos de usuario.

      • sy es el porcentaje de ciclos de CPU utilizados en los procesos del sistema (núcleo).

      • id es el porcentaje de ciclos de CPU pasados inactivos.

      • wa es el porcentaje de ciclos de CPU utilizados en espera de E/S.

      • st es el porcentaje de ciclos de CPU robados desde una máquina virtual.

  2. Ejecute el comando vmstat 1 (numérico y no la letra minúscula l) para ver un informe continuo por segundo.

    vmstat 1
    
    • Para terminar, pulse Ctrl+C.
  3. Ejecute el comando vmstat 7 4 para ejecutar cuatro informes separados por siete segundos.

    vmstat 7 4
    

    La opción de recuento indica a vmstat el número de informes que se van a ejecutar (4) y la opción de retraso (7) es el intervalo de tiempo entre cada informe.

  4. Ejecute el comando vmstat -s para mostrar una tabla de varios contadores de eventos y estadísticas de memoria.

    vmstat -s
    
  5. Ejecute el comando vmstat -a para mostrar la memoria activa e inactiva.

    vmstat -a
    

    La opción -a muestra la cantidad de memoria active e inactiva (inact) en la sección memory de la salida.

  6. Ejecute el comando vmstat -f para mostrar el número de bifurcaciones desde el último inicio.

    vmstat -f
    
  7. Ejecute el comando vmstat -t para agregar un registro de hora a la salida.

    vmstat -t
    
  8. Ejecute el comando vmstat -d para mostrar las estadísticas de uso de disco en el sistema.

    vmstat -d
    
  9. Ejecute el comando vmstat -p sda1 para crear un informe en una partición de disco específica.

    vmstat -p sda1
    

    La salida muestra un resumen de la partición, incluido el número o lecturas y escrituras.

Exploración y uso de las opciones del comando mpstat

El comando mpstat se utiliza para recopilar y mostrar estadísticas de rendimiento para todas las CPU lógicas del sistema. Cuando una CPU está ocupada por un proceso, no está disponible para procesar otras solicitudes. Estos otros procesos deben esperar hasta que la CPU esté libre.

Vea el siguiente vídeo para obtener una visión general de mpstat.

  1. Ejecute el comando mpstat sin ninguna opción.

    mpstat
    

    La primera línea muestra la versión del núcleo de Linux, el nombre de host, la fecha actual, la arquitectura y el número de CPU del sistema.

    La primera columna de la siguiente línea proporciona un registro de hora, con las columnas restantes definidas de la siguiente manera:

    • CPU es el procesador designado por el número que comienza en 0 o la palabra clave all que indica que las estadísticas se calculan como medias entre todos los procesadores.

    • %user es el porcentaje de CPU utilizado al ejecutar aplicaciones en el nivel de usuario.

    • %nice es el porcentaje de CPU utilizado al ejecutarlo en el nivel de usuario con una buena prioridad.

    • %sys es el porcentaje de CPU utilizado durante la ejecución en el nivel del sistema (núcleo).

      El comando mpstat no incluye el tiempo dedicado al mantenimiento de interrupciones de hardware y software.

    • %iowait es el porcentaje de tiempo que las CPU estaban inactivas mientras el sistema tenía una solicitud de E/S de disco pendiente.

    • %irq es el porcentaje de tiempo que dedican las CPU al servicio de interrupciones de hardware.

    • %soft es el porcentaje de tiempo empleado por las CPU para reparar interrupciones de software.

    • %steal es el porcentaje de tiempo dedicado a la espera involuntaria de la CPU o las CPU virtuales mientras el hipervisor prestaba servicio a otro procesador virtual.

    • %guest es el porcentaje de tiempo empleado por las CPU para ejecutar un procesador virtual.

    • %gnice es el porcentaje de tiempo dedicado por las CPU para ejecutar un invitado con un precio.

    • %idle es el porcentaje de tiempo que la CPU estuvo inactiva (o las CPU estaban) y el sistema no tenía una solicitud de E/S de disco pendiente.

  2. Ejecute el comando mpstat 2 5 para ver la actividad de la CPU cada dos segundos para un total de cinco informes en todas las CPU.

    mpstat 2 5
    

    La salida imprime una línea de información un total de cinco veces, y también imprime un promedio.

  3. Ejecute el comando mpstat -P ALL para informar el uso de CPU en cada CPU.

    mpstat -P ALL
    

    Esta salida imprime una única línea de actividad para todas las CPU y para cada CPU. Nota: mpstat también imprime el uso medio de CPU para el período especificado.

  4. Ejecute el comando mpstat -P ALL 2 5 para ver la actividad de la CPU cada dos segundos en las CPU.

    mpstat -P ALL 2 5
    

    Esta salida imprime estadísticas de uso de CPU para cada CPU 5 veces a un intervalo de 2 segundos. Nota: que mpstat también imprime el uso medio de CPU para el período especificado.

  5. Ejecute el comando mpstat -A para imprimir el uso de la CPU e interrumpir las estadísticas en la misma salida de comando.

    mpstat -A
    

Explorar el comando top

El comando top proporciona una visión continua de la actividad del procesador en tiempo real. top muestra una lista de los procesos o tareas más intensivos de CPU del sistema y proporciona una interfaz interactiva limitada para manipular procesos.

Vea el siguiente vídeo para obtener una visión general de top.

  1. Ejecute el comando top sin ninguna opción para una vista puntual de la actividad de la CPU.

    top
    

    La salida se refresca cada tres segundos por defecto y se divide en dos secciones principales.

    La sección superior muestra información general, como las medias de carga durante los últimos 1, 5 y 15 minutos, el número de tareas en ejecución y en suspensión, y el uso general de CPU y memoria.

    • Utilice lo siguiente para activar o desactivar la salida que se muestra en la sección superior:

      • Introduzca la letra en minúscula l (No numérico 1) para alternar entre la media de carga y el tiempo de actividad de desactivación y activación.

      • Introduzca m para activar y desactivar la memoria y el uso de intercambio.

      • Introduzca t para activar y desactivar la memoria y el uso de intercambio.

    La sección inferior muestra una lista ordenada de procesos, normalmente por uso de CPU, junto con sus números de ID de proceso (PID) y el usuario propietario del proceso. Además, las salidas muestran el tiempo de ejecución y la memoria que utilizan los procesos.

    A continuación, se describen las columnas de la sección inferior:

    • PID es el ID de proceso único de la tarea.

    • USER es el nombre de usuario efectivo del propietario de la tarea.

    • PR es la prioridad real de la tarea.

    • NI es el valor agradable de la tarea en el espacio de usuario.

      Un valor negativo significa una prioridad más alta; y un valor positivo significa una prioridad más baja. El valor cero significa que la prioridad de una tarea no se aplica cuando se ejecuta.

    • VIRT es la cantidad total de memoria virtual que utiliza la tarea.

      Este valor incluye todo el código, los datos y las bibliotecas compartidas, además de las páginas que se han intercambiado.

    • RES es la memoria física no intercambiada o el tamaño residente que está utilizando una tarea.

    • SHR es la cantidad de memoria compartida que está utilizando la tarea.

      Esta memoria podría compartirse con otros procesos.

    • S es el estado de la tarea. Hay cinco estados:

      • D Sueño ininterrumpido

      • R en ejecución

      • S Dormir

      • T Rastreo o parado

      • Z Zombie

    • %CPU es el recurso compartido de la tarea del tiempo de CPU transcurrido o el uso de CPU desde la última actualización de pantalla, expresado como porcentaje del tiempo total de CPU.

    • %MEM es el recurso compartido utilizado actualmente de la tarea de memoria física o uso de memoria disponible.

    • TIME+ es el tiempo total de CPU que ha utilizado la tarea desde que se inició.

    • COMMAND es la línea de comandos o el nombre de programa utilizado para iniciar una tarea.

  2. Salga de top introduciendo Crtl+C.

Compare la salida del comando de vmstat, mpstat y top

Para esta práctica, ejecutará varias pruebas stress para emular distintas cargas en el sistema de prácticas y, a continuación, utilizará los comandos vmstat, mpstat y top para determinar lo que informan para los diferentes tipos de carga.

Aunque ejecute las pruebas como procesos en segundo plano, considere la posibilidad de abrir ventanas de terminal adicionales para sus comparaciones.

Cada ventana adicional necesita conectarse a la instancia de prácticas mediante ssh en oracle@<IP_ADDRESS_OF_COMPUTE_INSTANCE>. Donde <IP_ADDRESS_OF_COMPUTE_INSTANCE> es la dirección IP copiada de la consola de Oracle Cloud.

  1. Instale la herramienta stress.

    1. Utilice el comando dnf repolist para verificar el estado del repositorio ol8_developer_EPEL.

      dnf repolist ol8_developer_EPEL
      
      • Si el estado es enabled, continúe con la instalación de los paquetes de herramientas stress; de lo contrario, siga "activando" el repositorio.

      • Active el repositorio si el estado es disabled mediante el comando dnf conifg-manager.

        dnf config-manager --enable ol8_developer_EPEL
        
  2. Ejecute el comando dnf install para instalar los paquetes de herramientas stress.

    dnf install stress -y
    
  3. Ejecute el comando stress --dry-run para ver un ejemplo de la sintaxis del comando. Tómese un momento y revise las opciones del ejemplo, junto con las otras opciones de comandos que se muestran.

    stress --dry-run
    
  4. Ejecute los comandos vmstat 4 4 y mpstat 4 4 para ver una línea base de la actividad del sistema. Específicamente, observe los porcentajes de CPU asignados a los procesos de usuario y sistema (núcleo). Esta columna debe estar cerca de cero 0. Observe también la cantidad de memoria libre.

    vmstat 4 4
    mpstat 4 4
    
  5. Ejecute el comando stress --cpu para emular un programa enlazado a cálculo y ejecute el comando en segundo plano. Este comando genera ocho procesos enlazados a recursos informáticos.

    stress --cpu 8 &
    
    • Pulse return (Volver) para volver al indicador.

    • Ejecute el comando ps -ef para ver los procesos stress en ejecución. Pase la salida a grep stress.

      ps -ef | grep stress
      
  6. Ejecute el comando vmstat 4 10 y observe los valores informados en las columnas asociadas al uso de CPU.

    vmstat 4 10
    

    En unos instantes, debería ver que los porcentajes de la columna us reflejan la carga generada por stress.

  7. Ejecute el comando mpstat 4 10 para evaluar el uso de todas las CPU.

    mpstat 4 10
    
  8. Ejecute el comando mpstat -P ALL 4 10 para evaluar el uso de cada CPU.

    mpstat -P ALL 4 10
    
  9. Ejecute el comando top para examinar el uso de CPU por parte de los procesos stress.

    top
    

    Tras unos minutos, observe que los procesos stress se están ejecutando con la máxima prioridad. Salga de top introduciendo Ctrl+C.

  10. Ejecute el comando pkill para terminar los procesos stress.

    pkill stress
    
  11. Vuelva a ejecutar los comandos vmstat 4 4 y mpstat 4 4 para ver una línea base de la actividad del sistema.

  12. Ejecute un nuevo comando stress y agregue las opciones --vm y --vm-bytes para iniciar la actividad de memoria en el sistema.

    stress --cpu 8 --vm 8 --vm-bytes 512M &
    
  13. Ejecute vmstat 4 10, mpstat -P ALL 4 10 y top para evaluar la actividad de CPU y memoria.

    vmstat 4 10
    mpstat -P ALL 4 10
    top
    
    • Salga de top introduciendo Crtl+C.
  14. Utilice el comando pkill para terminar los procesos stress.

    pkill stress 
    
  15. Vuelva a ejecutar los comandos vmstat 4 4 y mpstat 4 4 para ver una línea base de la actividad del sistema.

  16. Ejecute un nuevo comando stress y agregue la opción --io para iniciar la actividad de entrada/salida en el sistema.

    stress --cpu 8 --vm 8 --vm-bytes 512M --io 8 &
    
  17. Ejecute vmstat 4 10, mpstat -P ALL 4 10 y top para evaluar la actividad de CPU, memoria, entrada/salida.

    vmstat 4 10
    mpstat -P ALL 4 10
    top
    
    • Salga de top introduciendo Crtl+C.

    • Utilice pkill para terminar stress.

Más recursos de aprendizaje

Explore otras prácticas en docs.oracle.com/learn o acceda a contenido de aprendizaje más gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de formación de Oracle.

Para obtener documentación sobre los productos, visite Oracle Help Center.