# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

El comando TOP


Top Unix

El comando TOP muestra a tiempo real un listado de los procesos que se están ejecutando en el sistema, especificando además el % de Cpu y Memoria que están utilizando, sus IDs, usuarios que lo están ejecutando, etc. Todo esto y mucho más lo hace una de las herramientas imprescindibles para la administración de cualquier tipo de sistema Unix y derivado.

La salida por pantalla de Top, puede dividirse en dos partes, la “cabecera” muestra entre otras cosas, el Uptime del servidor, nº de usuarios conectados y load average. En la siguiente línea podemos ver el nº de procesos ejecutandose en el sistema, así como el uso de disco, memoria y cpus.

Posteriormente podemos observar un listado de procesos, que pueden ser ordenados por uso de cpu o memoria, lo que es una excelente ayuda para detectar procesos que consumen excesivos recursos en el servidor. Este listado, muestra varios detalles de cada uno de los procesos, como pueden ser el PID de proceso, usuario que lo ejecuta, %cpu y memoria que consume, comando que está ejecutando o tiempo de ejecución del proceso entre otros.

Como siempre digo, toda la información necesaria para sacar el máximo partido al proceso la tenemos en man:

man top

No obstante, paso a detallar algunas de las opciones que podemos pasarle al comando:

Opciones del comando TOP:

-c : Para visualizar la línea de comandos completa de cada proceso, activado mostrará las rutas completas, mientras que desactivandolo solo muestra el nombre del programa, ejemplo:

$ top -c:

 4969 root      20   0 55092  39m   9m S   14  7.8  26:08.38 /usr/bin/X :0 -br -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7

$ top

 4969 root      20   0 59996  39m   9m S   16  7.8  26:05.87 Xorg

-d : Intervalo de actualización y refresco, podemos asignarle un valor numérico (segundos) que determinará cada cuanto actualice la información.

-U : Monitorizar solamente los procesos de un determinado UID.

-p : Monitorizar solamente los ID de procesos especificados, ejemplo:

top -p12 -p133

-n : Especificaremos el nº de veces que actualizará hasta que finalice la ejecución de Top, ejemplo:

top -n4 # Refrescará la información cuatro veces y finalizará la ejecución de TOP.

Algún día hablaremos también de modificaciones del comando TOP, como por ejemplo HTOP.

Categoría: Comandos, Unix | Etiquetas: , , ,

15 Comentarios

  1. Ale dice:

    Hola, el comando top me muestra 2 user pero solo yo uso la pc. Que significa es normal o estoy compartiendo sin saberlo, gracias. Chau

    • Alex dice:

      Seguramente serán las X (entorno gráfico). En una terminal presiona la letra w (comando who) y te dirá quién está conectado a tu sistema:

      ~$ w
      12:28:43 up 3:07, 2 users, load average: 0,66, 0,59, 0,56
      USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
      alex tty7 :0 09:22 3:07m 12:14 0.23s x-session-manager
      alex pts/0 :0.0 12:27 0.00s 0.21s 0.01s w

      Verás que a mí también me salen dos, mi usuario y la sesión X.

  2. [...] tenéis una máquina con más de una CPU, y el comando TOP en lugar de mostrar la información detallada de cada una de ellas la muestra conjunta, debéis [...]

  3. Marcelo dice:

    Muchas gracias por la información, solo quisiera consultar, respecto a la linea CPU(s) como lo explicaste, muestra el % de us, sy, ni, id, wa, hi, si y st, por lo que deduzco el primero %us muestra el uso, pero que significado tienen los otros % y que implicancia tienen en el rendimiento??

    Muchas gracias.

    • Alex dice:

      H0la Marcelo,

      %us= Porcentaje de tiempo de CPU usada por procesos de usuarios
      %sy= Porcentaje de tiempo de CPU usada por procesos de sistema
      %ni= Porcentaje de tiempo de CPU usada por procesos en estado nice
      %wa= Porcentaje de tiempo de CPU esperando a que tareas de I/O finalicen
      %hi= Porcentaje de tiempo de CPU sirviendo interrupciones de Hardware
      %si= Porcentaje de tiempo de CPU sirviendo interrupciones de Software

  4. nana dice:

    Hola!
    En relacion al uso de la memoria coom deduzco cual es el porcentaje de la utilizacion de esta si lo que me da son numeros enteros
    Por ejemplo:
    Memory: 3000628K (2814592K) real, 4252520K (3957180K) virtual, 1457068K free Pa
    ge# 1/19
    Ahi me da los valores pero como se el porcentaje??

    • Alex dice:

      Hola nana!

      Para ver el porcentaje de memoria utilizada en top tienes que presionar shift + m. Automáticamente ordenará los procesos por porcentaje de memoria consumida.

      Saludos

  5. luis dice:

    Hola!
    Se te ocurre algo como para sumar los porcentajes de tiempo de CPU y obtener el total como salida de un comando de consola? (grep, sed, awk, etc..)

  6. Neil Lopez dice:

    Creo que no es el lugar adecuado, pero recuro a ustedes para un auxilio
    tengo Postfix + Mailscanner + ClamAv.
    me envio un mail desde mi propio dominio (nl@dominio.com a nl@dominio.com) y tarda minimo 3 horas.
    al revisar el MAilscanner lo muestra como entregado.
    me pueden dar algun pista
    ya limpie la tabla maillog del mailscanner pensando que podria ser que este muy grande ya que tengo el log de 5 años, pero sigue igual

    Gracias por la ayuda
    Neil Lopez
    neillopez@hotmail.com

  7. surman dice:

    Muy buenas a todos, este es el unico post que he encontrado que especifique esto tan completo, tengo dudas al respecto

    Según lo que dijo Luis y con la consulta top -c me sale los siguientes valores, si esto es correcto tengo los siguientes valores

    54.0%us= Porcentaje de tiempo de CPU usada por procesos de usuarios
    1.8%sy= Porcentaje de tiempo de CPU usada por procesos de sistema
    0.0%ni= Porcentaje de tiempo de CPU usada por procesos en estado nice
    51.0%wa= Porcentaje de tiempo de CPU esperando a que tareas de I/O finalicen
    0.7%hi= Porcentaje de tiempo de CPU sirviendo interrupciones de Hardware
    0.0%si= Porcentaje de tiempo de CPU sirviendo interrupciones de Software

    Bien evidentemente tengo un problema del %wa, pero como puedo solucionarlo o rebajarlo, ya le aumentamos la memoria ram al servidor, mejoro durante 1 mes pero ha vuelto otra vez a subir como la espuma

    Hay algo que pueda hacer para solucionarlo?

    Alguna sugerencia?

    Gracias por la ayuda!

  8. surman dice:

    otra cosa, he estado viendo el comando htop
    y no se que valores son:

    1
    2
    Mem (eso me imagino que es memoria usada y total)
    Swp

    gracias y cualquier aclaración será de mucha ayuda!

  9. [...] Linux y Unix existen otros comandos además de top para monitorizar de un modo eficiente la utilización de las CPU en el sistema. Hoy vamos a ver [...]

  10. Predatux dice:

    Gracias por el apunte.

    Me gustaría hacerte una pregunta, sabes si hay forma de que liste solamente ciertos procesos, como por ejemplo Xorg? Muchas veces busco un proceso en concreto y tarda bastante en aparecer. Desconozco si hay alguna opción de que liste solo procesos por ejemplo que comiencen por X.

    Gracias y un saludo.

Deja una respuesta