Está en la página 1de 3

MONITORIZACIÓN DE APLICACIONES Y PROCESOS: GNU/LINUX.

El comando top, para GNU/Linux, nos informa del estado del sistema en tiempo real. Con este comando
podemos observar los usuarios conectados, los procesos y/o programas corriendo, aquellos programas y/o
procesos en estado latente, los parados, zombies. Situación de la memoria, tanto la principal como la
swaping, etc.

Además, podemos observar que usuario ha lanzado el proceso y/o aplicación, qué rendimiento tiene, qué
memoria está usando, etc. Con esta información podemos, por ejemplo, determinar si debemos detener o
“matar” un programa, proceso o demonio.

En las siguientes imágenes podemos observar la funcionalidad de este comando.

Ahora bien, si queremos conocer el estado del sistema en un determinado momento, el comando ps con
parámetros escogidos para conocer su actividad, nos permitirá recoger la información necesaria sobre el
estado del sistema.

Por ejemplo: #ps –aux nos informará de todos los


procesos abiertos con información detallada.
En la imagen se muestra qué aparece y con qué
información podemos contar.
Podemos observar que toda la información aparece en
columnas. Las columnas correspondería a:
USER: usuario que lanzó la aplicación o proceso.
PID: número identificador del proceso.
%CPU: el porcentaje de uso del cpu.
%MEM: el porcentaje de uso de la memoria principal.
VSZ: tamaño del proceso en la memoria virtual.
PPID: número identificador del proceso padre;
STAT: estado del proceso (O: Proceso corriendo, S: Proceso inactivo; R: Proceso en cola para ejecutarse;
Z: proceso Zombie; T: Proceso detenido).
START: hora de comienzo.
TIME: tiempo ejecutándose.
COMMAND: el nombre del comando o programa que se ejecuta.

Otros ejemplos del uso del comando ps:


ps r: muestra los procesos que están corriendo en ese preciso instante.
ps f: muestra los procesos hijos descendiente en árbol ASCII.
ps e: muestra el entorno de cada. Esto es útil en una situación en que un programa funciona para un
usuario, pero no para otro, o en una máquina pero no en otra.
ps -t pts/3: muestra los procesos corriendo en esa terminal.
ps u: genera una salida similar a ps –aux pero de los procesos activos en ese momento.

Además de este completo comando, disponemos de un pequeño comando que nos muestra los procesos
en árbol indicando quién generó el proceso (proceso padre). Este comando se denomina pstree. Su uso es
alternativo a ps.
Ejecutando pstree –a. Nos muestra el árbol con los procesos y con los parámetros que se ha lanzado.

A partir de este punto debemos tomar decisiones. No tiene sentido, por ejemplo, mantener un proceso
zombie ocupando espacio en nuestra memoria principal y recursos del procesador en nuestro sistema.
¿Qué podemos hacer? La opción más válida es “matar” el proceso.
En sistemas Linux tenemos la opción del comando kill. Es un comando utilizado para enviar mensajes
sencillos a los procesos que estén ejecutándose en el sistema. Envía señales a procesos o grupos de
procesos en el sistema, referenciados por sus IDs de proceso (PIDs) o IDs de grupo de procesos (PGIDs).
Tenemos otra opción, killall.

Por ejemplo, lanzamos la aplicación openoffice writer. Comprobamos que no podemos cerrarla porque
tenemos “bloqueada” la aplicación. ¿Qué podemos hacer?
Primero comprobamos el PID de la aplicación.
usuario@debian6:~$ ps -aux|grep usuario
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
…………………..
usuario 2320 0.0 2.7 74500 10552 ? SL 08:50 0:00 gksu /usr/bin/x-terminal-emulator
usuario 3741 4.3 18.0 191344 69404 ? Sl 10:52 0:01 /usr/lib/openoffice/program/soffice.bin -
writer -splash-pipe=5
usuario 3780 2.2 3.0 83200 11780 ? Sl 10:52 0:00 gnome-terminal
usuario 3781 0.0 0.1 2112 496 ? S 10:52 0:00 gnome-pty-helper
usuario 3782 1.0 0.9 6492 3556 pts/2 Ss 10:52 0:00 bash
usuario 3805 0.0 0.2 3872 924 pts/2 R+ 10:53 0:00 ps -aux
usuario 3806 0.0 0.2 3320 796 pts/2 S+ 10:53 0:00 grep usuario

De toda la información que nos suministra nos fijamos en la línea marcada en rojo. Comprobamos que
soffice.bin es la aplicación que está ejecutando el usuario llamado “usuario”, cuyo PID es 3741.
Bien, ahora podemos eliminarlo con el comando kill.

usuario@debian6:~$ kill -9 3741.

Pero, y -9, ¿qué significa? Es exactamente lo mismo que si ejecutamos el comando de la siguiente
manera:
usuario@debian6:~$ kill -KILL 3741.

En el manual del propio comando aparecen las señales que se le pueden enviar al proceso. Por ejemplo,
tecleando “man kill”.

No debemos olvidar los siguientes comandos de monitoreo para control de inicio de programas y
aplicaciones y/o servicios. Disponemos de rcconf, sysv-rc-conf, dstat, bmon, ifstat.

Encontramos estos paquetes a través de los repositorios de Linux.

Si queremos utilizar sar de sysstat, deberíamos seguir estos pasos en caso de que no funcione
correctamente.

En el caso de que no podamos lanzar la herramienta “sar” porque nos genere errores;
root@rocknrolla:~# sar
Cannot open /var/log/sysstat/sa27: No such file or directory
Please check if data collecting is enabled in /etc/default/sysstat

Antes de poder utilizar sar, es necesario activarlo. Debemos reconfigurar el paquete sysstat tecleando:

root@rocknrolla:~# dpkg-reconfigure sysstat

Luego reiniciamos el servicio sysstat con el comando;

root@rocknrolla:~# /etc/init.d/sysstat start

Ahora nos toca verificar si en el directorio /var/log/sysstat/ ya está el archivo que falta.

Dejamos que pasen unos 10 – 15 minutos para ver los datos recolectados tecleando;

root@rocknrolla:~# sar -A

También podría gustarte