top (tabla de procesos) es un administrador de tareas o programa de monitorización del sistema , que se encuentra en muchos sistemas operativos tipo Unix , que muestra información sobre la utilización de la CPU y la memoria.
El programa genera una lista ordenada de procesos en ejecución seleccionados según criterios especificados por el usuario y la actualiza periódicamente. El orden predeterminado es por uso de CPU y solo se muestran los principales consumidores de CPU. top muestra cuánta potencia de procesamiento y memoria se están utilizando, así como otra información sobre los procesos en ejecución. Algunas versiones de top permiten una amplia personalización de la visualización, como la elección de columnas o el método de ordenación. top es útil para los administradores de sistemas , ya que muestra qué usuarios y procesos consumen la mayor cantidad de recursos del sistema en un momento dado.
Existen varias versiones diferentes de top. La versión tradicional de Unix fue escrita por William LeFebvre y originalmente registrada en 1984. [1] Está alojada en SourceForge , [2] y la versión 3.7 se anunció en 2008. [3]
La versión Linux de top es parte del grupo de herramientas procps-ng. Fue escrita originalmente por Roger Binns [4] y lanzada a principios de 1992, pero poco después fue adoptada por otros. [5]
En Solaris , el programa más o menos equivalente es prstat. Microsoft Windows tiene el comando tasklist y la utilidad gráfica Administrador de tareas . IBM AIX tiene una lista de procesos en ejecución que se actualiza como parte de los comandos topas y topas_nmon .
En Linux, los números promedio de carga se refieren a la suma del número de procesos que esperan en la cola de ejecución más el número de procesos que se están ejecutando actualmente. El número es absoluto, no relativo, y por lo tanto puede ser ilimitado , a diferencia de la utilización. Las variaciones instantáneas del número de procesos se amortiguan con una fórmula de decaimiento exponencial que se calcula utilizando matemáticas de punto fijo . [6]
El programa ps es similar a top, pero en su lugar produce una instantánea de los procesos tomados en el momento de la invocación. La opción n (número de iteraciones) de top puede producir un resultado similar, haciendo que el programa ejecute la cantidad especificada de iteraciones y luego salga después de imprimir su salida.
Las primeras 5 filas ofrecen una descripción general de todo el sistema.
arriba - 14:21:23 activo 2 días, 21:40, 44 usuarios, carga promedio: 14.44, 14.13, 14.64 | | | | <tiempo> <tiempo de actividad del sistema> <número de usuarios> <promedio de carga de los últimos 1, 5, 15 minutos>Tareas: 1552 en total, 8 en ejecución, 1544 durmiendo, 0 detenidas, 0 zombies%Cpu(s): 9,6 us, 0,7 sy, 0,0 ni, 89,5 id, 0,0 wa, 0,0 hi, 0,2 si, 0,0 st | | | | | | | '------. <usuario> <sistema> <buen> <inactivo> <IOWait> <interrupción de hardware/software> <tiempo de robo>MiB Mem: 1031911.+total, 368915.2 libres, 172285.0 usados, 490711.5 mejoras/cachéIntercambio de MiB: 2048,0 en total, 2048,0 libres, 0,0 usados. 807110,1 memorias disponibles
load average
es el promedio móvil exponencial de la longitud de la cola de ejecución durante los últimos 1/5/15 minutos. La cola de ejecución incluye tanto los procesos que se están ejecutando como los que esperan ser ejecutados. Con una utilización completa sin cambio de tareas, el promedio de carga es igual a la cantidad de CPU. [7]
Tasks
cuenta los procesos y sus estados.
%Cpu(s)
cuenta el porcentaje de uso de la CPU, desglosado en categorías.
MiB Mem
: Uso de memoria en unidades de mebibyte . buff/cache
Se refiere a la memoria utilizada por los buffers y la caché .
MiB Swap
: Uso del espacio de intercambio en unidades de mebibyte . Si el sistema necesita más recursos de memoria y la RAM está llena, las páginas inactivas en la memoria se mueven al espacio de intercambio. En esta instantánea, hay un total de 2048 MiB de intercambio, todos libres, lo que indica que no se está produciendo intercambio, lo que es bueno para el rendimiento.
avail Mem
:La cantidad de memoria disponible para nuevas aplicaciones, sin intercambio. Esto considera no solo la RAM no utilizada, sino también la memoria que se puede recuperar de los cachés de RAM.
El resto del texto proporciona una tabla en la que cada fila es un proceso , y a menudo se utilizan las siguientes columnas entre muchas columnas posibles (la elección y el orden de las columnas son configurables): [8]
PID USUARIO PR NI VIRT RES SHR S %CPU %MEM TIEMPO+ COMANDO 1 raíz 20 0 2456 1612 1500 S 0.0 0.0 0:00.07 init(Ubuntu) 4 raíz 20 0 2456 4 0 S 0.0 0.0 0:00.00 init 656403 usuario2 20 0 80,0 g 3,6 g 370000 S 100,0 0,4 1594:38 python32024198 longnam+ 20 0 50,5 g 4,7 g 609200 S 1,6 0,5 204:46,85 procedimiento de nombre largo2056804 nombre largo+ 20 0 237,1 g 31,1 g 23,1 g S 136,8 3,1 69:54,11 python3
PID
: ID de proceso , un número único que identifica cada proceso en ejecución.USER
: El usuario que inició el proceso. Si el nombre de usuario es demasiado largo, se corta con un +
al final.PR
: Prioridad en tiempo real de la tarea, calculada por el programador del sistema. El programador considera que los números de PR más bajos son más importantes y es más probable que se programen, lo que significa que tienden a tener más tiempo de CPU por tiempo real.NI
: La bondad de la tarea, establecida manualmente por los usuarios y administradores para influir en la prioridad en tiempo real. Un valor de bondad más bajo tiende a favorecer al proceso, y un valor de bondad más alto tiende a desfavorecerlo. Varía de -20 (más favorecido) a 19 (menos favorecido).VIRT
: Tamaño de la memoria virtual del proceso. Esto incluye toda la memoria a la que puede acceder el proceso, incluida la memoria que se intercambia, la memoria que se asigna pero no se utiliza y la memoria compartida.RES
: Tamaño del conjunto residente , la parte de la memoria de un proceso que se almacena en la RAM. En comparación con VIRT
, esto excluye la memoria que se intercambia, que aún no se utiliza o que se comparte.SHR
: Tamaño de memoria compartida : cuánta RAM reclama el proceso y que se puede compartir con otros procesos.S
: Estado del proceso. El estado puede ser:R
Para correrS
Para dormirI
para inactivoD
para suspensión del disco (ininterrumpible)Z
para zombie (terminado pero no cosechado por su padre)T
para ser detenido por una señal de control de trabajo o t
para ser detenido por el depurador durante el seguimiento .%CPU
:El porcentaje del tiempo de CPU que el proceso está utilizando actualmente.%MEM
:El porcentaje de RAM física utilizado por el proceso.TIME+
: El tiempo total de CPU que la tarea ha utilizado desde que comenzó. Esto se muestra en minutes:seconds
. El signo más en TIME+
significa que tiene una precisión de 0,01 segundos. Si se muestra TIME
, tiene una precisión de 1 segundo.COMMAND
: El argumento de la línea de comandos que inició el proceso. A diferencia de USER
, si el comando es demasiado largo, se corta sin un +
al final.top
.