¡Este blog ha sido migrado!

En 15 segundos serás redirigido automáticamente al nuevo Blog. De lo contrario, visita
http://compumegared.com.ar
y actualiza tus favoritos. ¡Gracias!


domingo, 3 de febrero de 2008

Mostrar procesos y su consumo


No es tan frecuente en Linux, como en Windows, que algún proceso ocupe demasiado tiempo de procesador e incluso llegue a "colgar" la máquina. Sin embargo es bueno saber que desde la terminal podemos recuperar el control de nuestro sistema con un par de pasos, que no son difíciles, y que hay programas que ayudan en la tarea de tener siempre controlado nuestro ordenador.

Para mostrar los procesos que corren en Linux, simplemente, ejecutamos en la consola:

top

Esto nos genera una salida "interactiva" similar a la siguiente:

top - 14:54:04 up 2 days, 13:44,  1 user,  load average: 1.13, 1.26, 1.55
Tasks: 118 total, 4 running, 114 sleeping, 0 stopped, 0 zombie
Cpu(s): 7.7%us, 2.0%sy, 0.0%ni, 89.3%id, 0.0%wa, 0.0%hi, 1.0%si, 0.0%st
Mem: 775588k total, 746344k used, 29244k free, 5428k buffers
Swap: 1004020k total, 35440k used, 968580k free, 388388k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4912 root 16 0 106m 74m 6452 S 2.0 9.8 59:11.95 Xorg
6053 sergio 15 0 39672 20m 16m S 2.0 2.7 67:12.35 kded
378 sergio 15 0 223m 122m 27m S 1.7 16.2 54:13.70 firefox-bin
6101 sergio 15 0 69476 30m 19m S 1.3 4.0 55:02.81 ktorrent
6119 sergio 15 0 139m 46m 27m R 1.3 6.1 9:19.02 amarokapp
1998 sergio 15 0 35500 16m 12m R 1.0 2.1 0:03.70 konsole
1347 nobody 15 0 1912 716 604 S 0.7 0.1 1:00.05 pppoe
4346 sergio 15 0 2364 1156 876 R 0.3 0.1 0:00.11 top
1 root 15 0 2948 1820 496 S 0.0 0.2 0:01.16 init
2 root 13 -5 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
4 root 34 19 0 0 0 S 0.0 0.0 0:04.41 ksoftirqd/0
5 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
6 root 10 -5 0 0 0 S 0.0 0.0 0:00.27 events/0
7 root 10 -5 0 0 0 S 0.0 0.0 0:00.01 khelper
26 root 10 -5 0 0 0 S 0.0 0.0 0:08.62 kblockd/0
27 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid

Obviamente para la persona que no está interiorizada del funcionamiento de Linux/Unix, esto se asemeja bastante al código de la Matrix.
Como nuestro objetivo es solamente saber cómo dar de baja a los procesos que se están comiendo todo nuestro sistema, la tarea se reduce a observar el tope de la tabla, donde está el mayor consumo para cerciorarnos si realmente es ese nuestro problema.
En general cuando hay un cuelgue, se trata de alguna aplicación que hizo algo inválido y quedó con un excesivo consumo de memoria y procesador, entonces es eso lo que debemos revisar...

En el ejemplo vemos que el Xorg consume, aproximadamente, un 2% de CPU y 9,8 % de Memoria.
Estos valores son normales y corresponden a TODO el entorno gráfico que nos permite interactuar con el ordenador.
El problema se va a apreciar si hay alguna aplicación usando un 90 % de CPU o memoria, por ejemplo, y seguramente lo notaremos porque hemos hecho alguna operación en algún programa que genera estos indicadores altos.

En caso de que sea sólo una aplicación y estemos presenciando su "cuelgue" en pantalla sin poder darla por finalizada haremos lo siguiente:

  1. Ver su PID (Process ID) que es el número único que se le otorga a un proceso al comienzo del mismo.
  2. Constatar que se trata de la aplicación con problemas
Una vez que tenemos estos datos, simplemente "matamos" el proceso con la siguiente orden:

sudo kill PID

Donde colocaremos, justamente, el número de PID.

En caso de que no nos deje matar porque se trata de un proceso "bloqueado", tendremos la posibilidad de adicionarle la orden de que lo haga de todas formas:

sudo kill -9 PID

Es una manera sencilla de solucionar este tipo de inconvenientes.
No es frecuente, pero puede pasar, todas las aplicaciones tienen bugs y pueden "crashear" en el momento menos esperado.

También tenemos una opción, un poco más gráfica de hacer este mismo trabajo.
Se trata de htop, una implementación del comando top en un estilo semi-gráfico y con posibilidad de utilizar el mouse.

Lo instalamos con el comando:

sudo apt-get install htop


Una vez instalado lo corremos en la consola por su nombre:

htop

Y veremos algo como lo siguiente:

Allí tenemos la posibilidad de ver el consumo total de memoria y procesador con una barra indicadora en color.
Podemos seleccionar un proceso y matarlo con F9, de una forma más visual sin salir de la consola.

10/02/2008

Podemos buscar el PID de una aplicación que está fallando con el siguiente comando en consola:

ps -fe|grep nombre


Por ejemplo:

ps -fe|grep firefox


Lo que nos da un resultado similar al siguiente:

sergio   26830  6062  0 Feb09 ?        00:00:00 /bin/sh /usr/bin/firefox
sergio 26842 26830 0 Feb09 ? 00:00:00 /bin/sh /usr/lib/firefox/run-mozilla.sh /usr/lib/firefox/firefox-bin
sergio 26846 26842 16 Feb09 ? 00:36:44 /usr/lib/firefox/firefox-bin
sergio 29954 29363 0 00:55 pts/4 00:00:00 grep firefox


En este ejemplo el PID del Firefox es 26830, que es el proceso "Padre".

Para finalizarlo ejecutamos:

sudo kill -9 26830



3 Comentarios:

Halle dijo...

Más de una vez tuve que matar un proceso.

Yo los busco con el ps -ef|grep que vos mismo me enseñaste. Podrías agregarlo, para cuando sabemos que proceso tiene el problema y solo buscamos el PID.

Guty dijo...

A mi me mató esto:
6101 sergio 15 0 69476 30m 19m S 1.3 4.0 55:02.81 ktorrent

Había un video musical en youtube en honor al "kill -9"

sergio dijo...

Halle: Me hiciste acordar. Lo voy a agregar.

guty: Shhh, estoy compartiendo soft libre, qué pensabas?
Voy a buscar el video...

Gracias!

Bloggerized by : GosuBlogger | Blue Weed by Blog Oh! Blog .


Crea tus Relojes en flash