Comando top de Linux: Monitorización en tiempo real del sistema

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Bienvenido al laboratorio sobre el comando top de Linux. En este laboratorio, aprenderá cómo utilizar el comando top para monitorear los procesos del sistema y el uso de recursos en tiempo real. Esta habilidad es esencial para los administradores de sistemas, desarrolladores y cualquier persona que necesite entender y gestionar el rendimiento del sistema.

Imagina que eres un administrador de sistemas junior responsable de mantener un servidor web ocupado. Se ha informado que el servidor es lento y necesitas identificar qué procesos están consumiendo la mayoría de los recursos. El comando top será tu herramienta principal para esta investigación, ya que te permitirá ver y analizar la actividad del sistema en tiempo real.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/SystemInformationandMonitoringGroup -.-> linux/top("Task Displaying") subgraph Lab Skills linux/top -.-> lab-388500{{"Comando top de Linux: Monitorización en tiempo real del sistema"}} end

Uso básico del comando top

Comencemos ejecutando el comando top en su forma más simple. Esto nos dará una vista dinámica y en tiempo real de los procesos del sistema.

Abre una terminal y ejecuta el siguiente comando:

top

Deberías ver una pantalla similar a esta:

top - 14:30:23 up  5:10,  1 user,  load average: 0.15, 0.22, 0.28
Tasks: 213 total,   1 running, 212 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.0 us,  1.3 system,  0.0 ni, 96.3 id,  0.3 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   7824.9 total,   2576.8 free,   2935.0 used,   2313.1 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   4558.1 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 1234 user      20   0 3626108 205008  89380 S   2.0   2.6   0:45.85 gnome-shell
 5678 user      20   0  859492  51528  38060 S   1.3   0.6   0:10.91 Xorg
 9101 user      20   0  722816  36096  29088 S   0.7   0.5   0:05.62 gnome-terminal

Esta pantalla se actualiza continuamente (por defecto, cada 3 segundos). Analicemos lo que estamos viendo:

  1. La primera línea muestra la hora actual, el tiempo de actividad del sistema, el número de usuarios y la carga promedio.
  2. La segunda línea muestra el número total de tareas y sus estados (en ejecución, en espera, detenidas, zombies).
  3. La tercera línea muestra los porcentajes de uso de la CPU.
  4. La cuarta y quinta líneas muestran el uso de la memoria y del intercambio (swap).
  5. La tabla de abajo muestra información sobre procesos individuales, ordenados por uso de CPU por defecto.

Para salir de top, presiona 'q'.

Ordenar procesos en top

Por defecto, top ordena los procesos por uso de CPU. Sin embargo, puedes cambiar este ordenamiento en tiempo real. Exploremos cómo ordenar por uso de memoria en su lugar.

  1. Ejecuta el comando top:
top
  1. Una vez que top esté en ejecución, presiona la tecla 'M' (en mayúsculas). Esto ordenará los procesos por uso de memoria (tamaño del conjunto residente) en lugar de por uso de CPU.

Ahora deberías ver los procesos reordenados, con los procesos que consumen más memoria en la parte superior de la lista.

  1. Para ordenar nuevamente por uso de CPU, presiona la tecla 'P' (en mayúsculas).

  2. Para ordenar por identificador de proceso (PID), presiona la tecla 'N' (en mayúsculas).

  3. Para invertir el orden de clasificación actual, presiona 'R' (en mayúsculas).

Recuerda que siempre puedes presionar 'h' o '?' mientras top esté en ejecución para ver una pantalla de ayuda con todos los comandos disponibles.

Sal de top presionando 'q' cuando hayas terminado de explorar.

Cambiar el intervalo de actualización

Por defecto, top actualiza su pantalla cada 3 segundos. Sin embargo, puedes cambiar este intervalo. Vamos a configurarlo para que se actualice cada 1 segundo para obtener actualizaciones más frecuentes.

Ejecuta top con la opción -d:

top -d 1

Ahora deberías ver que la pantalla se actualiza con más frecuencia. Esto puede ser útil cuando estás tratando de detectar procesos de corta duración o cuando necesitas observar cambios rápidos en la actividad del sistema.

Para cambiar el intervalo de actualización mientras top está en ejecución:

  1. Presiona 'd' (en minúsculas).
  2. Ingresa el nuevo retraso en segundos (por ejemplo, '0.5' para medio segundo).
  3. Presiona Enter.

Recuerda que intervalos de actualización muy cortos pueden consumir una cantidad significativa de recursos de CPU, así que úsalos con prudencia.

Sal de top presionando 'q' cuando hayas terminado.

Mostrar los procesos de un usuario específico

Como administrador de sistema, a menudo es posible que necesites monitorear los procesos de un usuario específico. El comando top te permite hacer esto fácilmente.

Vamos a monitorear los procesos del usuario actual (que es 'labex' en este entorno de laboratorio):

top -u labex

Ahora deberías ver solo los procesos propiedad del usuario 'labex'.

Esta función es especialmente útil cuando estás tratando de solucionar problemas relacionados con las actividades de un usuario específico o cuando quieres centrarte en tus propios procesos en un sistema multi - usuario.

Sal de top presionando 'q' cuando hayas terminado de observar.

Mostrar solo procesos activos

A veces, es posible que desees centrarte solo en los procesos activos e ignorar los inactivos. El comando top ofrece una opción para esto.

Ejecuta top con la opción -i:

top -i

Este comando mostrará solo los procesos activos, filtrando cualquier proceso que haya tenido un uso de CPU cero desde la última actualización.

Esto puede ser especialmente útil cuando estás tratando de identificar qué procesos están consumiendo recursos actualmente, sin la distracción de los procesos inactivos.

Sal de top presionando 'q' cuando hayas terminado de observar.

Resumen

¡Felicidades! Has completado este laboratorio sobre el uso del comando top para la monitorización en tiempo real del sistema. Repasemos lo que has aprendido:

  1. Uso básico del comando top para mostrar los procesos del sistema y el uso de recursos.
  2. Cómo ordenar los procesos por diferentes criterios (uso de CPU, uso de memoria, PID) dentro de top.
  3. Cambiar el intervalo de actualización de top para obtener actualizaciones más o menos frecuentes.
  4. Monitorear los procesos de un usuario específico.
  5. Mostrar solo los procesos activos, filtrando los inactivos.

Estas habilidades serán inestimables para monitorear y gestionar los recursos del sistema, especialmente en situaciones en las que necesites identificar cuellos de botella de rendimiento o solucionar problemas del sistema.

Aquí hay algunas opciones adicionales del comando top y comandos interactivos que no cubrimos en este laboratorio:

  • -b: Ejecutar en modo batch (útil para enviar la salida a otros programas o archivos)
  • -n: Número de iteraciones antes de que top se detenga
  • 'k': Finalizar un proceso (por PID) desde dentro de top
  • 'r': Cambiar la prioridad de un proceso (renice)
  • 'c': Alternar la visualización del nombre/la línea del comando
  • 'V': Mostrar información de la versión

Recuerda que una monitorización efectiva del sistema es crucial para mantener el rendimiento y la estabilidad del sistema. El uso regular del comando top puede ayudarte a detectar y prevenir problemas relacionados con los recursos antes de que afecten significativamente el rendimiento de tu sistema.