Archivo

Entradas Etiquetadas ‘xaprb’

Estadisticas de entrada salida por proceso.

Domingo, 23 de Agosto de 2009 ajerez Sin comentarios

Hoy, leyendo el rss de hacker news he visto un post bastante interesante, en el que enseñaban como obtener estadísticas individuales de entrada salida para cada proceso por separado. Esto es posible en kernels posteriores al 2.6.28 por defecto, pero para las versiones anteriores de kernel, o parcheamos, o utilizamos el magnifico script de xaprb.

Primero necesitaremos descargar el script que te permite leer las estadísticas del kernel. Para ello ejecutamos en una consola:

# wget http://maatkit.googlecode.com/svn/trunk/util/iodump

A continuación tenemos que decirle al kernel que muestre los mensajes de Entrada/Salida para cada proceso ejecutando este comando:

# echo 1 > /proc/sys/vm/block_dump

A continuación con el script que nos hemos descargado en el paso 1, capturamos los mensajes sobre Entrada/Salida que esta emitiendo el kernel.

# while true; do sleep 1; dmesg -c; done | perl iodump

Este script debemos ejecutarlo durante tanto tiempo como queramos, y tras terminarlo con Ctrl+C, se nos mostraran las estadísticas de entrada salida para cada proceso en ejecución. En mi caso estos son los datos devueltos:

TASK                   PID      TOTAL       READ      WRITE      DIRTY DEVICES
pdflush                 31        643          0        643          0 sda4
kjournald2             769        277          0        277          0 sda4
firefox-bin           9490         17          1         16          0 sda4
gconfd-2              4063          4          0          4          0 sda4
firefox-bin           9505          1          1          0          0 sda4

Como podéis ver obtenemos el Pid del proceso, el número de operaciones de escritura y el número de operaciones de lectura para cada uno, así como el dispositivo sobre el que se ejecutan dichas operaciones.

Y así de sencillo, espero que esta operación os sea tan utíl como lo ha sido para mí en incotables ocasiones.

Actualización: En servidores en producción con una alta carga de entrada salida, tened mucho cuidado con el espacio en disco, ya que los mensajes se iran guardando en /tmp/ y si son demasiados puede dejaros sin espacio en unas horas.