Visualización de tareas en Linux

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

Monitorear los procesos del sistema es una habilidad crítica para los usuarios de Linux y los administradores de sistemas. Comprender qué procesos están en ejecución y cómo consumen recursos te permite mantener la estabilidad y el rendimiento del sistema.

En este laboratorio (lab), aprenderás a utilizar el comando top, una herramienta poderosa para el monitoreo en tiempo real de los procesos del sistema Linux. El comando top proporciona información detallada sobre el uso de la CPU, el consumo de memoria y otras métricas importantes del sistema. Al dominar este comando esencial, podrás identificar los procesos que consumen muchos recursos y gestionar eficazmente los recursos de tu sistema Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/SystemInformationandMonitoringGroup -.-> linux/top("Task Displaying") linux/VersionControlandTextEditorsGroup -.-> linux/nano("Simple Text Editing") subgraph Lab Skills linux/echo -.-> lab-271407{{"Visualización de tareas en Linux"}} linux/cat -.-> lab-271407{{"Visualización de tareas en Linux"}} linux/cd -.-> lab-271407{{"Visualización de tareas en Linux"}} linux/top -.-> lab-271407{{"Visualización de tareas en Linux"}} linux/nano -.-> lab-271407{{"Visualización de tareas en Linux"}} end

Introducción al comando top

El comando top es una utilidad fundamental de Linux que muestra una vista dinámica y en tiempo real de los procesos que se ejecutan en tu sistema. El nombre "top" se refiere a su comportamiento predeterminado de mostrar los procesos que consumen más CPU (los "top" en inglés).

Comencemos navegando hasta el directorio de tu proyecto y explorando el uso básico del comando top:

cd ~/project

Ahora, ejecuta el comando top:

top

Cuando ejecutes este comando, deberías ver una pantalla interactiva similar a la siguiente:

top - 14:25:30 up 2 days,  3:45,  1 user,  load average: 0.15, 0.20, 0.25
Tasks: 105 total,   1 running, 104 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.0 us,  1.0 sy,  0.0 ni, 97.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   4096.0 total,   2841.3 free,    845.2 used,    409.5 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   2970.5 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 1234 labex     20   0  562340  42340  28456 S   2.0   1.0   0:30.25 firefox
 2345 labex     20   0   78912  23456  13204 S   0.7   0.6   0:12.34 terminal
 3456 root      20   0   43528   5424   4356 S   0.3   0.1   0:05.67 sshd
  ... (more processes)

La pantalla de top se divide en dos secciones principales:

  1. Área de resumen (las 5 primeras líneas): Proporciona información general del sistema, incluyendo:

    • Tiempo de actividad del sistema y promedios de carga
    • Estadísticas de tareas (total, en ejecución, en espera, etc.)
    • Porcentajes de uso de la CPU
    • Uso de memoria (RAM y Swap)
  2. Lista de procesos (tabla debajo del resumen): Enumera los procesos en ejecución con detalles como:

    • PID: Identificador de proceso
    • USER: Propietario del proceso
    • PR: Prioridad
    • NI: Valor nice
    • VIRT: Memoria virtual utilizada
    • RES: Memoria residente utilizada
    • %CPU: Porcentaje de uso de la CPU
    • %MEM: Porcentaje de uso de la memoria
    • COMMAND: Nombre del comando

La pantalla se actualiza automáticamente cada 3 segundos por defecto. Para salir del comando top, simplemente presiona la tecla q.

Ahora, tomemos una instantánea estática de los procesos utilizando la opción -n 1. Esto le indica a top que se actualice una sola vez y luego salga:

top -n 1 > ~/project/top_snapshot.txt

Este comando crea un archivo llamado top_snapshot.txt en el directorio de tu proyecto que contiene una instantánea de los procesos actuales del sistema. Verifiquemos el contenido del archivo:

cat ~/project/top_snapshot.txt

Deberías ver una salida similar a la que se mostró en la sesión interactiva de top, pero como un archivo de texto estático.

Interpretación de la salida de top

Ahora que tienes una instantánea de los procesos del sistema, analicemos la información para entender lo que nos dice sobre el uso de recursos del sistema.

Abre el archivo top_snapshot.txt utilizando el editor de texto nano:

nano ~/project/top_snapshot.txt

En este archivo, puedes ver la misma información que se muestra en el comando interactivo top. Centrémonos en identificar el proceso que consume más CPU de la lista.

Mira la sección de la lista de procesos (debajo del área de resumen) y encuentra el proceso con el valor más alto en la columna %CPU. Esto indica el proceso que estaba consumiendo más CPU en el momento en que se tomó la instantánea.

Por ejemplo, si ves una línea como esta:

 1234 labex     20   0  562340  42340  28456 S   2.0   1.0   0:30.25 firefox

Esto muestra que el proceso con PID 1234 (firefox) propiedad del usuario "labex" estaba utilizando el 2.0% de la CPU y el 1.0% de la memoria.

Toma nota de la siguiente información para el proceso con el mayor uso de CPU:

  1. PID (Identificador de proceso)
  2. USER (el propietario del proceso)
  3. %CPU (porcentaje de uso de CPU)
  4. %MEM (porcentaje de uso de memoria)
  5. COMMAND (El comando o programa en ejecución)

Para salir de nano, presiona Ctrl+X.

Ahora, crea un archivo llamado top_analysis.txt para documentar tus hallazgos:

echo "Most CPU-intensive process analysis" > ~/project/top_analysis.txt

Agrega los detalles del proceso que consume más CPU al archivo. Reemplaza los marcadores de posición con los valores reales que observaste:

echo "PID: [Replace with PID]" >> ~/project/top_analysis.txt
echo "USER: [Replace with USER]" >> ~/project/top_analysis.txt
echo "CPU%: [Replace with %CPU]" >> ~/project/top_analysis.txt
echo "MEM%: [Replace with %MEM]" >> ~/project/top_analysis.txt
echo "COMMAND: [Replace with COMMAND]" >> ~/project/top_analysis.txt

Por ejemplo, si el proceso 1234 (firefox) era el que consumía más CPU, ingresarías:

echo "PID: 1234" >> ~/project/top_analysis.txt
echo "USER: labex" >> ~/project/top_analysis.txt
echo "CPU%: 2.0" >> ~/project/top_analysis.txt
echo "MEM%: 1.0" >> ~/project/top_analysis.txt
echo "COMMAND: firefox" >> ~/project/top_analysis.txt

Verifiquemos lo que hemos escrito en el archivo:

cat ~/project/top_analysis.txt

Esto debería mostrar el contenido de tu archivo de análisis con los detalles del proceso que consume más CPU.

Ordenar y filtrar procesos en top

El comando top se vuelve aún más poderoso cuando aprendes a ordenar y filtrar procesos. En este paso, aprenderás a personalizar la pantalla de top para centrarte en información específica.

Primero, ejecutemos nuevamente el comando interactivo top:

top

Mientras top está en ejecución, puedes usar atajos de teclado para modificar su comportamiento:

  1. Presiona M (en mayúsculas) para ordenar los procesos por uso de memoria
  2. Presiona P (en mayúsculas) para ordenar los procesos por uso de CPU (predeterminado)
  3. Presiona T (en mayúsculas) para ordenar los procesos por tiempo (cuánto tiempo han estado en ejecución)
  4. Presiona N (en mayúsculas) para ordenar los procesos por PID (identificador de proceso)

Prueba cada una de estas opciones de ordenación para ver cómo cambia la lista de procesos. Cuando hayas terminado de experimentar, presiona q para salir de top.

Ahora, tomemos una instantánea de los procesos ordenados por uso de memoria. Usaremos el modo batch de top con opciones específicas:

top -b -n 1 -o %MEM > ~/project/top_sorted_by_mem.txt

Este comando utiliza:

  • -b: Modo batch (no interactivo)
  • -n 1: Ejecutar solo una iteración
  • -o %MEM: Ordenar por uso de memoria

Veamos el contenido de este archivo:

cat ~/project/top_sorted_by_mem.txt

Deberías ver los procesos enumerados en orden de uso de memoria, con los procesos que consumen más memoria en la parte superior.

A continuación, filtremos los procesos para mostrar solo aquellos que pertenecen a tu cuenta de usuario:

top -b -n 1 -u labex > ~/project/top_user_filtered.txt

La opción -u labex filtra la salida para mostrar solo los procesos propiedad del usuario "labex". Examinemos este archivo:

cat ~/project/top_user_filtered.txt

Este archivo solo debe mostrar los procesos propiedad del usuario "labex".

Finalmente, combinemos la ordenación y el filtrado para crear una vista más específica:

top -b -n 1 -u labex -o %CPU > ~/project/top_custom.txt

Este comando muestra solo los procesos pertenecientes al usuario "labex" y los ordena por uso de CPU. Veamos el resultado:

cat ~/project/top_custom.txt

Estas opciones de personalización hacen de top una herramienta versátil para centrarse en aspectos específicos del rendimiento del sistema y el uso de recursos.

Resumen

En este laboratorio, has aprendido cómo usar el comando top para monitorear y analizar procesos en Linux. Las habilidades que has adquirido incluyen:

  1. Ejecutar el comando top para ver una visualización en tiempo real de los procesos del sistema
  2. Comprender la información mostrada en la salida de top, incluyendo el uso de CPU, el uso de memoria y los detalles de los procesos
  3. Capturar instantáneas de la información de los procesos para su análisis
  4. Identificar procesos que consumen muchos recursos examinando el uso de CPU y memoria
  5. Personalizar la pantalla de top a través de opciones de ordenación y filtrado

Estas habilidades son esenciales para la administración de sistemas y el monitoreo de rendimiento en entornos Linux. El comando top es una de las herramientas más utilizadas para evaluar rápidamente la salud del sistema e identificar posibles problemas de rendimiento.

Al dominar el comando top, ahora tienes la capacidad de monitorear eficazmente los recursos del sistema, identificar los procesos que pueden estar causando problemas de rendimiento y recopilar la información necesaria para optimizar el rendimiento del sistema.