Cómo usar el comando top de Linux (y entender su salida)

  • Dave McKay

    @TheGurkha

  • 12 de mayo de 2020, 8:00am EDT
Un prompt de terminal en un PC portátil Linux.
Fatmawati Achmad Zaenuri/

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.

Publicidad

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

top -v en una ventana de terminal.

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

top en una ventana de terminal.

Publicidad

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 pantalla superior por defecto en una ventana de terminal.

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»).
  • 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.

    Publicidad

    Los encabezados de las columnas de la lista de procesos son los siguientes:

    • 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).
    • 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:

      • D: Sueño ininterrumpido
      • R: En ejecución
      • S: Durmiendo
      • T: Rastreado (detenido)
      • Z: Zombie
        • 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.

          Publicidad

          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.

          arriba con la lista de procesos desplazada lateralmente para revelar la columna de comandos, en una ventana de terminal.

          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.

          Publicidad

          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.

          superior con gibibytes y mebibytes utilizados para las unidades de memoria en una ventana de terminal.

          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.

          Línea de resumen de carga eliminada de la parte superior en una ventana de terminal.

          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.

          arriba con la pantalla de la cpu expandida para ver las estadísticas individuales de la CPU, en una ventana de terminal.

          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.

          arriba con gráficos ASCII que muestran la carga de trabajo de la CPU, en una ventana de terminal.

          Para cada CPU, top muestra tres números y el gráfico. De izquierda a derecha, los números son los siguientes:

          • El porcentaje combinado de us y ni (espacio de usuario+tareas con configuraciones agradables no estándar).
          • El sy porcentaje (espacio del núcleo).
          • El total (redondeado a un valor entero).
            • Pulse «t» de nuevo para cambiar la visualización del gráfico a caracteres de bloque sólidos.

              superior con gráficos de bloques ASCII que muestran la carga de trabajo de la CPU, en una ventana de terminal.

              Publicidad

              Pulse «t» una vez más para eliminar la visualización de la CPU y la línea de resumen de tareas por completo.

              superior con las líneas de resumen de la CPU y de las tareas eliminadas, en una ventana de terminal.

              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.

              arriba mostrando gráficos ASCII para las estadísticas de memoria, en una ventana de terminal.

              Otra pulsación cambia el gráfico a caracteres de bloque.

              arriba mostrando gráficos de bloque ASCII para las estadísticas de memoria, en una ventana de terminal.

              Pulsa «m» una vez más para eliminar las líneas de la CPU por completo.

              arriba con las líneas de memoria y swap eliminadas de la pantalla, en una ventana de terminal.

              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.

              superior con gráficos ASCII para la CPU y la memoria, en una ventana de terminal.

              Color y resaltado

              Puedes pulsar «z» para añadir color a la pantalla.

              superior con una pantalla de color, en una ventana de terminal.

              Publicidad

              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.»

              arriba con la tarea en ejecución y la columna ordenada resaltada usando texto invertido, en una ventana de terminal.

              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:

              • P: La columna %CPU.
              • M: La columna %MEM.
              • N: La columna PID.
              • T: La columna TIME+.
              Publicidad

              En la imagen inferior, la lista de procesos está ordenada por la columna PID.

              superior con el proceso listado ordenado por la columna PID, en una ventana de terminal.

              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.

              arriba mostrando la línea de comandos completa en la columna comando, en una ventana de terminal.

              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.

              Pregunta del usuario en una ventana de terminal.

              Publicidad

              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.

              Supervisión de las tareas de un solo usuario dave, en una ventana de terminal.

              Sólo ver las tareas activas

              Pulsa I para ver sólo las tareas activas.

              Sólo ver tareas activas, en una ventana de terminal.

              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.

              superior pidiendo el número de líneas a mostrar, en una ventana de terminal.

              Escribimos 10 y pulsamos Enter, por lo que aparecen 10 procesos en el área de tareas.

              superior mostrando diez procesos en el área de tareas, en una ventana de terminal.

              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.

              Preguntando por el ID de proceso de un proceso, en una ventana de terminal.

              Publicidad

              Después de pulsar Enter, se le pedirá el nuevo valor agradable para aplicar al proceso. Escribimos 15, y luego presionamos Enter.

              top establecer un proceso a un valor nice de 15, en una ventana de terminal.

              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.

              superior pidiendo un id de proceso, en una ventana de terminal.

              Publicidad

              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).

              superior que pide una señal para enviar, en una ventana de terminal.

              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.

              en la parte superior se muestra un prompt rojo claro, en una ventana de terminal.

              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:

              • S: Área de datos resumidos.
              • M: Mensajes y avisos.
              • H: Encabezados de columna.
              • T: Información de la tarea en la lista de procesos.
              • Pulsamos M para cambiar los avisos.

                página de configuración de color superior con la opción M seleccionada, en una ventana de terminal.

                Publicidad

                Para elegir un color, pulse uno de los siguientes números:

                • 0: Negro.
                • 1: Rojo.
                • 2: Verde.
                • 3: Amarillo.
                • 4: Azul.
                • 5: Magenta.
                • 6: Cian.
                • 7: Blanco.
                • Pulsamos 6 para usar el cian.

                  ventana de configuración de color superior con el color 6 seleccionado, en una ventana de terminal.

                  Pulsa Enter para guardar tu configuración. Los avisos de entrada estarán ahora en el color seleccionado.

                  arriba con un aviso cian, en una ventana de terminal.

                  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.

                  arriba mostrando la pantalla de gestión de campos, en una ventana de terminal.

                  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.

                  Publicidad

                  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.

                  superior que muestra la pantalla de gestión de campos con la columna UID seleccionada en una ventana de terminal.

                  Mientras el resalte está en la columna UID, pulsamos «s» para ordenar la lista de procesos en la columna UID.

                  arriba mostrando la pantalla de gestión de campos con la columna UID establecida como columna de ordenación en una ventana de terminal.

                  Pulsa Enter para guardar la configuración y luego pulsa «q» para salir de la pantalla de gestión de campos.

                  arriba con la columna UID mostrada, y establecida como columna de ordenación en una ventana de terminal.

                  Publicidad

                  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.

                  arriba con la visualización alternativa activada en una ventana de terminal.

                  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:

                  • 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.

                  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.

                  Publicidad

                  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
                  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 »

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *