Comando top en Linux

Nilesh Katuwal 30 enero 2023
  1. Desglose del comando top en Linux
  2. Información sobre la CPU
  3. Uso del comando top en Linux
Comando top en Linux

El comando top en Linux está destinado a ayudar a los usuarios a determinar qué procesos están activos y qué aplicaciones consumen más memoria o potencia de procesamiento de la que deberían.

El comando tip es fácil de usar, pero debe conocer los detalles. El promedio de carga es una métrica problemática para evaluar el rendimiento de un servidor.

Desglose del comando top en Linux

Introduciendo top en la terminal:

$ top

Producción :

top - 00:04:54 up  3:30,  1 user,  load average: 1.84, 3.02, 2.50
Tasks: 233 total,   2 running, 231 sleeping,   0 stopped,   0 zombie
%Cpu(s): 38.5 us,  9.5 sy,  0.0 ni, 51.6 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   3840.9 total,    277.3 free,   2286.3 used,   1277.3 buff/cache
MiB Swap:   2048.0 total,   1447.0 free,    601.0 used.    777.7 avail Mem 
  • El top - 00:04:54 up 3:30, 1 user,: El comando muestra la hora actual del sistema, seguido del uptime, que en este caso es de 3 horas y 30 minutos, y por último, el número de usuarios conectados al sistema, que es 1 en este caso. A través de SSH, esto se puede hacer localmente en la caja, inactivo, en la pantalla, etc.
  • El load average: 1.84, 3.02, 2.50: esta sección muestra el promedio de carga, que puede ser un concepto desconcertante, especialmente cuando se trata de máquinas virtuales y la nube. El primer número es el promedio de carga actual, el segundo número es el promedio de cinco minutos y el tercer número es el promedio de carga de 15 minutos.
  • Las Tasks: 233 total, 2 running, 231 sleeping, 0 stopped, 0 zombie: el número de aplicaciones aparece cuando se escribe ps aux o una variación de su uso

El número de procesos en curso indica cuánto se está utilizando su CPU actualmente. Debido a que las aplicaciones sin subprocesos múltiples solo pueden usar una CPU a la vez, es común ver dos métodos que ocupan el 50 % de su CPU con un promedio de carga de 2 en un servidor de cuatro núcleos.

El número de procesos durmientes indica que están en funcionamiento pero que no se usan activamente; esto normalmente incluye muchos trabajos en segundo plano, software del sistema, controladores de impresora y otros elementos similares.

A menos que entregue un SIGSTOP o kill-STOP a un proceso para la resolución de problemas, el número de procesos detenidos debe ser 0. Un valor diferente de 0 puede causar preocupación en los sistemas de producción.

Los procesos que involucran zombis indican que una aplicación de subprocesos múltiples creó un proceso secundario que de repente se destruyó o finalizó, dejando un proceso zombi.

Si sucede algo terrible, lo más probable es que Apache responda con venganza. En la mayoría de los casos, también debería ser 0.

Información sobre la CPU

%Cpu(s): 38.5 us, 9.5 sy, 0.0 ni, 51.6 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st

  • El porcentaje de tiempo que utiliza cada procesador hasta el 100%. Como resultado, en un quad-core con un proceso que ocupa el 100 % de una CPU, esto indicará un uso del 25 %. En un sistema de 8 núcleos, el 12,5 por ciento significa que 1 núcleo está desconectado.
  • El término porcentaje de utilización de la CPU del sistema se refiere a la cantidad de CPU del sistema que se utiliza. Los números más altos aquí podrían sugerir un problema con las configuraciones del kernel, un problema con el controlador o cualquier otra razón.
  • El porcentaje ni denota el porcentaje de CPU utilizado por los procesos de userland que han sido influenciados por los comandos nice o renice, es decir, sus prioridades han sido modificadas de las predeterminadas por el programador a más altas o más bajas. Un número positivo indica una prioridad más baja, mientras que un número negativo indica una prioridad más alta. El valor predeterminado es 0, lo que sugiere que el planificador toma la decisión.
  • El resultado de restar las tres cifras anteriores de 100,0 por ciento es un porcentaje id, que mide el poder de procesamiento inactivo.
  • El wa es el % de I/O en espera por CPU. Cuando un proceso o programa necesita datos, primero verifica los cachés del procesador, luego la memoria y, finalmente, el disco. Por lo general, tiene que esperar a que el subproceso IO termine de leer la información en la RAM antes de volver a trabajar en ella cuando llegue al disco. Cuanto más lento sea el disco, mayor será el porcentaje de espera de E/S para cada proceso. Si el tiempo de espera es consistentemente más significativo que 100/(cantidad de CPU * cantidad de procesos), es posible que tengamos un problema de almacenamiento que debe monitorearse. Verifique este número primero si detecta un promedio de carga alto. Si este valor es alto, los procesos en su disco tienen un cuello de botella.
  • El si es el tiempo dedicado a atender las interrupciones del software. En lugar de una pieza de hardware o un dispositivo (controlador) que solicita una interrupción en la línea de interrupción de la placa base, el kernel de Linux incluye una capacidad en la versión 2.4 que permite que el software solicite una interrupción y que el kernel la maneje a través de su controlador de interrupciones. Significa que una aplicación puede solicitar el estado de prioridad, el kernel puede acusar recibo de la solicitud y el software esperará pacientemente a que se solucione la interrupción.
  • La st hace referencia al tiempo robado por las máquinas virtuales. No usamos máquinas virtuales para limitar la CPU, por lo que dejar que una o dos máquinas virtuales usen 8 CPU en ocasiones no dañará el grupo en su conjunto. Si la cantidad de CPU físicas (o CPU lógicas en el caso de xeons con hiperprocesamiento) utilizadas por las CPU virtuales de las VM es mayor que la cantidad de físicas, el tiempo de robo aumentará.

Uso del comando top en Linux

Para mostrar la sintaxis del comando top:

$ top -h

Producción :

procps-ng 3.3.16
Usage:
  top -hv | -bcEHiOSs1 -d secs -n max -u|U user -p pid(s) -o field -w [cols]

Puede utilizar el comando top en un modo seguro.

$ top -s

Artículo relacionado - Linux Command