- Dave McKay
@TheGurkha
- 12 de mayo de 2020, 8:00am EDT
El comando Linux top
es uno de los incondicionales de los sistemas operativos tipo Unix. Su pantalla utilitaria está repleta de información útil sobre los procesos que se ejecutan en el sistema y el uso de recursos. Pero, ¿sabías que también admite colores, resaltados e incluso gráficos elementales?
Un panel de control repleto de información
El comando top
existe desde 1984, y hay muchas variantes del mismo. Para este artículo, estamos ejecutando Ubuntu 18.04 con todos los parches aplicados, y la versión 3.3.12 de top
. También hemos cruzado todo en otros dos ordenadores de prueba, uno corriendo Fedora y el otro Manjaro.
La pantalla por defecto top
atiborra toda la información posible en la ventana de la terminal. La información es un requisito previo para la administración, así que esto es algo bueno. Uno de los rasgos de un buen administrador de sistemas es la capacidad de identificar los problemas emergentes y tratarlos antes de que afecten al servicio. top
le ofrece un panel de control de muchas métricas diferentes del sistema que le ayudan a hacer precisamente eso.
La pantalla se describe mejor como funcional, más que intuitiva, y abundan las abreviaturas. Cuando se encuentra por primera vez top
, se siente estrecho, críptico, y fuera de lugar. Sin embargo, con unas pocas pulsaciones, puedes ajustar el contenido y el formato de la pantalla según lo que sea importante para ti.
Comprueba tu versión de top
Para comprobar qué versión de top tienes, escribe lo siguiente en una ventana de terminal:
top -v
Si tu versión es muy anterior a la 3.3.12, puede que no soporte todas las características que vamos a cubrir.
La pantalla por defecto
Puedes empezar top
escribiendo lo siguiente y pulsando «Enter»:
top
La pantalla por defecto contiene dos áreas de información: el área de resumen (o dashboard), y el área de tareas (o lista de procesos). Por defecto, top
actualiza su pantalla cada tres segundos-notarás un ligero parpadeo cuando lo haga.
La primera línea de números en el tablero incluye la hora, cuánto tiempo ha estado funcionando el equipo, el número de personas conectadas y cuál ha sido el promedio de carga en los últimos uno, cinco y 15 minutos. La segunda línea muestra el número de tareas y sus estados: en ejecución, detenidas, en reposo o zombis.
La tercera línea muestra los siguientes valores de la unidad central de procesamiento (CPU):
- us: Cantidad de tiempo que la CPU pasa ejecutando procesos para personas en el «espacio de usuario».
- sy: Cantidad de tiempo que pasa ejecutando procesos del sistema «espacio del kernel».
- Ni: Cantidad de tiempo dedicado a la ejecución de procesos con un valor agradable establecido manualmente.
- id: Cantidad de tiempo de inactividad de la CPU.
- Wa: Cantidad de tiempo que la CPU pasa esperando a que se complete la E/S.
- Hi: Cantidad de tiempo dedicado a atender las interrupciones de hardware.
- si: Cantidad de tiempo dedicado a atender las interrupciones de software.
- st: Cantidad de tiempo perdido debido a la ejecución de máquinas virtuales («tiempo de robo»).
- PID: ID del proceso.
- USUARIO: El propietario del proceso.
- PR: La prioridad del proceso.
- NI: El valor agradable del proceso.
- VIRT: Cantidad de memoria virtual utilizada por el proceso.
- RES: Cantidad de memoria residente utilizada por el proceso.
- SHR: Cantidad de memoria compartida utilizada por el proceso.
- S: Estado del proceso. (Consulte la lista siguiente para conocer los valores que puede tomar este campo).
- %CPU: La cuota de tiempo de CPU utilizada por el proceso desde la última actualización.
- %MEM: La cuota de memoria física utilizada.
- TIEMPO+: El tiempo total de CPU utilizado por la tarea en centésimas de segundo.
- COMANDO: El nombre del comando o la línea de comando (nombre + opciones).
- D: Sueño ininterrumpido
- R: En ejecución
- S: Durmiendo
- T: Rastreado (detenido)
- Z: Zombie
- El porcentaje combinado de
us
yni
(espacio de usuario+tareas con configuraciones agradables no estándar). - El
sy
porcentaje (espacio del núcleo). - El total (redondeado a un valor entero).
- P: La columna
%CPU
. - M: La columna
%MEM
. - N: La columna
PID
. - T: La columna
TIME+
. - S: Área de datos resumidos.
- M: Mensajes y avisos.
- H: Encabezados de columna.
- T: Información de la tarea en la lista de procesos.
- 0: Negro.
- 1: Rojo.
- 2: Verde.
- 3: Amarillo.
- 4: Azul.
- 5: Magenta.
- 6: Cian.
- 7: Blanco.
- W: Guarda sus ajustes y personalizaciones para que sigan vigentes la próxima vez que inicie
top
. - d: Establecer una nueva frecuencia de actualización de la pantalla.
- Espacio: Forzar a
top
a refrescar su pantalla ahora mismo.
La cuarta línea muestra la cantidad total (en kibibytes) de memoria física, y cuánta está libre, usada y almacenada en buffer o en caché.
La quinta línea muestra la cantidad total (también en kibibytes) de memoria de intercambio, y cuánta está libre, usada y disponible. Esta última incluye la memoria que se espera recuperar de las cachés.
Los encabezados de las columnas de la lista de procesos son los siguientes:
Los valores de memoria se muestran en kibibytes. La columna COMMAND
está fuera de la pantalla, a la derecha-no cabía en la imagen anterior, pero la veremos en breve.
El estado del proceso puede ser uno de los siguientes:
Pulsa Q para salir top
.
Desplazamiento de la pantalla
Puede pulsar las flechas arriba o abajo, Inicio, Fin, y las teclas de subir o bajar página para desplazarse hacia arriba y abajo y acceder a todos los procesos.
Pulse la flecha izquierda o derecha para desplazar la lista de procesos hacia los lados. Esto es útil para ver cualquier columna que no quepa dentro de los límites de la ventana de la terminal.
En la imagen de abajo, hemos pulsado la Flecha Derecha unas cuantas veces para ver la columna COMMAND
.
Cambiando las unidades numéricas
Cambiemos las unidades de visualización a valores sensibles. Presione E mayúscula para recorrer las unidades utilizadas para mostrar los valores de memoria en estas opciones: kibibytes, mebibytes, gibibytes, tebibytes, pebibytes y exbibytes. La unidad en uso es el primer elemento de las líneas cuatro y cinco.
Pulsamos «e» en minúsculas para hacer lo mismo con los valores de la lista de procesos: kibibytes, mebibytes, gibibytes, tebibytes y pebibytes.
Pulsamos E para establecer las unidades de memoria del tablero en gibibytes y «e» para establecer las unidades de memoria de la lista de procesos en mebibytes.
Cambiar el contenido del resumen
Puede cambiar la configuración de visualización de las líneas del tablero o eliminarlas por completo.
Pulse l para activar o desactivar la línea de resumen de carga (la primera línea). Hemos eliminado la línea de resumen de carga en la siguiente imagen.
Si tienes una CPU multinúcleo, pulsa 1 para cambiar la visualización y ver las estadísticas individuales de cada CPU. En nuestro ordenador hay cuatro CPUs. Pulsamos 1 para ver la intensidad de trabajo de cada una de ellas.
Publicidad
Por supuesto, esto ocupa más espacio en la pantalla dentro de la ventana de terminal.
Puedes pulsar «t» para cambiar las pantallas de la CPU a simples gráficos ASCII que muestran el porcentaje de uso de cada CPU.
Para cada CPU, top
muestra tres números y el gráfico. De izquierda a derecha, los números son los siguientes:
Pulse «t» de nuevo para cambiar la visualización del gráfico a caracteres de bloque sólidos.
Pulse «t» una vez más para eliminar la visualización de la CPU y la línea de resumen de tareas por completo.
Pulsa «m» para recorrer las líneas de memoria y de memoria de intercambio a través de diferentes opciones de visualización. La primera pulsación sustituye las estadísticas por un gráfico ASCII.
Otra pulsación cambia el gráfico a caracteres de bloque.
Pulsa «m» una vez más para eliminar las líneas de la CPU por completo.
Si quieres, puedes ver los gráficos de la CPU y la memoria al mismo tiempo. Sólo tienes que pulsar «t» y «m» hasta que obtengas la combinación que desees.
Color y resaltado
Puedes pulsar «z» para añadir color a la pantalla.
Cuando piensas en top
, probablemente no pienses en pantallas de colores y gráficos ASCII, pero están incorporados.
Pulsar «y» para resaltar las tareas en ejecución en la lista de procesos. Al pulsar «x» se resalta la columna utilizada para ordenar la lista de procesos. Puede alternar entre resaltar el texto en negrita o invertido pulsando «b.»
Ordenación por columnas
Por defecto, la lista de procesos se ordena por la columna %CPU
. Puede cambiar la columna de ordenación pulsando lo siguiente:
En la imagen inferior, la lista de procesos está ordenada por la columna PID
.
Ver la línea de comandos completa
Pulsando «c» se alterna la columna COMANDO entre mostrar el nombre del proceso y la línea de comandos completa.
Para ver un «árbol» de procesos que fueron lanzados o engendrados por otros procesos, presione V.
Ver procesos para un solo usuario
Pulse «u» para ver los procesos de un solo usuario. Se le pedirá el nombre o UID.
Escribe el nombre del UID de la persona que quieres monitorizar. Escribiremos «dave» y pulsaremos «Enter». Ahora, los únicos procesos que aparecen en el área de tareas pertenecen al usuario dave
.
Sólo ver las tareas activas
Pulsa I para ver sólo las tareas activas.
Las tareas que no han consumido CPU desde la última actualización no se mostrarán.
Configurar cuántos procesos mostrar
Pulsa «n» para limitar la visualización a un número determinado de líneas, independientemente de que las tareas estén activas. Se le pedirá el número de procesos a mostrar.
Escribimos 10 y pulsamos Enter, por lo que aparecen 10 procesos en el área de tareas.
Recalificar un proceso
Puede pulsar «r» para cambiar el valor agradable (prioridad) de un proceso. Se le pedirá el ID del proceso. Simplemente presione Enter para usar el ID de proceso de la tarea en la parte superior de la ventana de procesos. Escribimos 7800, que resulta ser el ID de proceso de una instancia de Firefox.
Después de pulsar Enter, se le pedirá el nuevo valor agradable para aplicar al proceso. Escribimos 15, y luego presionamos Enter.
El nuevo valor nice se aplica al proceso inmediatamente.
RELATIVO: Cómo establecer las prioridades de los procesos con nice y renice en Linux
Matar un proceso
Pulsa «k» para matar un proceso. A continuación, se le pedirá el ID del proceso que desea matar. De hecho, puedes enviar cualquier señal al proceso. Vamos a matar el proceso 7879, que ha dejado de responder.
Se te ofrecerá la posibilidad de escribir la señal que quieres enviar. Puedes especificarla por nombre o por número. Si simplemente pulsas Enter, top
envía la señal SIGTERM
(kill).
En cuanto se pulsa Enter, la señal se envía al proceso.
RELACIÓN: Cómo matar procesos desde la terminal de Linux
Personalizar la pantalla
También puedes personalizar los colores y las columnas que se muestran. Vamos a cambiar el color que se utiliza para los prompt, cuyo valor por defecto es el rojo.
Pulsa Z mayúscula para ir a la página de configuración de colores. La parte superior de la pantalla muestra los colores en uso por los diferentes elementos de visualización. Para indicar qué elemento de visualización desea cambiar, pulse uno de los siguientes, que distinguen entre mayúsculas y minúsculas:
Pulsamos M para cambiar los avisos.
Para elegir un color, pulse uno de los siguientes números:
Pulsamos 6 para usar el cian.
Pulsa Enter para guardar tu configuración. Los avisos de entrada estarán ahora en el color seleccionado.
También podemos cambiar las columnas que se muestran en la pantalla de Gestión de Campos. Pulse F para entrar en la pantalla de gestión de campos.
Los campos que se muestran tienen un asterisco (*
) al lado y están resaltados en negrita. Pulse las flechas Arriba y Abajo para mover el resaltado por la lista de campos.
Si mueve el resaltado fuera de la parte inferior de una columna, aparecerá en la parte superior de la siguiente (a menos que esté en la parte inferior de la última columna). Si lo mueves de la parte superior de una columna, aparecerá en la parte inferior de la anterior (a menos que estés en la parte superior de la primera columna).
Movimos el resaltado a la entrada COMMAND
, y luego pulsamos «d» para eliminar el asterisco (*
). A continuación, nos desplazamos a la entrada UID
y pulsamos «d» para colocar un asterisco junto a esa entrada. Esto significa que la columna COMMAND
no se mostrará, pero sí lo hará la columna UID
.
Mientras el resalte está en la columna UID
, pulsamos «s» para ordenar la lista de procesos en la columna UID
.
Pulsa Enter para guardar la configuración y luego pulsa «q» para salir de la pantalla de gestión de campos.
La columna UID
ha sustituido a la columna COMMAND
, y la lista de procesos está ordenada por ella.
Modo de visualización alternativo
Esto funciona mejor en modo de pantalla completa. Presione A para mostrar cuatro áreas en la lista de procesos, y luego presione «a» para pasar de un área a otra.
Cada área tiene una colección diferente de columnas, pero cada una es también personalizable a través de la pantalla de Gestión de Campos. Esto le da margen para tener una visualización personalizada a pantalla completa mostrando información diferente en cada área, y la posibilidad de ordenar cada área por una columna diferente.
Otras teclas
Las siguientes son algunas otras teclas que pueden resultarle útiles en top
:
Top Banana
Como hemos visto, top
tiene todo un repertorio. Otros programas, como htop
, se han inspirado en él, pero cada uno tiene su propia visión de las cosas.
Sin embargo, top
está instalado en todas partes. Cuando vas a las empresas a mirar redes o servidores, a menudo te dirán que no se puede cambiar absolutamente nada en los servidores vivos. El cliente pone las reglas, así que tienes que usar lo que ya está instalado.
Aunque prefieras una herramienta de monitorización diferente, deberías conocer top
. Tarde o temprano, es probable que se encuentre en una situación en la que es todo lo que tendrá acceso.
Dave McKay utilizó por primera vez los ordenadores cuando la cinta de papel perforada estaba de moda, y ha estado programando desde entonces. Tras más de 30 años en el sector de la informática, ahora es un periodista tecnológico a tiempo completo. A lo largo de su carrera, ha trabajado como programador independiente, director de un equipo internacional de desarrollo de software, gestor de proyectos de servicios informáticos y, más recientemente, como responsable de protección de datos. Dave es un evangelista de Linux y defensor del código abierto.Read Full Bio »