PRACTICA 3B Monitorizacion Del Sistema Linux
PRACTICA 3B Monitorizacion Del Sistema Linux
ndice
1 2 Objetivo .........................................................................................................................................................3 Monitorizacin de procesos........................................................................................................................3 2.1 2.2 3 Monitorizacin de procesos existentes en el sistema. ..................................................................3 Monitorizacin de los procesos que consumen ms CPU en el sistema...................................4
Anlisis del mapa de memoria de un proceso..........................................................................................6 3.1 3.2 El archivo /proc/pid/maps. ............................................................................................................6 Descripcin de la funcionalidad que debe practicar el alumno...................................................7
Bibliografa ....................................................................................................................................................8
Pgina 2 de 8
1 Objetivo
El objetivo de est prctica es que el alumno pueda monitorizar los procesos existentes en una mquina con sistema operativo Linux y que sea capaz de observar los eventos del sistema significativos. Para ello se usarn dos mandatos de Linux: ps y top. Ambos mandatos son sencillos pero potentes en cuanto a la monitorizacin de proceso. Igualmente, en el tercer apartado (2.3) el objetivo principal es entender como est organizado el mapa de memoria de un proceso. Nivel: Introduccin
2 Monitorizacin de procesos.
El sistema operativo Linux tiene un sistema de archivos situado el directorio /proc. En este directorio se almacena informacin del sistema y de cada uno de los procesos y dentro del mismo se indica cunta memoria ha consumido el proceso, los archivos abiertos, sus conexiones, etc. Casi todos los mandatos de Linux relacionados con la monitorizacin local o remota ( ps, top,vmstat,etc.) obtienen su informacin de este directorio. La prctica tiene dos partes:
Pgina 3 de 8
USER
root root root root root root root root root root root root root root root bin root root root at root lp lp lp lp lp lp root root root root root root root root root root root root
VSZ
RSS TTY
STAT START
TIME COMMAND
0.0 500 248 ? S 11:29 0:04 init [5] 0.0 0 0 ? SW 11:29 0:00 [keventd] 0.0 0 0 ? SWN 11:29 0:00 [ksoftirqd_CPU0] 0.0 0 0 ? SW 11:29 0:00 [kswapd] 0.0 0 0 ? SW 11:29 0:00 [bdflush] 0.0 0 0 ? SW 11:29 0:00 [kupdated] 0.0 0 0 ? SW 11:29 0:00 [kinoded] 0.0 0 0 ? SW 11:29 0:00 [mdrecoveryd] 0.0 0 0 ? SW 11:29 0:00 [kreiserfsd] 0.0 0 0 ? SW< 11:29 0:00 [lvm-mpd] 0.0 0 0 ? SW 11:29 0:00 [eth1] 0.2 1456 600 ? S 11:29 0:00 /sbin/syslogd -a /var/lib/dhcp/dev 0.5 2324 1364 ? S 11:29 0:00 /sbin/klogd -c 1 -2 0.0 0 0 ? SW 11:30 0:00 [khubd] 0.2 1552 684 ? S 11:30 0:00 /sbin/resmgrd 0.1 1404 384 ? S 11:30 0:00 [portmap] 0.2 1504 568 ? S 11:30 0:00 /usr/sbin/ypserv 0.0 0 0 ? SW 11:30 0:00 [rpciod] 0.0 0 0 ? SW 11:30 0:00 [lockd] 0.2 1492 564 ? S 11:30 0:00 [atd] 1.2 6164 3248 ? S 11:30 0:00 /usr/sbin/cupsd 0.4 5880 1200 ? S 11:30 0:00 \_ lp1 39 doc kdeprint_RYv9LVS 1 1.9 8812 4956 ? S 11:30 0:00 \_ /usr/bin/perl/usr/lib/cups/filt 1.9 8808 4956 ? S 11:30 0:00 | \_ /usr/bin/perl/usr/lib/cups/ 1.9 8816 4960 ? S 11:30 0:00 | \_ /usr/bin/usr/lib/cups/ 0.4 4448 1204 ? S 11:30 0:00 | \_ sh -c level=0; echo -en 0.1 3404 380 ? S 11:30 0:00 | \_ cat 0.5 4064 1492 ? S 11:30 0:00 \_ smb://:@150.100.10.67/HP 4000 3 0.3 12100 776 ? S 11:30 0:00 /usr/sbin/nscd 0.3 12100 776 ? S 11:30 0:00 \_ /usr/sbin/nscd 0.3 12100 776 ? S 11:30 0:00 \_ /usr/sbin/nscd 0.3 12100 776 ? S 11:30 0:00 \_ /usr/sbin/nscd 0.3 12100 776 ? S 11:30 0:00 \_ /usr/sbin/nscd 0.3 12100 776 ? S 11:30 0:00 \_ /usr/sbin/nscd 0.3 12100 776 ? S 11:30 0:00 \_ /usr/sbin/nscd 0.2 5932 720 ? S 11:30 0:00 /usr/sbin/ypbind Figura 1. Pantalla de salida de ps axuf 0.2 5932 720 ? S 11:30 0:00 \_ /usr/sbin/ypbind 0.2 5932 720 ? S 11:30 0:00 \_ /usr/sbin/ypbind 0.2 5932 hay 720en ? ejecucin S en 11:30 0:00 \_ /usr/sbin/ypbind procesos el sistema?
Cuntos usuarios hay conectados al sistema? Cuntos procesos son del usuario root? Cuntos navegadores hay abiertos? Describa una jerarqua de procesos de un usuario conectado.Qu shell est ejecutando? Cul es el proceso que ms tiempo de CPU ha consumido? Cul es el proceso que ms espacio de memoria ha consumido? Qu procesos llevan ms tiempo arrancados?Qu fecha y hora arranc el sistema?
Pgina 4 de 8
Tasks: 89 total, 3 running, 86 sleeping, 0 stopped, 0 zombie Cpu(s): 11.6% user, 2.0% system, 0.0% nice, 86.4% idle Mem: 254376k total, 251032k used, 3344k free, 28688k buffers Swap: 514040k total, 0k used, 514040k free, 111696k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ Command 1546 root 15 0 145m 16m 2920 R 10.9 6.8 0:29.34 X 1 root 15 0 248 248 212 S 0.0 0.1 0:04.12 init 2 root 15 0 0 0 0 S 0.0 0.0 0:00.04 keventd 3 root 34 19 0 0 0 S 0.0 0.0 0:00.02 ksoftirqd_CPU0 4 root 15 0 0 0 0 S 0.0 0.0 0:00.01 kswapd 5 root 25 0 0 0 0 S 0.0 0.0 0:00.00 bdflush 6 root 15 0 0 0 0 S 0.0 0.0 0:00.00 kupdated 7 root 25 0 0 0 0 S 0.0 0.0 0:00.00 kinoded 9 root 25 0 0 0 0 S 0.0 0.0 0:00.00 mdrecoveryd 12 root 15 0 0 0 0 S 0.0 0.0 0:00.01 kreiserfsd 82 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lvm-mpd 496 root 15 0 0 0 0 S 0.0 0.0 0:00.00 eth1 549 root 15 0 600 600 504 S 0.0 0.2 0:00.01 syslogd 552 root 15 0 1364 1364 428 S 0.0 0.5 0:00.06 klogd 601 root 22 0 0 0 0 S 0.0 0.0 0:00.00 khubd 802 root 15 0 684 684 592 S 0.0 0.3 0:00.00 resmgrd 816 bin 15 0 384 384 316 S 0.0 0.2 0:00.00 portmap 861 root 24 0 568 568 496 S 0.0 0.2 0:00.00 ypserv 918 root 15 0 0 0 0 S 0.0 0.0 0:00.00 rpciod 919 root 15 0 0 0 0 S 0.0 0.0 0:00.00 lockd 1048 at 15 0 564 564 500 S 0.0 0.2 0:00.00 atd 1062 root 15 0 3248 3248 1372 S 0.0 1.3 0:00.26 cupsd 1088 root 15 0 780 776 652 S 0.0 0.3 0:00.02 nscd 1089 root 15 0 780 776 652 S 0.0 0.3 0:00.00 nscd 1090 root 15 0 780 776 652 S 0.0 0.3 0:00.00 nscd 1094 root 15 0 780 776 652 S 0.0 0.3 0:00.01 nscd 1150 root 19 0 724 720 604 S 0.0 0.3 0:00.00 ypbind
Figura 2 Esta segunda parte tiene cuatro apartados: Control de la situacin del sistema. En la cabecera de salida del mandato top se muestran datos de fecha de monitorizacin y de la situacin del sistema. Describa en la memoria de la prctica qu indican estos datos.Qu ha hecho la computadora la mayor parte del tiempo? Monitorizacin del efecto de un programa que consume CPU. Programe una pequea aplicacin en C que incluya un bucle infinito. Ejectela y observe su efecto en la pantalla de top. Monitorizacin del efecto de un programa que consume memoria. Programe una pequea aplicacin en C que incluya un bucle que consuma mucha memoria con malloc y no la libere. Ejectela y observe su efecto en la pantalla de top. Monitorizacin del efecto de un programa que genera entradas. Programe una pequea aplicacin en C que incluya un bucle que pida un entero por la entrada estndar. Ejectela y observe su efecto en la pantalla de top.
Pgina 5 de 8
3 3.1
Pgina 6 de 8
Cada lnea del archive describe una regin del mapa de memoria del proceso. Por cada regin aparece la siguiente informacin: Rango de direcciones virtuales de la regin (en la primera lnea, por ejemplo, de la direccin 08048000 hasta 0804a000. Proteccin de la regin: tpicos bits r (permiso de lectura), w (permiso de lectura) y x (permiso de ejecucin). Tipo de compartimiento: p (privada) o s (compartida). Hay que resaltar que en el ejemplo todas las regiones son privadas. Desplazamiento de la proyeccin en el archivo. Por ejemplo, en la segunda lnea aparece 00001000 (4096 en decimal), lo que indica que la primera pgina de esta regin se corresponde con el segundo bloque del archivo (o sea, el byte 4096 del mismo). Los siguientes campos identifican de forma nica al soporte de la regin. En el caso de que sea una regin con soporte, se especifica el dispositivo que contiene el archivo (en el ejemplo, 08:01) y su nodo-i (para el mandato cat, 65455), as como el nombre absoluto del archivo. Si se trata de una regin sin soporte, todos los campos estn a cero.
A partir de la informacin incluida en ese ejemplo, se puede deducir a qu corresponde cada una de las nueve regiones presentes en el ejemplo de mapa de proceso: Cdigo del programa. En este caso, el mandato estndar cat. Datos con valor inicial del programa, puesto que estn vinculados con el archivo ejecutable. Datos sin valor inicial del programa, puesto que se trata de una regin annima que est contigua con la anterior. Cdigo de la biblioteca ld, encargada de realizar todo el tratamiento requerido por las bibliotecas dinmicas que use el programa. Datos con valor inicial de la biblioteca ld. Cdigo de la biblioteca dinmica libc, que es la biblioteca estndar de C usada por la mayora de los programas. Datos con valor inicial de la biblioteca dinmica libc. Datos sin valor inicial de la biblioteca dinmica libc. Pila del proceso.
Pgina 7 de 8
variables globales con y sin valor inicial, as como variables locales (por ejemplo, variables definidas dentro de la funcin main), tanto de tipo escalar como vectores. Adems, el programa usa una variable externa al mdulo. Concretamente la variable global errno (#include <errno.h>). El programa imprime su mapa de memoria junto con las direcciones de estas variables, incluida errno, y de la propia funcin main. Una vez ejecutado, se analizar el mapa impreso identificando a que regin pertenecen las distintas variables y la propia funcin main. Recomendacin general Antes de empezar con la monitorizacin de todo el sistema de archivos, se recomienda monitorizar acciones sencillas. La ejecucin de mandatos de Linux es un buen ejemplo. Para conocer el comportamiento de los mandatos propuestos se puede consultar el manual de Linux para los mismos (man ps y man top, respectivamente).
4 Bibliografa
A.Afzal. Introduccin a Unix. Prentice-Hall, 1997. C.Newham y B.Rosenblatt. Learning the bash shell. O'Reilly, 1995. S.R. Bourn. The UNIX System. Addison-Wesley, 1983. J. Carretero Prez. Sistemas operativos: una visin aplicada, Mc Graw Hill, 2001. Resto de la bibliografa de la asignatura. Pginas del man.
Pgina 8 de 8