El comando top de Linux es una utilidad interactiva del CLI, que muestra en una pantalla basada en caracteres todos los procesos actuales que se están ejecutando en el sistema. La salida se actualiza cada pocos segundos, de esta forma el comando ayuda a conocer los procesos de ejecución del sistema (y más cosas) en tiempo real y es, al igual que tantos otros comandos como vmstat , una de las herramientas más importantes para un administrador. El programa top permite también enviar algunas señales a un proceso en concreto.
Para este documento he usado una distribución basada en Ubuntu 18.04, pero de forma igual (o con ajustes mínimos) debería de funcionar en cualquier otra.
Ejecución de top
En su forma mas básica el comando se ejecuta ingresando su nombre, esto es:
top
La figura siguiente es la salida del comando.
Según la configuración y versión del comando, la salida sera actualizada automáticamente cada unos pocos segundos (En mi versión y por defecto es cada 3).
Interpretando la pantalla
Para la interpretación de la pantalla del comando, comenzando desde la parte superior, identifico sobre el lado derecho las líneas, o zonas, por numeración
[1] – estadísticas
En [1] el comando muestra estadísticas que tienen que ver con el tiempo de actividad y carga media del sistema, estas son:
- Cuanto tiempo hace que esta encendido (up) el equipo
- Número de usuarios
- Promedio de carga
- El promedio de carga muestra el tiempo de carga del sistema durante los últimos 1, 5 y 15 minutos (mas Ref
aquí)
- El promedio de carga muestra el tiempo de carga del sistema durante los últimos 1, 5 y 15 minutos (mas Ref
[2] – estados de procesos/tareas
La línea [2] muestra estadísticas que tienen que ver con los procesos en general, estos son:
- Número de tareas…
-
- totales
- en ejecución: procesos ejecutándose actualmente o preparados para ejecutarse
- para dormir: procesos dormidos y esperando que ocurra algo (depende del proceso) para ejecutarse (Ref: sleep
- detenidas: ejecución de proceso detenido
- zombie: el proceso no está siendo ejecutado, y estos se quedan en este estado cuando el que los ha iniciado muere (padre) (Ref: aquí.)
[3] – estados de la CPU
La línea 3 muestra datos que se corresponden con estadísticas de la/s CPU/s del sistema, los mismos son:
- Uso de CPU como porcentaje por ..
-
- usuario. us (usuario)
- sistema.
sy
(sistema) - procesos de baja prioridad.
- procesos inactivos.
id
(inactivos) - espera de io. wa (en espera)
- interrupciones de hardware.
hi
- interrupciones de software.
si
- porcentaje por tiempo
NOTA: uso de CPU. Esta guía da una explicación de lo que significa el uso de CPU.
[4] – memoria física
Aquí se muestra estadísticas que se refieren al estado de la memoria RAM, y en particular son:
- Memoria..
-
- total del sistema
- libre.
- usada.
- en cache de buffer (Ref. aquí.)
[5] – memoria virtual
Muestra valores respecto a la memoria virtual (swap o área de intercambio), estas son:
- Memoria virtual (swap) espacio ..
-
- total
- libre
- usado
- espacio disponible
[6] – consola cli
El comando top permite enviar algunas señales a los procesos, y en concreto posibilita:
- Matar un proceso en particular: tecla
k
+ <PID> - Modificar el valor de nice de un proceso y su posterior reinicio: tecla
r
+ <PID>
En la zona de línea identificada como [6] es donde se ubica el cursor para el ingreso del PID de proceso al cual enviar la señal.
[7] – Zona de procesos
En la zona identificada como [7] se muestra los procesos (tareas) ordenados por columnas.
Estas columnas pueden ser modificadas, por defecto en mi sistema, en esta zona y por columna se muestra:
- PID: es el identificador de proceso, y cada uno tiene un identificador único.
- USUARIO: usuario propietario del proceso.
- PR: prioridad del proceso y si pone RT significa es que se está ejecutando en tiempo real.
- NI: asigna la prioridad. Uno con valor bajo (hasta -20), quiere decir que tiene más prioridad que otro con valor mas alto (hasta 19).
- VIRT: cantidad de memoria virtual utilizada por el proceso.
- RES: cantidad de memoria RAM física que utiliza el proceso.
- SHR: memoria compartida.
- S (STATE): estado del proceso.
- %CPU: porcentaje de CPU utilizado desde la última actualización.
- %MEM: porcentaje de memoria física utilizada por el proceso desde la última actualización.
- HORA: tiempo total de CPU que ha usado el proceso desde su inicio.
- ORDEN: comando utilizado para iniciar el proceso.
Ayuda comando top
Para ingresar a la ayuda del comando, y si las paginas man se encuentran disponible en nuestro sistema, las mismas pueden ser consultadas ingresando en consola la orden:
man top