Anda di halaman 1dari 42

Monitoreo de CPU y memoria

Diseo y Evaluacin de Configuraciones Curso 2010-11

Miguel Telleria de Esteban


telleriam AT unican.es

Computadores y Tiempo Real http://www.ctr.unican.es

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Contenido

Conceptos

Notas sobre el planificador de Linux y la gestin de memoria Gnome-system-monitor Top y htop Ps /usr/bin/time

Herramientas de monitorizacin

Traceado de ejecucin con ftrace

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 2 de 42

ConceptossobreCPUymemoria

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Procesos y threads

En GNU/Linux la interfaz POSIX thread est ofertada por la librera NPTL integrada en la librera general GLIBC

Anteriormente (2004-05) se usaba linuxthreads La interfaz es 100% user-space.

Pero el kernel se ha adaptado a ella (syscalls clone y vfork).

A efectos de planificacin un pthread y un proceso son vistos iguales por el kernel

Cada uno tiene su PID. pthread_self() no tiene efecto en el kernel Cada uno tiene su prioridad y poltica de planificacin Cada uno tiene su mscara de afinidad de CPU El kernel mantiene estadsticas y relojes de ejecucin independientes

La diferencia est en el uso de la memoria


Miguel Telleria de Esteban telleriam AT unican.es) Pgina 4 de 42

3 Mar 2011

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Planificacin de CPU en Linux

Desde la versin 2.6.23 el kernel Linux redefini el planificador

Se pasa del antiguo O(1) a CFS: Complete Fairness Scheduler Es jerrquico llevado por clases de procesos

Caractersticas:

Primera prioridad: Clase real-time: Polticas SCHED_FIFO y SCHED_RR Clase normal (por defecto): Polticas SCHED_OTHER, SCHED_BATCH y SCHED_IDLE

En la clase normal Intenta dar a cada LWP un tiempo de CPU equitativo pero proporcional a su nivel de nice Adems realiza peridicamente un reparto de carga entre los diferentes cores

Mas info: documentation/scheduler en las fuentes del kernel

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 5 de 42

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Parmetros de planificacin de CPU en Linux

Policy: Poltica de planificacin

SCHED_OTHER o SCHED_NORMAL: Por defecto, round-robin con timeslice variable SCHED_RR: POSIX Real-Time: Round robin con timeslice fija SCHED_FIFO: POSIX Real Time: prioridades fijas

Las polticas SCHED_FIFO y SCHED_RR tienen prioridad sobre SCHED_NORMAL.

Nice: Avaricia del proceso

Slo se usa en SCHED_NORMAL, se ignora para real time Oscila entre: (-20 valor ms prioritario y 19), por defecto 0 Se usa en SCHED_RR y SCHED_FIFO, ignorada en SCHED_NORMAL Define en que CPU(s) un proceso admite ser ejecutado
Miguel Telleria de Esteban telleriam AT unican.es) Pgina 6 de 42

rt-priority: Nivel de preempcin

Mscara de afinidad

3 Mar 2011

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Parmetros de planificacin de CPU en Linux (2)

Normalmente por prioridad se suele entender el valor de nice

Puede ser de 0 a 39 (top) o de -20 a 19 (gnome-system-monitor) /proc/<pid>/sched


Existen 2 herramientas que distinguen entre nice y rt-priority

0 99: Prioridad realtime, task bajo SCHED_RR o SCHED_FIFO 100-139: Valor de nice, task bajo SCHED_OTHER Si es de SCHED_OTHER: devuelve el nice: rango de -20 a 19 Si es SCHED_RR o SCHED_FIFO devuelve la rt-priority: rango de 0 a 99

Comando chrt -p <pid>


La afinidad se representa mediante una mscara binaria

CPU 0: 1

CPU 1: 2

CPU 3: 4

CPU 4: 8

...

Valor 3: CPU's 0 y 1 Se obtiene con taskset -p <pid>


Miguel Telleria de Esteban telleriam AT unican.es) Pgina 7 de 42

3 Mar 2011

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Informacin de CPU sobre threads

Las diferentes herramientas que vamos a ver indican la siguiente informacin sobre cada LWP

Pid Ppid State

Identificador del LWP en el kernel y herramientas Identificador del LWP- padre en el kernel Estado del LWP (ver ms adelante)

Prioridad o nice: Diferentes representaciones de lo mismo WCHAN: Naturaleza de la ltima espera (WCHAN: Waiting Channel) Procesador: ltima CPU en la que se le vio correr Porcentaje de uso de la CPU Tiempo de ejecucin en user-mode Tiempo de ejecucin en kernel-mode Tiempo de bloqueo en espera Nmero de cambios de contexto Numero de operaciones I/O
Miguel Telleria de Esteban telleriam AT unican.es) Pgina 8 de 42

Mtricas

3 Mar 2011

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Estados de un LWP en el tiempo

En un instante dado un thread puede estar:

R S D T Z

Running Sleep: Suspendido en un wait() o sleep(). Se le puede interrumpir Uninterruptible sleep (tipicamente disk IO). Slo se le interrumpe con kill -9 Traceado en debug Zombie, difunto:
A la espera de que el padre les espere (o muera y sean esperados por init)

Adems puede tener las siguientes aadidos (ej ps):

< N L l s +

Valor nice negativo, (avaricioso) Valor nice positivo, (generoso) Mantiene pginas en memoria bloqueadas Tiene pthreads asociados Lider de sesin: Proceso que controla el terminal Pertenece al foreground-process-group
Miguel Telleria de Esteban telleriam AT unican.es) Pgina 9 de 42

3 Mar 2011

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Naturaleza de la espera de un LWP

Sacado de: http://askubuntu.com/questions/19442/what-is-the-waiting-channel-of-a-process

Valor de WCHAN 0 poll_* futex_wait_queue_me __sckb_recv_datagram sk_wait_data do_exit do_wait pipe_wait, unix_stream_data_wait hrtimer_nanosleep
3 Mar 2011

Situacin El LWP no est esperando I/O bloqueante o no (similar al select()): ratn, teclado, network sockets Esperando en un lock para memoria compartida. Recibiendo por un network socket En terminacin, el proceso es zombie El LWP est listo para ejecutar pero an no tiene la CPU Esperando datos de otro proceso Durmiendo a la espera de un timer
Miguel Telleria de Esteban telleriam AT unican.es) Pgina 10 de 42

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

CPU ocupada sin ningn LWP de usuario

Existen situaciones en el que el kernel tiene la CPU ocupada sin ejecutar ningn cdigo o servicio de usuario.

Atendiendo a una interrupcin hardware (ej. timer) Atendiendo a una interrupcin software (ej page-fault + swap) Ejecutando tareas de mantenimiento:

Actualizando pginas sucias de la page-cache al disco Balanceando la carga de los multicores

Realizando cambios de contexto No realizando nada (idle)

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 11 de 42

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Distribucin de la memoria fsica en Linux

Memoria para el kernel mismo (buffers):

El fichero vmlinuz se carga permanentemente en memoria Los mdulos se cargan bajo demanda (pero no se suelen descargar) Diferentes estructuras (inodos, descriptores de procesos, descriptores de pgina) se manejan con el slab allocator y se liberan cuando no se usan Stacks de threads del kernel Cdigo ejecutable compartido Stack bsico Ampliaciones del stack Heap Todo el I/O de disco pasa por memoria antes Ciertas partes de los ficheros se comparten con mmap() Para aumentar el tamao de la cache de disco y mejorar el rendimiento
Miguel Telleria de Esteban telleriam AT unican.es) Pgina 12 de 42

Memoria para los procesos de usuario (used)


Cach de disco (page_cache)


Linux intenta consumir el mximo de memoria disponible

3 Mar 2011

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Memoria swap

La swap es memoria de procesos mapeada en el disco Se usa en 2 contextos:

Caso 1: Cuando no podemos dar servicio a la demanda de memoria Caso 2: Cuando un proceso se queda inactivo durante mucho tiempo La cache de inodos La cache de disco (page_cache)

Antes de llegar al caso 1 se buscan otros recursos:


Si es necesario se fuerza una actualizacin de las pginas sucias.

Otras estructuras de datos no usadas en mucho tiempo. Se puede dar un valo bajo a sysctl.kernel.swapiness Se puede desactivar la swap

Si se quiere evitar llegar al caso 2:


Existe un recurso ms fuerte: El Out-Of-Memory killer


Miguel Telleria de Esteban telleriam AT unican.es) Pgina 13 de 42

3 Mar 2011

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Ejemplo (comando free)

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 14 de 42

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Memoria asociada a un proceso

Los procesos definen zonas de memoria

Puede estar mapeada a un fichero o ser annima Tiene asociados permisos de ejecucin, lectura y/o escritura Puede estar compartida o no con otros procesos
pmap 3070 08048000 0835c000 08384000 0a372000 aad3e000 ab5a9000 ae50f000 afd13000 b0513000 b0d9a000 b3d00000 b469b000 b4e9b000 b4f14000 3152K 160K 80K 42372K 8620K 48536K 4K 8192K 112K 48536K 2048K 8192K 484K 40K r-x-rw--rw--rw--r---r-------rw--r--sr---rw--rw--r-x-rw--/usr/bin/claws-mail /usr/bin/claws-mail [ anon ] [ anon ] /usr/share/icons/hicolor/icon-theme.cache /usr/share/icons/gnome/icon-theme.cache [ anon ] [ anon ] /usr/share/mime/mime.cache /usr/share/icons/gnome/icon-theme.cache [ anon ] [ anon ] /usr/lib/claws-mail/plugins/vcalendar.so /usr/lib/claws-mail/plugins/vcalendar.so
Pgina 15 de 42

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Herramientasdemonitorizacin

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Gnome-System-Monitor

Herramienta grfica de monitorizacin basada en GTK Bueno:

Intuitva Se ve en tiempo real la jerarqua de los procesos Se pueden hacer acciones sobre los procesos con un slo click Muestra informacin de ficheros abiertos, zonas de memoria No exporta ningn dato a texto o a fichero No muestra los pthreads No se puede congelar el resultado No se pueden reorganizar las columnas

Negativo:

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 17 de 42

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 18 de 42

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Trucos de gnome-system-monitor

Parando el ratn sobre una fila muestra la lnea de comandos Se pueden ordenar los procesos por consumo:

Consumo de CPU: %CPU Consumo de memoria (privada): Memoria

Se puede observar la jerarqua de los procesos Se pueden ordenar los procesos por usuario

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 19 de 42

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

top

Muestra informacin sobre memoria y uso de CPU


Tasks: 172 total, 3 running, 169 sleeping, 0 stopped, 0 zombie Cpu(s): 5.3%us, 3.4%sy, 0.0%ni, 91.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 2065240k total, 1724464k used, 340776k free, 265180k buffers Swap: 3903752k total, 39888k used, 3863864k free, 788740k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 7570 miguel 20 0 644m 150m 32m R 8 7.5 355609:00 firefox-bin 9292 miguel 20 0 135m 14m 10m S 3 0.7 355573:07 gnome-terminal 14531 miguel 20 0 424m 176m 80m S 1 8.7 355584:15 soffice.bin 16574 miguel 20 0 97476 21m 17m S 1 1.0 0:39.24 gnome-system-mo 16627 root 20 0 2464 1208 896 R 1 0.1 0:00.08 top 1519 avahi 20 0 3744 2208 1204 S 0 0.1 355573:23 avahi-daemon 2884 miguel 20 0 138m 15m 9840 S 0 0.8 355573:31 alarm-clock-app 2890 miguel 20 0 18556 2124 1808 S 0 0.1 0:09.82 gvfs-afc-volume 12524 miguel 20 0 138m 21m 13m S 0 1.0 355573:18 emacs23 15983 miguel 20 0 138m 20m 13m S 0 1.0 0:09.05 emacs23 1 root 20 0 2032 620 592 S 0 0.0 355572:54 init 2 root 20 0 0 0 0 S 0 0.0 355572:53 kthreadd 3 root RT 0 0 0 0 S 0 0.0 355572:53 migration/0 4 root 20 0 0 0 0 S 0 0.0 0:00.46 ksoftirqd/0 5 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/0 6 root RT 0 0 0 0 S 0 0.0 355572:53 migration/1

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 20 de 42

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Top: Opciones de arranque y uso interactivo

Opciones interesantes de arranque

-d ss.cc -p -H -b h f O o W

Periodo de refresco en centsimas de segundo <pid1>,<pid2> Restringir a los pids en cuestion Mostrar los pthreads que dependen de cada pid Modo batch

Teclas en tiempo de ejecucin interactivo

Ayuda Permite aadir o quitar campos Cambiar el criterio de ordenamiento Elegir el orden de disposicin de los campos mostrados Guardar la configuracin para futuras llamadas o modo batch

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 21 de 42

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Top: Valores mostrados por LWP

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 22 de 42

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Personalizacin de top

Conviene personalizar la apariencia de top y guardar las opciones pulsando -W

La configuracin se guarda en ~/.toprc Se mantiene en modo batch. Es la nica forma de asegurar que ciertos campos aparezcan en dicho modo. Activar cmdlines completas: c Seleccionar algunos campos que no aparecen por defecto:

Mis preferencias personales:


P (processor): f j RES (memoria residente): f Q eliminar la prioridad (f H) quedndome con el nice.

Colocar el campo processor antes del nice: o J J Activar sumario de CPU's separadas: 1 (el nmero 1)
Miguel Telleria de Esteban telleriam AT unican.es) Pgina 23 de 42

3 Mar 2011

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Top -b Modo batch

Usando la opcin -b genera un output parseable y peridico.

Muestra siempre los mismos campos (usando el fichero de opciones) Ignora cualquier input de teclado o stdin.

Invocacin clsica

nice <prioridad-nice> top -b -H -d <periodo ss.cc> -p <lista_de_pids>

Parmetros:

Swtiches: -H muestra pthreads Periodo: Elegir en funcin de la carga a medir y de la mtrica.


%CPU y tiempos: Periodos largos ya que los tiempo de ejecucin son acumulativos. Memoria: Periodos cortos ya que las muestras son instantneas

prioridad nice: Cuanto ms prioridad (valor ms pequeo) ms se forzar la periodicidad de muestreo frente a sobrecarga de CPU
Miguel Telleria de Esteban telleriam AT unican.es) Pgina 24 de 42

3 Mar 2011

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Salido de top modo batch


top - 10:46:12 up 17:15, 6 users, load average: 0.92, 0.53, 0.67 Tasks: 13 total, 1 running, 12 sleeping, 0 stopped, 0 zombie Cpu0 : 3.7%us, 1.3%sy, 0.0%ni, 94.2%id, 0.8%wa, 0.0%hi, 0.0%si, 0.0%st Cpu1 : 3.1%us, 1.1%sy, 0.0%ni, 95.7%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 2064860k total, 1877996k used, 186864k free, 312388k buffers Swap: 3903756k total, 0k used, 3903756k free, 924988k cached PID 6375 6307 6312 6313 6314 6315 6316

USER miguel miguel miguel miguel miguel miguel miguel

P 0 0 1 1 0 1 0

NI 0 0 0 0 0 0 0

VIRT 725m 725m 725m 725m 725m 725m 725m

RES 26m 26m 26m 26m 26m 26m 26m

SHR 13m 13m 13m 13m 13m 13m 13m

S %CPU %MEM R 100 1.3 S 0 1.3 S 0 1.3 S 0 1.3 S 0 1.3 S 0 1.3 S 0 1.3

TIME+ 34:28.08 0:00.00 0:04.43 0:00.00 0:00.00 0:00.11 0:00.00

COMMAND java java java java java java java

Consejos para parsear


Cada bloque de muestreo comienza en una linea con la palabra top Seguido del top est el timestamp del momento de muestreo Despus de la siguiente lnea vaca se encuentran las cabeceras de os campos Cada valor de campo de cada LWP est separado por espacios salvo el COMMAND al final.
Miguel Telleria de Esteban telleriam AT unican.es) Pgina 25 de 42

3 Mar 2011

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

htop

Versin mejorada de top basada en ncurses Ventajas sobre top

Es ms interactivo y resumido Permite seleccionar LWP's para cambiarles la prioridad, afinidad... Permite mostrar la jerarqua de procesos y pthreads Se puede llamar directamente a strace y ltrace para tracear llamadas del sistema y/o de libreras Si se redirige la salida a fichero aparecen cdigos de escape ANSI

Desventaja: No se puede exportar directamente el texto

Existen formas de filtrarlo (ej: paquete PERL)

Se puede copiar-pegar seleccionando con el ratn mientras se pulsa SHIFT


Miguel Telleria de Esteban telleriam AT unican.es) Pgina 26 de 42

3 Mar 2011

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Personalizacin de htop

Pulsando S (mayscula) se accede a la pantalla de personalizacin.

La personalizacin se mantiene entre ejecuciones en ./~htopr Mtricas: Aadir el hostname a la parte derecha del sumario Display options:

Mi personalizacin personal

Tree view ON Hide kernel threads OFF Display threads in different color ON Show custom thread names ON Highlight program basename ON Detailed CPU time ON

Columns: Aadir PROCESSOR, TPGID, quitar PRIORITY


Miguel Telleria de Esteban telleriam AT unican.es) Pgina 27 de 42

3 Mar 2011

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

ps: Queries sobre procesos


ps [opciones] [PID]

Comando para hacer queries sobre procesos

-A Todos los procesos -F Inclur todos los detalles -L Incluir los pthreads

Todos threads del sistema

ps -ALF

Grep is your friend!!

ps -ALF | grep `whoami`


3 Mar 2011 Miguel Telleria de Esteban telleriam AT unican.es) Pgina 28 de 42

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Cual usar?
Ventajas
top Modo batch Salida parseable Muestra todos los threads Buen modo interactivo Fcil de usar Interfaz con strace, lsof, ltrace Muestra todos los threads Muestra toda la informacin Grfico en tiempo real Re-ordenamiento con un click Muestra los mapas de memoria

Inconvenientes
No muestra todos los threads No tiene modo jerquico No muestra la afinidad No es fcil de parsear

Aplicacin
Muestreo peridico de pids conocidos Vigilancia interactiva Toma de comandos (prioridad, afinidad)

htop

ps

Opciones de comando complicadas No tiene muestreo peridico No muestra los pthreads No exporta los datos Poco flexible en visualizacin

Queries rpidas de estado

gnome sys monit

Grficos de consumo en tiempo real

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 29 de 42

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

/usr/bin/time

Esta herramienta mide tiempos de ejecucin asociados a una aplicacin distinguiendo tiempo de sistema y de usuario

/usr/bin/time -v <comando> <argumentos>

-v : Muestra el significado de cada campo

Nota: No confundir con el comando time de la shell bash,

Ejecutar siempre especificando el path completo

Informacin extra obtenida

Fallos de pgina de acceso a memoria Nmero de swaps Cambios de contexto

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 30 de 42

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Herramientas de informacin global


vmstat sar iostat mpstat

Todas ellas informan de parmetros globales a la plataforma

Ms orientadas a la configuracin del sistema

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 31 de 42

Traceadodeejecucin

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

FTRACE

Framework para tracear funcionalidades del kernel de linux Viene con unos set de traceadores predefinidos:

sched_switch: Cambios de contexto y activaciones Function: Entrada en funciones del cdigo de kernel graph_function: Entrada y salida de funciones de cdigo de kernel ... Se apoya en DEBUGFS

Ligero y poco agresivo

Requiere kernels recientes > 2.6.31

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 33 de 42

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Traceado de ejecucin de ftrace

Montar el debug fs en un directorio

Mount -t debugfs none /debug (/debug debe existir) Esto hace que aparezca /debug/tracing cat /debug/tracing/available_tracers echo sched_switch > /debug/tracing/current_tracer Echo 1 > /debug/tracing/tracing_enable

Consultar los traceadores que tenemos compilados en el kernel

Seleccionar sched_switch

Activar el traceado

Esperar Desactivar el traceado

Echo 0 >/debug/tracing/tracing_enable

El traceado est en el fichero /debug/tracing/trace


Miguel Telleria de Esteban telleriam AT unican.es) Pgina 34 de 42

3 Mar 2011

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Conversin a formato VCD (de Verilog)

Herman Ten Brugge ha hecho un programa en C que pasea el traceado y lo convierte en un fichero de seales electrnicas VCD.

http://www.spinics.net/lists/linux-rt-users/msg04268.html Thread parado: Estado Z (cable desconectado) Thread ejecutando: Estado 0 o 1 dependiendo de la CPU Tras eliminar los : de flush-8:0 :)

El mapeado es el siguiente:

El fichero se puede visualizar con gtkwave

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 35 de 42

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Informacin disponible en ftrace sched_switch

La salida de la traza contiene 2 tipos de lneas:

context switch (con un '==>')


0:120:R ==> [001] 2618:120:R java

<idle>-0 [001] 4569.372555:

src_cmdline src_cpu src_pid

timestamp (sg.us)

src_pid src_prio src_state

dest_cpu

dest_pid dest_cmdline dest_prio dest_state

wakeup (con un '+')


[000] 4569.372549: 2619:120:R + [001] 2618:120:R java

java-2619

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 36 de 42

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Lo que queremos conseguir

Por cada activacin:

Guardar el timestamp Agruparlos por PID y CPU Guardar comienzo, final y calcular la duracin Agruparlos por PID y CPU Diferenciar el estado de salida

Por cada trozo de ejecucin:


'R': La tarea la para el scheduler (fin de timeslice, expulsin por otra...) 'S': La tarea se bloquea (sleep, I/O...) pero es interrumpible 'D': La tarea se bloquea pero no es interrumpible (slo thread de Kernel) Nota: El estado de entrada siempre es R

Guardar que proceso se ejecut a continuacin


Miguel Telleria de Esteban telleriam AT unican.es) Pgina 37 de 42

3 Mar 2011

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Qu podemos obtener

Formatos de salida:

CSV: Lo necesario para estadsticas XML: Informacin completa SVG: Diagrama de ejecucin????

Existe trace-cmd y kernelshark que parecen cubrir esto

Lo que tenemos por ahora

parser_ftrace_sched_switch.pl <fichero.txt>

Requiere el paquete libtext-csv-perl Saca un fichero .csv con todos los procesos

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 38 de 42

Referencias

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Libros sobre performance en Linux

IBM Redbook: Eduardo CLIENDO, Takechica KUNIMASA, Linux Performance and Tuning Guidelines, 2007 Descargable libremente

Explica el funcionamiento del kernel en aspectos como memoria e I/O Detalla herramientas de lnea de comando y benchmarks estndares Da consejos de configuracin del kernel

Mark WILDING Dan BEHMAN, Self service Linux: Mastering the Art of Problem Determination Prentice Hall 2006. Bruce Perens Open Source series. ISBN 978-0-13-147751-3 Descargable libremente

Ms orientado a desarrollo y a traceado de bajo nivel Detalla el formato ELF y conceptos de debugueo Al final lista diferentes herramientas de monitorizacin y da un script para captura de datos.

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 40 de 42

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Ftrace

Ftrace est documentado en las fuentes del kernel

Documentation/trace/ftrace.txt

LWN.net tiene los siguientes artculos introductorios escritos por el propio autor

A look at Ftrace (Mar 2009) http://lwn.net/Articles/322666/ Debugging the kernel with Ftrace (Dic 2009) http://lwn.net/Articles/365835/ (Parte I) http://lwn.net/Articles/366796/ (Parte II) Trace-cmd front-end para ftrace (Oct 2010) http://lwn.net/Articles/410200/

Herman ten Brugge, Utilidad para parsear output de ftrace sched_switch. Descargable aqu
Miguel Telleria de Esteban telleriam AT unican.es) Pgina 41 de 42

3 Mar 2011

Computadores y Tiempo Real Universidad de Cantabria

Diseo y Evaluacin de Configuraciones

Monitoreo de CPU y memoria

Libros Genricos sobre el Kernel

Robert LOVE, Linux Kernel Development, 3rd Edition Addison-Wesley 2010, ISBN 978-0-672-32946-8

Abarcable y sencillo de leer. Punto de vista: Desarrollador que quiere aadir cdigo propio al kernel y utilizar algunos servicios sin interferir en el funcionamiento normal. Aunque es una edicin reciente, hay muchas novedades del kernel (ftrace, hrtimers, Xen) que no se han aadido. Un buen review del libro en LWN.net https://lwn.net/Articles/419855/

Daniel POVET, Marco CESATI, Understanding the Linux Kernel, 3rd Edition O'Reilly 2005 ISBN 978-0-596-00565-2. Disponible en google books. UTLK3

Muy completo pero denso de leer y digerir Punto de vista: Investigador o estudiante que quiere entender como funciona el kernel por dentro para diagnosticar problemas o copiar las tcnicas en otros mbitos. Aunque tiene ya 6 aos, la filosofa del kernel sigue siendo la misma, si bien los procedimientos de funcionamiento que detalla el libro pueden haber evolucionado

3 Mar 2011

Miguel Telleria de Esteban telleriam AT unican.es)

Pgina 42 de 42

Anda mungkin juga menyukai