tagger tag puddletag mp3tag mac kid3 editar easytag comando linux io gnu disk

linux - mp3tag - puddletag



¿Cómo puedo registrar qué proceso o actividad del núcleo está usando el disco en GNU/Linux? (8)

En un servidor Debian en particular, iostat (y similar) informa un volumen inesperadamente alto (en bytes) de grabaciones de disco en curso. Tengo problemas para determinar qué proceso está haciendo estas escrituras.

Dos puntos interesantes:

  1. Intenté apagar los servicios del sistema uno a la vez sin éxito. La actividad del disco permanece bastante constante e inesperadamente alta.

  2. A pesar de lo escrito, no parece consumir más espacio en general en el disco.

Ambos me hacen pensar que la escritura puede ser algo que el núcleo está haciendo, pero no estoy intercambiando, por lo que no está claro para mí lo que Linux podría tratar de escribir.

Podría probar encima:

http://www.atcomputing.nl/Tools/atop/

pero me gustaría evitar el parcheo de mi kernel.

¿Alguna idea sobre cómo rastrear esto?


Es posible que desee investigar iotop para Linux . Hay algunas versiones de Solaris flotando, pero hay un paquete Debian por ejemplo.


Podría intentar usar SystemTap , tiene muchos ejemplos, y si no me equivoco, muestra cómo hacer este tipo de cosas.


Puede usar el comando UNIX lsof (enumerar archivos abiertos). Eso imprime el proceso, id de proceso, usuario para cualquier archivo abierto.



Si está utilizando un kernel más reciente que 2.6.20, es muy fácil, ya que es la primera versión del kernel de Linux que incluye la contabilidad de E / S. Si está compilando su propio kernel, asegúrese de incluir:

CONFIG_TASKSTATS=y CONFIG_TASK_IO_ACCOUNTING=y

Los núcleos de los paquetes de Debian ya incluyen estos indicadores, por lo que no es necesario volver a compilar su kernel. La utilidad estándar para acceder a datos de contabilidad de E / S en tiempo real es iotop (1). Le brinda una lista completa de los procesos administrados por el planificador de E / S, y muestra las estadísticas de proceso para leer, escribir y anotar el ancho de banda de E / S total.


También puede usar htop , habilitando la columna IO_RATR. Htop es un excelente reemplazo superior.


iotop es bueno (genial, en realidad).

Si tiene un kernel anterior a 2.6.20, no puede usar la mayoría de estas herramientas.

En cambio, puede intentar lo siguiente (que debería funcionar para casi cualquier 2.6RC kernel IIRC):

sudo -s dmesg -c /etc/init.d/klogd stop echo 1 > /proc/sys/vm/block_dump rm /tmp/disklog watch "dmesg -c >> /tmp/disklog" CTRL-C when you''re done collecting data echo 0 > /proc/sys/vm/block_dump /etc/init.d/klogd start exit (quit root shell) cat /tmp/disklog | awk -F"[() /t]" ''/(READ|WRITE|dirtied)/ {activity[$1]++} END {for (x in activity) print x, activity[x]}''| sort -nr -k2

Las líneas dmesg -c borran el registro de kernel. El registrador se apaga, manualmente (utilizando el reloj) volcado en un disco (el búfer de memoria es pequeño, por lo que tenemos que hacer esto). Déjelo funcionar durante aproximadamente cinco minutos más o menos, y luego presione CTRL-c para ver el proceso. Después de cerrar el registro y reiniciar klogd, analiza los resultados usando el poco de awk al final.