herramientas de monitorización en linux · pdf fileherramientas propias del sistema ......

8
Herramientas de monitorización en Linux Contenido Introducción .......................................................................................................................... ................1 Herramientas propias del sistema .................................................................................................. .......1 Herramientas SYSSTAT......................................................................................................... ..............4 Monitorización de programas .......................................................................................................... .....7 Monitor del sistema .................................................................................................... ..........................7 Introducción Carga del sistema (system load average): número medio de procesos en la cola del núcleo. Monitorizar implica perturbar el sistema que se monitoriza, esta perturbación se denomina sobrecarga (overhead), y se define como:  Sobrecarga= Tiempo de ejecución del monitor Intervalo de medida Herramientas propias del sistema uname: información básica sel sistema. uname -a uptime: refleja la hora del sistema, el tiempo que leva en funcionamiento y el número de usuarios. Muestra también la carga media del sistema durante el último minuto, los últimos cinco y los últimos diez minutos. Un sistema en operación normal debe mostrar una carga igual o inferior a 3, aunque se deben tener en cuenta la configuración y el tipo de programas en ejecución. 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 top: sirve para saber que procesos hay en ejecución y cuanta memoria consumen., se actualiza cada tres segundos. La primera línea de información es como uptime. A continuación se indica el número de procesos y su clasificación según su estado:

Upload: trannga

Post on 06-Feb-2018

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Herramientas de monitorización en Linux · PDF fileHerramientas propias del sistema ... disco, interrupciones, cambios de contexto y utilización del procesador. La sintaxis de esta

Herramientas de monitorización en Linux

ContenidoIntroducción..........................................................................................................................................1Herramientas propias del sistema.........................................................................................................1Herramientas SYSSTAT.......................................................................................................................4Monitorización de programas...............................................................................................................7Monitor del sistema..............................................................................................................................7

Introducción

Carga del sistema (system load average): número medio de procesos en la cola del núcleo.

Monitorizar implica perturbar el sistema que se monitoriza, esta perturbación se denomina sobrecarga (overhead), y se define como:  

Sobrecarga=Tiempo de ejecución del monitor

Intervalo de medida

Herramientas propias del sistema

uname: información básica sel sistema.uname ­a

uptime: refleja la hora del sistema, el tiempo que leva en funcionamiento y el número de usuarios.Muestra también la carga media del sistema durante el último minuto, los últimos cinco y los últimos diez minutos. Un sistema en operación normal debe mostrar una carga igual o inferior a 3, aunque se deben tener en cuenta la configuración y el tipo de programas en ejecución.

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

top: sirve para saber que procesos hay en ejecución y cuanta memoria consumen., se actualiza cada tres segundos.

La primera línea de información es como uptime.A continuación se indica el número de procesos y su clasificación según su estado:

Page 2: Herramientas de monitorización en Linux · PDF fileHerramientas propias del sistema ... disco, interrupciones, cambios de contexto y utilización del procesador. La sintaxis de esta

● sleeping● running● zombies● stopped

La utilización media del procesador, clasificaco según el tipo de código:● user● system● nice● idle

Aporta inforamción de cada proceso, en particular su PID (número de identificación), su propietario (USER), su nivel de prioridad (PRI) y valor del parámetro nice (NI), la memoria física ocupada (SIZE) y la compartida (SHARE), su estado (STAT) que puede ser: R (running) ­ S (sleeping) ­ Z (zombie) ­ D (uninterrumpible sleep) ­ T (stopped), con los modificadores: W (swapped out) ­ N (running niced) ­ > (memory soft limit exceeded ­ < (hight niced level). También informa acerca del último procesador usado (LC) y del porcentaje de uso del procesador (%CPU), de uso de la memoria física (%MEM) del tiempo de procesador usado por el roceso (TIME) y del nombre del comando (COMMAND).

Algunos modificadores son:● 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.

Permite el uso de comandos interactivos, como:● <Spacebar>: refresco de la información.● f: selección de parámetros a mostrar.● o: selección del orden ten el que se muestra la información.● A: modo alternativo de ofrecer los resultados.

ps: muestra los procesos lanzados en el sistema por el usuario que ejecuta el comando ps. Aporta como información su PID, el número de terminal (TTY), el tiempo de uso de CPU (TIME) y el combre del comando (CMD).

Se puede usar con ciertos modificadores:● ps ­e: permite visualizar caracteristicas de todos los procesos.● ps ­axjf: presenta los procesos ejecutados en una estructura de  árbol.● ps ­t ttylist: procesos lanzados en un determinado terminal.● ps ­u [user]: procesos lanzados por un determinado usuario.● ps ­o [format]: presenta la información en un formato específico, por ejemplo:

ps ­eo pid,user,args –sort user

vmstat: muestra información relativa al sistema de memoria, incluyendo datos sobre la memoria física y virtual, la actividad de intercambio entre memoria y disco (swapping), transferencias con el disco, interrupciones, cambios de contexto y utilización del procesador.

Page 3: Herramientas de monitorización en Linux · PDF fileHerramientas propias del sistema ... disco, interrupciones, cambios de contexto y utilización del procesador. La sintaxis de esta

La sintaxis de esta orden es: vmstat t n. Donde t indica el tiempo transcurrido, normalmente en segundos, entre dos muestras consecutivas, y n es el número de muestras.La primera línea de información es irrelevante, ya que se calculan desde el instante en el que se inició el sistema hasta el momento actual.La información de este comando es:

r  – procesos en espera de ser ejecutados.b  – procesos durmiendo ininterrumpidamente.w – procesos intercambiados.swpd – memoria virtual en uso.free – memoria física libre.buff – memoria usada como buffer.cache – memoria usada como caché.si – memoria intercambiada desde disco (KB/s)so – memoria intercambiada hacia disco. (KB/s)bi – bloques de memoria por segundo enviados a disco.bo – bloques de memoria por segundo enviados desde disco .in – interrupciones por segundo.cs – cambios de contexto por segundo.us – uso del procesador ejecutando código de usuario.sy – uso del procesador ejecutando código de sistema.id – porcentaje de tiempo con el procesador ocioso.

Se puede usar con algunos modificadores:● ­a: aporta información acerca de la memoria activa e inactiva.● ­f: da el número de tareas creadas desde el arranque.● ­d: da estadísticas del uso de los discos.

free: permite obtener información del estado de la memoria del sistema, tanto de la memoria física como de la del archivo de intercambio. 

Presenta el valor de la memoria total disponible, la que se encuentra en uso y libre, la memoria compartida que se encuentra en uso, número de buffers utilizados y tamaño de la caché. Puede utilizarse para capturar información de forma periódica: free ­s t, donde t indica el tiempo entre muestreos consecutivos.

df: permite monitorizar el sistema de archivos.Muestra la cantidad de espacio disponible en cada unidad montada del sistema de archivos.  El espacio se muestra en bloques de 1K por defecto.Algunos de sus modificadores son:

● ­h: mejora la legibilidad al usar unidades más grandes.● ­l: muestra solo las unidades locales.

du: muestra la capacidad ocupada por un directorio concreto.Algunos de sus modificadores son:

Page 4: Herramientas de monitorización en Linux · PDF fileHerramientas propias del sistema ... disco, interrupciones, cambios de contexto y utilización del procesador. La sintaxis de esta

● ­h: mejora la legibilidad.● ­all muestra información de todos los directorios.

hdparm: permite conocer los parámeros más importantes de un disco y cambiar algunos de sus valores de configuración.

Está diseñada de forma específica para discos con interfaz IDE. Puede usarse sin modificadores, de la forma: hdparm /dev/sda1Algunos de sus modificadores son:

● ­g: para obtener la geometría del disco. Viene dada mediante la tripleta: cilindros/cabezales/sectores, así como el número total de sectores en el dispositivo y el desplazamiento desde el principio del disco 

● ­t: velocidad de lectura en sectores secuenciales.● ­T: velocidad de lectura de la cache, no hay acceso al disco físico.

w: permite obtener información acerca de los usuarios que se encuentran conectados al sistema y sus procesos. 

Ofrece datos como la hora, el tiempo que lleva el sistema activo, cuantos usuarios se encuentran en el sistema y la carga del sistema como en uptime. La información que se ofrece de cada usuario es el nombre de acceso, el número de terminal, el host y los tiempos de acceso, espera y CPU usado por todos los procesos asociados al terminal (JCPU) y de los procesos del usuario (PCPU), así como los comandos ejecutados.

Herramientas SYSSTAT

Conjunto de herramientas destinadas a monitorizar el rendimiento en máquinas Linux.

mpstat: recoge estadísticas del rendimiento de cada procesador del sistema.Permite el uso de parámetros para definir la cantidad de tiempo entre cada toma de datos y el número de informes que se desean: mpstat time reports.La información de la cabecera hace referencia a:

● CPU : número asignado al procesador.● %user : porcentaje de utilización a nivel de usuario (applicaciones).● %nice : porcentaje de uso con prioridad nice.● %sys : uso a nivel de sisema● %iowait : en espera tras enviar una salida a un dispositivo E/S.● %irq : en servicio a interrupciones del hardware.● %soft : en servicio a interrupciones del software.● %steal : servicio a peticiones de recurso de otro procesador.● %idle : tiempo en espera de respuesta de un dispositivo E/S.● intr/s : número total de interrupcione recibidas por segundo.

Permite el uso de modificadores como:

Page 5: Herramientas de monitorización en Linux · PDF fileHerramientas propias del sistema ... disco, interrupciones, cambios de contexto y utilización del procesador. La sintaxis de esta

● ­P cpu_number: información de una CPU concreta.● ­P ALL: todas las CPUs

iostat: genera informes de la actividad de ls CPU y de la actividad de E/S en dispositivos. Se usa para monitorizar las entradas y salidas en los dispositivos del sistema, observando el tiempo durante el cual los dispositivos permaneces activos en relación con sus tiempos medios de transferencia de datos, Esta información puede ser usada para cambiar la configuración del sistema para mejorar el balance entradas/salidas en los discos físicos.  La primera línea de información es similar a la ofrecida por mpstat y permite el uso de parámetros para definir la cantidad de tiempo entre cada toma de datos y el número de informes que se desean: iostat time reports.Con respecto a los dispositivos, la información que ofrece es:

● Device: nombre del dispositivo o partición● tps : número de transferencias por segundo. Cada transferencia puede ser de 

entrada o salida y de tamaño indeteerminado.● Blk_read/s : cantidad de datos leidos por segundo, expresado en bloques por 

segundo. Cada bloque tiene un tamaño de 512 bytes, aunque este parámetro depende del kernel.

● Blk_wrtn/s : cantidad de datos escritos por segundo, expresado en bloques por segundo.

● Blk_read : número total de bloques leídos.● Blk_wrtn : número total de bloque escritos.● kB_read/s : cantidad de datos leídos, expresada en kilobytes por segundo.● kB_wrtn/s : cantidad de datos escritos, expresada en kilobytes por segundo.● kB_read : número total de kilobytes leídos.● kB_wrtn : número total de kilobytes escritos.● MB_read/s ● MB_wrtn/s ● MB_read ● MB_wrtn ● rrqm/s : número total de peticiones de lectura por segundo que entraron en la 

cola del dispositivo.● wrqm/s : idem de escritura.● r/s :  número total de peticiones de lectura por segundo servidas por el 

dispositivo.● w/s : idem de escritura.● rsec/s : úmero de sectores leídos por segundo.● wsec/s : idem escritos● rkB/s : número de kilobytes leídos or segundo.

Permite el uso de parámetros, algunos de ello son:● ­c: información solo de CPU.● ­d: información sólo de dispositivos.● ­k: ussa kilobytes.

Page 6: Herramientas de monitorización en Linux · PDF fileHerramientas propias del sistema ... disco, interrupciones, cambios de contexto y utilización del procesador. La sintaxis de esta

● ­m: usa megabytes.● ­p: muestra información de las particiones.

sar: es una herramienta muy potente, ya que permite detectar cuellos de botella al permitir visualizar lo que está ocurriendo en el sistema y almacenar la información sobre la carga y el estado en ficheros históricos, que podrán recuperarse posteriormente para analizar el comportamiento del sistema.

Consta de dos órdenes complementarias: sadc y sar.sadc: recoge los datos relacinados con la actividad del sistema y pasa estos datos a sar o construye un registro en formato binario.sar: lee los datos binarios que recoge sadc y los traduce a un formato legible.

Para capturar el comportamiento de forma interactiva usaremos la orden sar, que se encargará de lanzar sadc y mostrar la información obtenida con el colector de datos, un ejemplo de su uso es: sar ­u 2 5 , mostrará 5 tomas de datos de la utilización de la CPU separadas por 2 segundos una de otra.También permite que los datos sean almacendos en un archivo, por ejemplo:  sar ­I 14 ­o iterr 2 10 , muestra estadísticas de la interrupciones del sistema, capturándolos 10 veces cada 2 segundos y almacenando los resultados en un fichero llamado iterr.Usando la instrucción de la forma: sar ­A , se obtendrá la informacón de la actividad obtenida en el fichero de captura del día en curso.Para generar archivos de datos usaremos sadc, indicando el tiempo entre muestras, el número de muestras que se desea recoger y el archivo en el que se desea realizar la captura de datos. Un ejemplo de su uso es:  /usr/lib/sysstat/sadc 1 10 /tmp/datafile . Se recogerán 10 muestras separadas por un segundo de diferencia y se almacenará el resultado en el archivo binario datafile, en la carpeta /tmp.Si el nombre del fichero no se incluye, sadc almacena la actividad del sistema en el archivo /varlog/sysstat/sadd, donde dd indica el número del día en el que se ha realizado el registro de datos.Admite el uso de modificadores, algunos de ellos son:

● ­d: captura de la actividad de los discos. Por defecto esta actividad no se captura para evita archivos hitóricos demasiado largos.

● ­I: captura de todas las interrupciones del sistema.

También sar admite el uso de modificadores para generar informes de diferentes características, algunos de ellos son:

● ­u: utilización del procesador.● ­B: paginación de la memoria virtual.● ­c: creación de procesos.● ­b: transferencias con E/S.● ­d: transferencias por cada disco.● ­I: sistema de interrupciones.● ­n: conexión de red.● ­q: carga media del sistema.

Page 7: Herramientas de monitorización en Linux · PDF fileHerramientas propias del sistema ... disco, interrupciones, cambios de contexto y utilización del procesador. La sintaxis de esta

● ­r: sistema de memoria.● ­w: cambios de contexto.● ­W: intercambio de memoria (swapping)● ­A: toda la información almacenada.

Monitorización de programas

Es una técnica utilizada para obtener información sobre la ejecución de programas, en particular si deseamos conocer que parte del código de un programa es la que más tiempo de ejecución consume o cuál es la secuencia de llamadas entre procedimientos.Se desarrolla por medio de tres etapas principales:

1. El código fuente del programa a estudiar se debe compilar, incluyend las opciones necesarias para su monitorización, lo que se denomina instrumentalización.

2. Una vez instrumentalizado, el programa se ejecuta para poder recoger los datos de la monitorización.

3. Por último se ejecuta la herramienta adecuada para leer la información recogida.

En el ejemplo que estudiaremos aplicamos la técnica de monitorización a un fichero escrito en languaje C, para ello necesitamos compilarlo usando gcc con la opción ­pg, que genera código extra que permite el análisis con la herramienta gprof.

Para ello usaremos la secuencia siguiente, suponiendo que deseamos estudiar un programa denominado prueba.c:

$ gcc prueba.c ­o prueba ­pg ­g$ prueba$ gprof prueba > prueba.gprof

La primera línea instrumentaliza el programa, almacenando la salida en el archivo indicado tras el modificador ­o. Se incluyen también las opciones ­pg, para poder usar gprof, ­g para obtener información válida para el depurador del sistema operativo (GDB).

La información se almacena en el fichero prueba.gprof, al que se puede acceder usando un editor de textos.

Monitor del sistema

Un sistema Linux se puede monitorizar utilizando la herramienta de administración denominada Monitor del sistema. Permite monitorizar los procesos que se están ejecutando en el sistema y el uso que están haciendo de los recursos. Para facilitar su uso presenta una serie de pestañas: 

● Procesos: muestra los procesos activos y como se relacionan unos con otros. ● Recursos: presenta la evolución del consumo.

Page 8: Herramientas de monitorización en Linux · PDF fileHerramientas propias del sistema ... disco, interrupciones, cambios de contexto y utilización del procesador. La sintaxis de esta

● Sistema de archivos: da el espacio usado en cada disco. 

Ofrece información como la carga media en los últimos 1, 5 y 15 minutos. Los procesos aparecen en una tabla en la que, por defecto se muestra: el nombre del proceso , su estado , el porcentaje de uso de CPU , su prioridad , su identificador y la memoria en uso .Utilizando el menú ver, con la pestaña Procesos seleccionada, podemos seleccionar el tipo de procesos que deseamos monitorizar. además podemos manipular procesos usando el menú contextual de cada uno de ellos. En particular podemos detener y continuar un proceso , forzar la terminación normal de un proceso o su muerte, cambiar su prioridad.Podemos acceder al Mapa de memoria de un proceso, donde obtendremos información acerca de los segmentos de memoria utilizados: direcciones, tamaño y otras características. Por último, podeos conocer los archivos abiertos por un proceso, obeniendo información del descriptor, el tipo y objeto de los archivos abiertos por el proceso. 

En la pestaña Recursos podemos observar algunos gráficos que representan la evolución de la CPU la Memoria de intercambio y la Red . Por su parte, en la pestaña Sistemas de archivos se presenta infomación específica de los dispositivos montados, de su directorio de montaje , tipo y memoria total, libre, disponible y usada .

Por último indocar que en el menú Editar podemos acceder a Preferencias , desde donde podemos configurar el tiempo de refresco de la información, los parámetros a monitorizar y la presentación de ciertos elementos del monitor.