Monitorización de Procesos - Sinbucles

Descargar como odt, pdf o txt
Descargar como odt, pdf o txt
Está en la página 1de 11

Monitorización de procesos - Práctica 1

Linux dispone de ciertos comandos para monitorizar el sistema. La monitorización


significa que se va a llevar un seguimiento de las actividades que suceden en el
mismo.

El comando ps
Este comando muestra la información de los procesos activos en el sistema. Si
ejecutamos el comando sin argumentos se muestran los procesos con el mismo
identificador y el mismo terminal de control (esto es, los procesos de usuario
ejecutados en ese terminal). Hay muchas opciones con las que podemos controlar
el comportamiento de la la orden ps (consultar la página del manual man ps).
Algunas de las órdenes más importantes son:

● -e, Muestra información sobre todos los procesos del sistema.


● -c, Da información sobre las propiedades de planificación del proceso.
● -l, Información extendida sobre los procesos.
● -u, Información sobre los procesos del usuario especificado.

Significado de los distintos campos que muestra el comando:


● S: Estado en que se encuentra el proceso (O: En ejecución, S:Sleeping, R:
En la cola de ejecución del planificador, Z: Zombie proceso ha terminado sin
que el pade hiciera la llamada wait(), T: Proceso detenido).
● UID: Identificador del usuario que arrancó el proceso.
● PID: Identificador del proceso.
● PPID: Identificador del proceso padre.
● CLS: Clase de planificación.
● PRI: Prioridad del proceso (mayor prioridad, mayor número).
● RSS: Tamaño en memoria del proceso en Kilobytes.
● SZ: Tamaño del proceso en páginas de memoria virtual.
● WCHAN: Dirección del evento al que espera el proceso si está durmiendo.
● TTY: Terminal que controla el proceso.
● TIME: Tiempo de ejecución acumulado.
● CMD: Comando con el que se arrancó el proceso.

1/11
Ejercicios sobre el comando ps
1. Abre un terminal en tu ordenador. Ejecuta en él un par de procesos en
background como:
xclock&
xeyes&

2. Ejecuta el comando “ps -l” de manera que muestre información sobre todos
los procesos que se están ejecutando en el sistema. Copia la salida en tu
hoja de respuestas.

2/11
3. Ejecuta el comando “ps aur” desde el terminal. ¿por qué no aparecen los
procesos “xclock y xeyes”? Cambiando sólo una letra del anterior comando te
aparecerán todos los procesos iniciados en el sistema ¿qué comando debes
escribir? ¿qué porcentaje de memoria y de CPU consumen “xclock” y
“xeyes”? Describe el resto de información que se nos aporta sobre estos dos
procesos.

Escribiendo ps aur, nos muestra los procesos en ejecución. No aparecen


dichos procesos ya que están ejecutados en segundo plano (porque los
ejecutamos con “&”)

En cambio, con el comando ps aux:

3/11
Si escribimos ps aux | grep ‘xclock\|xeyes’, buscamos por esos procesos y nos
aparece lo siguiente:

La tercera columna nos enseña el porcentaje que usa la CPU y la cuarta


columan muestra el porcentaje en uso de la memoria

Como podemos ver xclock muestra 0.0% en ambos y xeyes 0.4% en %CPU

El resto de columnas son, en orden:


• USER = El usuario que tiene el proceso
• PID = id del proceso
• VSZ = El uso de memoria virtual
• RSS = El tamaño de memoria que usa el proceso
• TTY = Control tty
• STAT = Estado del proceso (S de ‘sleeping’ en este caso)
• START = La hora en la que se ejecutó
• TIME = El tiempo que lleva ejecutado
• COMMAND = El comando ejecutado

4. Averigua por qué en el comando “ps” hay opciones que empiezan por guión y
otras que no ¿son compatibles (las puedo combinar)? ¿existe otro conjunto
de comandos?

5. Existe un conjunto de opciones en el comando “ps” que permite mostrar los


procesos en forma de árbol. Escribe el comando correspondiente ¿Existe otro
comando distinto a “ps” que permita hacer lo mismo?

Usando Pstree nos muestra los procesos pero en forma de árbol:

4/11
No he encontrado otro comando que haga lo mismo

6. Si quiero que la lista de procesos que me aparece con “ps” esté ordenada por
la hora de inicio de los procesos, ¿qué opción debo de escribir?

Para ordenarlo por la hora de inicio se puede usar la opción -T:

7. ¿y si quiero que esté ordenada por el porcentaje de uso de CPU?

Para ordenarlo por la hora de inicio se puede usar la opción –sort -pcpu:

5/11
El comando top
Este comando se usa para obtener la actividad de un procesador en tiempo real.
Muestra el uso de la CPU de los procesos, el uso de la memoria por los procesos y
cuanto tiempo llevan ejecutándose.

Ejercicios sobre el comando top

8. Abre un terminal y ejecuta el comando “top” ¿en base a qué campo se


ordenan los procesos?

Se ordena por % de CPU

9. Pega lo que muestra el comando “top”. Si es necesario para que se vea bien
pega un pantallazo de lo que aparece en el terminal.

6/11
10. ¿Cuál es el uso de la CPU del sistema?

4,8%

11. ¿De cuánta memoria dispone tu sistema?

MiB Memoria: 15877,6 total 7209 libre

12. ¿Cuánta memoria swap?

MiB Swap: 2024 total 2024 libre

13. ¿Qué proceso es el que consume más CPU?

El proceso Xorg

14. Estando ejecutando el comando “top”, podemos pulsar la tecla “h”. Observa
que si haces esto aparece una lista de opciones que están disponibles.
Revísala y prueba algunas de ellas. Anota qué opciones has probado.

Z- añade color
m- camba el overlay de la info
B- activa el modo negrita

7/11
15. Las siguientes opciones te pueden resultar interesantes:
● top d [t]: se toman datos cada t segundos.
● top b: muestreo por lotes.
● top u [user]: para obtener los datos de los procesos de un determinado
usuario.

Prueba un comando que permita tomar datos en background de tu usuario


cada 10 segundos y guarde la salida en un archivo. Escribe el comando.

El comando time
El comando “time” mide el tiempo de ejecución de un programa. Toma la medida del
tiempo durante el que se ha estado ejecutando la aplicación (real), y de los tiempos
de ejecución de código en modo usuario (user) y en modo supervisor (sys), como
resultado de llamadas del programa al sistema operativo, de modo que :

Tiempo de espera = real-user sys

Mediremos tiempo de ejecución de programas más adelante con la programación de


hilos.

El comando xload
Este comando muestra gráficamente el promedio de carga del sistema.

16. Ejecuta “xload&”. Prueba su funcionamiento. Captura una pantalla.

Ejecuta una gráfica

8/11
El comando vmstat (Virtual Memory Statistic)
A través de él podemos obtener datos del estado de los procesos, la utilización de la
CPU, la utilización de la memoria, el tráfico en los discos, etc. Veremos, a
continuación, un breve resumen de la funcionalidad de este comando.

La sintaxis de la llamada es la siguiente

vmstat <opciones><intervalo de medición><nº de muestras>

La primera línea que devuelve el comando es una media de los valores tomados
desde el último arranque del sistema y , generalmente, no debe tenerse en cuenta.
Un listado típico tras la ejecución de “vmstat 5 5” (lo ejecuta 5 veces cada 5
segundos)

A continuación tienes una explicación de lo que significa cada una de las columnas:

● Procs:
r(run queue): Número de procesos esperando por procesador.
b(blocked). Procesos que están bloqueados, que dieron paso a otros
procesos para que se continúe en ejecución.
● Memory:
swapped: Cantidad de procesos completos pasados (swapped) a disco.
free: Cantidad de memoria física desocupada (no usada), libre para ser
usada.
buff: Memoria en KB de datos que están esperando para ser copiados a
disco.
cache: Es el tamaño en KB de los datos que han sido leídos desde el disco.
Si una aplicación necesita leer estos datos de nuevo, este cache permitirá
cargarlos sin acceder a disco.
● Swap:
si(swapping in): Cantidad de memoria pasada desde disco a memoria (el
proceso se llama swapping).
so(swapping out): Cantidad de memoria pasada a disco desde memoria (el
proceso se llama swapping).
● IO(In/Out):

9/11
bi(block in): Bloques recibidos desde un dispositivo de bloque (La estructura
del disco trabaja en bloques de 8192b, 512b o como lo hayamos definido).
bo(block out): Bloques recibidos hacia un dispositivo de bloque.
● System:
in(interruptions): Interrupciones por segundo, incluido los ticks del reloj del
procesador (para que puedas ver cómo se manejan las interrupciones,
ejecuta el vmstat y mueve rápidamente el mouse, ahora mira la columna, el
sistema operativo cuenta cada movimiento del mouse, así como pulsar
teclas, etc.)
cs(context switch): Número de cambios de contexto(context switch) por
segundo (un proceso debe dejar el procesador para darle paso a otro
proceso, por agotar su quantum por ejemplo).
● CPU:
us (user): Gasto de procesos en espacio usuario (todos los procesos de
aplicaciones de usuarios, desde una base de datos, hasta un navegador).
sy(system): Gasto de procesos en espacio kernel (todo lo que forma el
sistema operativo base).
Id(idle): Tiempo en el que el procesador está sin ser usado (100% significa
que el procesador no tiene carga, 20%, hay un 80% de procesos que lo están
ocupando).
wa: Tiempo de espera para I/O (ejemplo procesos esperando para ser
copiados en disco duro, pasados a memoria, etc.)

Ejercicios sobre el comando vmstat

17. Ejecuta en un terminal el comando “vmstat” con un período de 5 segundos y


con 10 repeticiones ¿qué comando debes escribir? Usaremos vmstat 5 10

10/11
18. ¿Tienen algún interés los datos ofrecidos por la primera línea? Razona la
respuesta.

19. Comprueba si es cierto que al mover el ratón se produce un incremento del


número de interrupciones. ¿En qué columna se produce dicho cambio?

20. El comando “top” también nos ofrecía información sobre la memoria del
sistema, comprueba qué información acerca de la memoria se ofrece en
ambos comandos a la vez y contesta si sus valores coinciden.

11/11

También podría gustarte