Você está na página 1de 8

Gestin de procesos y memoria

Propiedades de los procesos


Bsicamente, un proceso o tarea en Linux tiene las siguientes propiedades:

Un PID (identificador de proceso), es necesario para


referirnos a un proceso en concreto de los varios en ejecucin.

Un PPID (Identificador del proceso padre), es el


nmero que indica qu proceso cre al proceso en cuestin.

Un estado, habr momentos en los que un proceso


seguir existiendo en el sistema, pero no estar haciendo nada realmente. Puede
estar esperando a que una seal le sea enviada para volverse activo, o a nosotros
como usuarios nos puede interesar detenerlo o pausarlo bajo determinadas
circunstancias. Los estados ms importantes son dormido (S), y en ejecucin (R).

Un dueo, generalmente es el usuario que lo ejecut, y


como ya se dijo, el proceso hereda los permisos del usuario de cara al sistema de
ficheros. Si un ejecutable es SUID, al ejecutarse, el proceso resultante adquiere los
permisos del usuario dueo del archivo. Generalmente, un usuario normal no puede
ejercer control sobre procesos que no le pertenecen.

Una prioridad que determina su importancia, ya que no


todos los procesos son igual de importantes.

Monitorizacin de procesos
pstree
Con este comando podemos ver las tareas y sus subtareas en una estructura
anidada. Con el parmetro p se muestran tambin los PIDs de los procesos.
pstree
ps
Este comando muestra una lista de los procesos en ejecucin en un instante dado.
ps -u
Muestra los procesos que pertenecen al usuario actual.
ps -aux
Muestra la informacin detallada de todos los procesos en ejecucin (a para todos
los procesos, u para los procesos del usuario y x para los procesos que no son de terminal).
Los campos ms importantes mostrados por ps son:

USER - usuario dueo del proceso.

PID - nmero identificador del proceso.

%CPU - porcentaje de uso del microprocesador por


parte de este proceso.

%MEM - porcentaje de la memoria principal usada por


el proceso.

VSZ - tamao virtual del proceso (lo que ocupara en la


memoria principal si todo l estuviera cargado, pero en la prctica en la memoria
principal slo se mantiene la parte que necesita procesarse en el momento).


RSS - tamao del proceso en la memoria principal del
sistema (generalmente son KBytes, cuando no lo sea, se indicar con una M detrs
del tamao).

TTY - nmero de terminal (consola) desde el que el


proceso fue lanzado. Si no aparece, probablemente se ejecut durante el arranque
del sistema.

STAT - estado del proceso (R run, T stopped, S signal


wait...).

START - cundo fue iniciado el proceso.

TIME - el tiempo de CPU (procesador) que ha usado el


proceso.

COMMAND - el comando que inici el proceso.


top
Es la versin a tiempo real de ps. Si lo ejecutamos en una terminal y sin opciones,
aparecer arriba informacin del sistema: usuarios, hora, informacin del tiempo de
funcionamiento de la mquina, nmero de procesos, uso de CPU, uso de memoria y uso del
swap. A continuacin tenemos una lista de procesos similar a la que nos mostraba ps con la
diferencia de que esta se actualiza peridicamente, permitindonos ver la evolucin del
estado de los procesos.
top
Tambin podemos filtrar la informacin de salida por usuario:
top u usuario
htop
Es la versin mejorada del comando top, con barras que muestran el estado de la
CPU y los procesos. Necesita instalacin previa.
apt-get install htop
htop
iotop
Muestra a tiempo real la lectura y escritura en disco de cada proceso. Mediante las
flechas derecha e izquierda cambiamos la columna por la que deseamos ordenar la lista.
Con la tecla "a" se ordena de mayor a menor la columna.
iotop
fuser
Este comando ofrece los PIDs de los procesos que estn utilizando un archivo en
concreto.
fuser -m /dev/sda1

Tareas en primer y segundo plano


El control de tareas es una interesante caracterstica que Bash nos ofrece. As, cada
proceso que se ejecute tiene asignado un nmero de tarea por parte de Bash (diferente al
PID).

Las tareas que podemos ejecutar desde una lnea de comandos pueden estar en
primer o segundo plano, y de hecho pueden pasar de un estado a otro. Una terminal
concreta est bloqueada cuando un proceso est en primer plano, mientras que si est en
segundo plano la terminal est libre y podemos teclear comandos en ella. Esto est ms
relacionado con la terminal (Bash) en s que con el concepto de proceso o tarea.
Normalmente al ejecutar un comando no recuperamos el prompt hasta que ste no termina.
La necesidad que nos surge es poder usar esa terminal sin abrir otra nueva a la vez que
nuestro comando sigue haciendo lo que tenga que hacer.
Cada vez que al presionar INTRO hay novedades en la gestin de tareas, Bash nos
informa de ello, mostrando entre corchetes el nmero de tarea y qu ha ocurrido con ella.
Por defecto, una tarea en segundo plano enviar su salida a la terminal actual.
Podemos usar las redirecciones para evitarlo.
&
En Bash, ponemos un proceso en segundo plano aadiendo un & al final del
comando. El comando se ejecuta mientras la terminal queda libre. Una vez ejecutada la
tarea nos indica entre corchetes el nmero de tarea y a continuacin el PID del proceso. Si
la terminal se cerrar el proceso se terminara tambin.
$ sleep 10 &
[1] 6190
$ (tras 10 segundos presionamos INTRO)
[1]+ Done sleep 10
nohup
Sirve para ejecutar cualquier comando sin que ste dependa de la terminal. Para ello
hay que indicar las redirecciones de entrada y salida estndar, si no el mismo programar te
indicar cules est utilizando.
nohup sleep 10 &> salida.log &
nohup ls R /etc &> salida.log
jobs
Muestra una lista de los trabajos en ejecucin en la terminal.
jobs
fg
Con este comando recuperamos una tarea de segundo plano o parada a primer
plano, para ello deberemos seguirlo de %N, donde N es el nmero de tarea que queremos
recuperar.
fg %2
Ctrl + Z
Con esta combinacin detendremos la tarea que se encuentre actualmente en
primer plano.
$ ls / -r
...
(Ctrl + Z)
[2]+ Detenido ls / -r

bg
Con este comando pasamos una tarea parada a segundo plano y se activara para
continuar su ejecucin, deberemos seguirlo de %N, donde N es el nmero de tarea que
queremos activar.
bg %2
Ctrl + C
Cancela totalmente una tarea o proceso que se encuentre en primer plano
ejecutndose actualmente.
kill
Este comando sirve para enviar una seal a un proceso, deberemos indicar la seal
enviada y el PID del proceso al que deseamos enviar la seal. El tipo de seal se indica
mediante una palabra asociada al mismo o con un cdigo numrico en aquellas seales
ms utilizadas. Los ms conocidos son:
TERM (15): Manda una seal para terminar de una manera limpia un proceso,
esperando a que guarde sus datos, para ello el proceso debe de estar preparado para
aceptar este tipo de seal. Esta ser la seal por defecto si no se indica ninguna.
kill 9156
kill TERM 9156
kill -15 9156
KILL (9): Manda una seal de terminar incondicionalmente, sin esperar a que el
proceso guarde sus datos.
kill KILL 9156
kill 9 9156
STOP: Manda una seal de detener a un proceso.
kill STOP 9156
Si en lugar de indicar un PID se puede indicar -1 para que afecte a todos los
procesos al alcance del usuario. Si somos root detendremos el sistema.
kill 9 -1
nice / renice
Sirve para modificar la prioridad por defecto de los procesos del sistema. La
prioridad va desde el valor -20 (priodad ms favorable) al valor 19 (prioridad menos
favorable).
La prioridad de un proceso la podemos conocer mediante la columna NI del
siguiente comando:
ps l
ps -axl
Con el comando sin parmetros obtenemos el valor por defecto de la prioridad con la
que ejecutamos los comandos:
nice
Para lanzar un proceso con una determinada prioridad utilizamos el siguiente
comando:
nice n 15 sleep 10
nice n -8 sleep 10
Para modificar la prioridad de un proceso que ya est en ejecucin utilizamos su
PID:

renice -15 8180


renice 10 8182

Monitorizacin de memoria
free
Proporciona informacin relativa a la cantidad de memoria fsica y swap, tanto libre
como usada en el sistema, el estado de los buffers y la memoria cach utilizada por el
ncleo. Con el parmetro m se muestra en megabytes.
free -m
pmap
Proporciona informacin referente a la utilizacin de memoria por parte de un
determinado proceso. Hay que indicarle el PID del proceso.
pmap 1732
vmstat
Informe grfico que contiene las estadsticas de la memoria.
vmstat
/proc/meminfo
Fichero de texto con la informacin de la memoria a tiempo real.
cat /proc/meminfo

Este artculo publicado en TicArte pertenece a Rafa Morales y est protegido bajo una
Licencia Creative Commons.
http://www.ticarte.com/contenido/gestion-de-procesos-y-memoria

Comandos para monitorear el sistema


Para monitorear el sistema, Linux posee un conjunto de comandos que permiten analizar y
obtener informacin relativa al estado del sistema. El anlisis de esta informacin permite al
administrador hacer una evaluacin del sistema y si es necesario efectuar las acciones
pertinentes.
El comando uptime: Este comando indica:
la hora actual
el tiempo que el sistema est en marcha
el nmero de usuarios conectados
la carga promedio del sistema para los ltimos 1, 5 y 15
minutos
#uptime
10:21:06 up 5 days, 19:11, 2 users, load average: 0.08, 0.03, 0.00
El comando top: El comando top permite una visin dinmica del sistema
en tiempo real. El comando muestra un listado de los procesos que se estn
ejecutando. Proporciona adems un gran nmero de datos como el uso de la
memoria y procesador
#top
top - 10:21:48 up 5 days, 19:11, 2 users, load average: 0.04, 0.03, 0.00
Tasks: 73 total, 2 running, 71 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 3632736k total, 1049496k used, 2583240k free, 359636k buffers
Swap: 1991920k total,
0k used, 1991920k free, 255052k cached
PID USER

PR NI VIRT RES SHR S %CPU %MEM

TIME+ COMMAND

28566 user 16 0 2196 1088 856 R 0.3 0.0 0:00.02 top


1 root

16 0 1564 532 464 S 0.0 0.0 0:01.21 init

free: el comando free muestra informacin relativa al uso de la memoria.

Si en algn momento quieren conocer y analizar el consumo de memoria


RAM que tiene su sistema operativo Linux pueden ejecutar el siguiente comando
en la terminal:
free -m -h

Sin embargo, el resultado mostrado por este comando es esttico, para


poder visualizar el uso de la memoria de manera dinmica, se le puede agregar el
comando watch:

#watch n 1 d free
Every 1,0s: free
totalusedfree shared buffers
Mem:3632736 1049556 2583180
-/+ buffers/cache: 434840 3197896
Swap:1991920
0 1991920

Wed Sep 23 10:22:47 2009


cached
0 359644 255072

La opcin n indica el tiempo de refrescamiento de la informacin y d para resaltar la


evolucin de los snapshots.
vmstat: proporciona informacin sobre el uso de la memoria virtual por los
threads del ncleo, el disco y la actividad del procesador.
#vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---r b swpd free buff cache si so bi bo in cs us sy id wa
1 0
0 2583032 359664 255088 0 0 1 14 63 22 1 0 99 0

iostat: muestra estadsticas sobre la lectura/escritura de los dispositivos

#iostat
Linux 2.6.15-23-386 (owlt02.owliancet.local)
23.09.2009
avg-cpu: %user %nice %system %iowait %steal %idle
0,53 0,03 0,04 0,07 0,00 99,33
Device:
sda

tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn


1,53
1,21
28,79 604661 14429814

du: muestra el espacio en disco usado por los directorios y sub-directorios,


por defecto, partiendo del directorio en uso .. Si se pasa el nombre de un directorio
como parmetro, el anlisis se har sobre ste.
df: muestra la cantidad de espacio libre en los diferentes dispositivos
montados o pasados como parmetro.
ps: muestra una lista de los procesos que se estn ejecutando y el nombre
del usuario actual.
who: muestra la lista de usuarios conectados.
http://es.ccm.net/faq/3435-linux-comandos-para-monitorear-el-sistema

Comando top
Para ejecutar top tal solo tenemos que abrir una terminal y ejecutar el siguiente comando:
top
Los resultados que nos mostrar este comando sern ms completos que el comando Free.
Este comando mostrar los mismos parmetros que el comando free, pero adems
ser capaz de mostrarnos la cantidad de memoria RAM y CPU consumida por cada
uno de nuestros procesos y programas que se ejecutan en nuestro ordenador.

Comando /proc/meminfo
Para visualizar la informacin a travs de meminfo tan solo tenemos que abrir una terminal
y ejecutar el siguiente comando:
cat /proc/meminfo
Despus de ejecutar el comando aparecer una larga lista que nos mostrar multitud de
parmetros de nuestra memoria RAM.

Entonces podramos colocar ps xauf y ste nos muestra la tabla de procesos en forma de
rbol cada padre con su hijo hasta llegar hasta el proceso final

http://www.proyectobyte.com/linux-es/curso-de-linux-460-gestion-de-procesos-y-archivos
http://www.hostingadvice.com/blog/linux-process-management-commands-know/
https://openwebinars.net/academia/2/curso-online-de-linux-preparacion-lpi-101/38/crearmonitorizar-y-finalizar-procesos/preview/

http://www.guru99.com/managing-processes-in-linux.html

Você também pode gostar