Mientras trabaja en la línea de comando de Linux, puede haber momentos en los que desee verificar los detalles relacionados con el proceso, como qué proceso consume más CPU o memoria. Bueno, existe un comando, llamado top, que te permite hacer esto fácilmente. En este tutorial, discutiremos esta herramienta usando algunos ejemplos fáciles de entender.
Pero antes de hacerlo, vale la pena mencionar que todos los ejemplos mencionados en este artículo se probaron en una máquina con Ubuntu 16.04 LTS.
Comando superior de Linux
El comando superior muestra una lista de procesos o subprocesos que actualmente administra el kernel de Linux, junto con información útil relacionada con ellos. La siguiente es la sintaxis de la herramienta:
top [options]
Y esto es lo que dice la página de manual de la herramienta al respecto:
The top program provides a dynamic real-time view of a running
system. It can display system summary information as well as a
list of processes or threads currently being managed by the Linux
kernel. The types of system summary information shown and the
types, order and size of information displayed for processes are
all user configurable and that configuration can be made persis?
tent across restarts.
The program provides a limited interactive interface for process
manipulation as well as a much more extensive interface for per?
sonal configuration -- encompassing every aspect of its opera?
tion.
Los siguientes son algunos ejemplos de preguntas y respuestas que le darán una buena idea de cómo funciona el comando superior.
P1. ¿Cómo usar la parte superior?
Simple, simplemente ejecute el comando 'superior' sin ninguna opción:
top
Aquí está la salida que produjo en mi sistema:
Tenga en cuenta que lo que ve en la captura de pantalla es solo una instantánea de la salida en tiempo real (que cambia después de un intervalo fijo) que se produjo.
P2. ¿Cómo entender la salida del comando superior?
Comencemos con la primera línea. Contiene entradas para (en ese orden), la hora actual, la duración desde que el sistema está en funcionamiento, las sesiones de usuario activas y la carga promedio en el sistema (para el último minuto, cinco minutos y quince minutos, respectivamente).
La segunda línea contiene información (en ese orden) sobre el número total de procesos, el número de procesos en ejecución, el número de procesos inactivos, el número de procesos que se detuvieron y el número de procesos en estado zombi.
La tercera línea contiene información sobre el uso de la CPU. Los siguientes son los detalles:
us, user : time running un-niced user processes
sy, system : time running kernel processes
ni, nice : time running niced user processes
id, idle : time spent in the kernel idle handler
wa, IO-wait : time waiting for I/O completion
hi : time spent servicing hardware interrupts
si : time spent servicing software interrupts
st : time stolen from this vm by the hypervisor
Las dos líneas siguientes muestran información relacionada con la RAM y el uso de la memoria de intercambio. Y finalmente, viene la información relacionada con los procesos, que consiste en (en ese orden) ID del proceso, usuario propietario del proceso, prioridad del proceso, valor agradable del proceso, memoria virtual, física y compartida utilizada por el proceso, estado del proceso (Dormir, Ejecutar o Zombi), uso de CPU y RAM, tiempo de actividad y comando que inició el proceso.
P3. ¿Cómo eliminar un proceso desde la salida superior?
Esto es bastante simple:solo presione 'k' y la parte superior le pedirá el PID del proceso que desea eliminar. Verá un mensaje similar al siguiente que aparece justo encima de la línea que contiene los encabezados de las columnas del proceso:
PID to signal/kill [default pid = 3397]
Como puede ver, puede ingresar el ID del proceso o, de forma predeterminada, top intentará eliminar (enviando SIGTERM) el primer proceso de la lista. Una vez que se envía la señal, se produce un mensaje similar al siguiente.
Send pid 3007 signal [15/sigterm]
P4. ¿Cómo cambiar la prioridad de un proceso?
Al igual que 'k' es para matar, puedes presionar 'r' en caso de que quieras cambiar la prioridad de un proceso (o quieras mejorarlo). Presionar 'r' produce un mensaje similar al siguiente:
PID to renice [default pid = 3397]
Entonces, ingrese un PID o top intentará mejorar la prioridad del primer proceso en la lista de manera predeterminada. Por ejemplo, pasé un PID y luego top me pidió el nuevo valor agradable.
Renice PID 2665 to value
Simplemente proporcione un valor y presione Intro, y verá que se cambiará el valor agradable para el proceso en cuestión.
P5. ¿Cómo cambiar la frecuencia de actualización del comando superior?
De forma predeterminada, la parte superior actualiza la salida cada 3 segundos, pero puede modificar esto presionando 'd'. El comando le pedirá que ingrese el nuevo valor de retraso:
Change delay from 3.0 to
Simplemente ingrese el valor y presione enter. Eso es todo.
P6. ¿Cómo limitar la salida del comando superior a un usuario?
De forma predeterminada, el comando superior muestra todos los procesos. Sin embargo, puede limitar la salida a un usuario en particular presionando 'u'.
Which user (blank for all)
Simplemente ingrese el nombre de usuario en la línea de arriba y presione enter, y verá que la salida contendrá solo aquellos procesos que son propiedad del usuario cuyo nombre ingresó.
Por ejemplo, ingresé 'raíz' y este es el resultado:
P7. ¿Cómo hacer que la pantalla superior complete el comando junto con los argumentos?
Esto se puede hacer presionando 'c'. He aquí un ejemplo:
Entonces puede ver la ruta de comando completa, así como los argumentos de la línea de comando en la salida ahora.
P8. ¿Cómo obtener ayuda con los comandos superiores interactivos?
Para obtener ayuda relacionada con los comandos principales interactivos, presione 'h'. En la salida, verá los comandos disponibles y lo que hacen. Por ejemplo, esto es lo que apareció en mi sistema cuando presioné 'h'.
Conclusión
Aquí solo hemos arañado la superficie. El comando superior proporciona muchas más funciones. Una vez que haya entendido todo lo que hemos discutido en este artículo y haya terminado de practicarlo, diríjase a la página de manual de la parte superior para obtener más información al respecto.