¿Qué es el comando «top»?
El comando top es una herramienta de línea de comandos que ofrece una vista dinámica de los procesos en ejecución en un sistema Linux. Con este comando podemos ver información del sistema en tiempo real es por ello un comando muy utilizado por los administradores de sistemas ya que ayuda a diagnosticar y supervisar el rendimiento de los equipos y servidores basados en Linux.
Los principales usos del comando «top»
- Monitorización del rendimiento del sistema: podemos obtener una visión detallada del rendimiento del sistema lo cual nos permite identificar como se están utilizando los recursos del equipo.
- Identificar procesos problemáticos o de rendimiento: podemos identificar si existen procesos que pueden estar consumiendo una cantidad desproporcionada de recursos del sistema ayudándonos a identificar problemas de rendimiento o incluso malware.
- Optimizar recursos: podemos ajustar la prioridad de los procesos, detener procesos o realizar otras acciones para optimizar el uso de recursos y mejorar el rendimiento del sistema.
¿Que información nos muestra el comando «top»?
Cuando ejecutamos el comando top, obtenemos una lista de procesos activos junto con la información relevante del el uso de la CPU, el uso de la memoria, la cantidad de tiempo de CPU utilizado por cada proceso, etc. Esta información se está actualizando continuamente por lo que nos resulta muy útil para monitorizar el rendimiento del sistema y observar si hay procesos problemáticos que están consumiendo demasiados recursos ayudándonos por tanto a diagnosticar problemas de rendimiento y controlar todos los procesos que se encuentran en ejecución.
Tras ejecutar el comando top obtendremos una salida parecida a esta

En la primera línea observamos la hora actual, el tiempo que lleva el equipo encendido, el número de usuarios que están conectados y la carga del equipo durante el último minuto, los últimos cinco minutos y los quince últimos minutos.
En la segunda línea podemos revisar la información referente a los procesos, se detalla el número de procesos totales, los procesos que hay en ejecución, en reposo, parados y en estado zombie
En la tercera línea obtenemos información referente a la carga de la CPU. En primer valor se refiere al porcentaje de procesos de los usuarios (%us), a continuación tenemos el porcentaje de procesos del sistema (%sy), el porcentaje de CPU consumida por procesos de baja prioridad(%ni), el porcentaje que no se está utilizando (%id), el porcentaje esperando para operaciones de entrada y salida (%wa), el porcentaje del tiempo de la CPU que no se está procesando debido a interrupciones de hardware(%hi), el porcentaje referente a interrupciones de software(%si) y el porcentaje utilizado por el hipervisor (%st)
La cuarta línea obtenemos información referente al uso de memoria. Nos indica la memoria total, la libre, la usada y la la cantidad de memoria utilizada para almacenar datos en caché y de buffer.
En la quinta línea, en este caso la información es referente a la memoria swap, indicando el total , la libre,usada y la disponible
A continuación se muestra una tabla de los procesos en funcionamiento.
Que podemos hacer con el comando «top»
A través del comando top podemos obtener salidas más específicas según lo que deseemos controlar, podemos matar procesos, cambiarles la prioridad, etc
- Podemos ordenar la salida por una métrica específica: Cuando iniciamos
top, por defecto se ordena por uso de CPU, esto lo podemos cambiar de forma interactiva.- Si deseamos ordenar por uso de la CPU debemos debemos presionar
Shift +p - Para hacerlo por el uso de memoria :
Shift +m - Para ordenar por tiempo de ejecución del proceso:
Shift +t - Ordenar por PID del proceso desde el número más alto
Shift +n
- Si deseamos ordenar por uso de la CPU debemos debemos presionar
- Podemos cambiar el tiempo en el que se actualiza la pantalla:Por defecto,
topactualiza la pantalla cada tres segundos, podemos modificar la frecuencia de actualización presionandosy luego indicando el número de segundos que aplique. Esto también se puede realizar al ejecutar el comando con top -d tiempoRetraso - Mostrar procesos de un usuario específico:Si deseas ver solo los procesos de un usuario específico, solo será necesario presionar
uy a continuación indicar el nombre del usuario, también lo podemos realizar al iniciar el comando con top -u nombreUsuario - Si queremos resaltar la columna que tenemos ordenada presionamos x y a continuación b

- Matar un proceso, presionamos la tecla k mientras ese está ejecutando el comando top y a continuación el PID del proceso a eliminar, a continuación si lo queremos eliminar sin forzar presionamos enter, en caso contrario indicamos 9 o también podemos hacerlo con SIGKILL
- Cambiar la prioridad de un proceso presionando la tecla r y a continuación indicamos el PID del proceso pulsamos Enter e indicamos el valor de la nueva prioridad que le queremos asignar
- Obtener los procesos según filtro que le indiquemos de forma interactiva al comando top. para ello presionamos la tecla o y a continuación el filtro que es el nombre del campo , la comprobación (>, < , =) y el valor numérico,ejemplo %CPU>0.2, %MEM<1 ,PR=20. Tras aplicar un filtro podemos añadir otro filtro, podemos ver el resumen de los comando aplicados con CTRL + o

- Si queremos abrir el comando top con sólo lectura para evitar el realizar modificaciones de forma accidental , podemos hacerlo mediante top -s
