GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo saber qué está acelerando mi disco?

En Linux, el reciente fanotify syscall habilitó una buena utilidad llamada fatrace que informa sobre qué proceso está accediendo a qué archivo, ya sea para todo el sistema o para una partición en particular. Definitivamente mi herramienta favorita para este tipo de cosas:

deluged(6542): R /usr/share/GeoIP/GeoIP.dat
rsyslogd(1737): W /var/log/syslog
rsyslogd(1737): W /var/log/kern.log

Puede consultar http://samwel.tk/laptop_mode/ . Aunque esta página no se trata principalmente de su problema, pero brinda una buena imagen general de cómo funciona IO e ideas, cómo silenciar sus discos apagándolos.

La respuesta corta para su problema:

echo 1 > /proc/sys/vm/block_dump

producirá mensajes en syslog como:

Jul 23 10:04:05 locutus kernel: ls(5224): READ block 7340136 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 4335136 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 15505568 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 7340160 on dm-4
Jul 23 10:04:05 locutus kernel: ls(5224): READ block 7340168 on dm-4

He usado un comando ls simple

NOTA:asegúrese de que el registro de su sistema esté apagado o escrito en un ramdisk (tipo:tmpfs) antes de hacerlo, porque (cita):"su sistema puede entrar en un ciclo de retroalimentación, donde syslogd causa actividad en el disco, esto provoca la salida del kernel, y esto hace que syslogd realice más actividad en el disco"

Recomiendo montar /tmp como ramdisk y luego configurar el registro en /tmp/syslog. Esto en /etc/fstab (y un reinicio) hará:

none /tmp tmpfs defaults,size=256M 0 0

He estado usando iotop para averiguar qué está usando la unidad. Desde el sitio web debe tener "Linux kernel ≥ 2.6.20 con las opciones TASK_DELAY_ACCT y TASK_IO_ACCOUNTING habilitadas".

Parece que solo está interesado en una unidad en particular. Podría considerar escribir un script que verifique rutinariamente con lsof o fuser para acceder a esa unidad/partición.


Linux
  1. ¿Cómo puedo saber si estoy en una pantalla?

  2. ¿Cómo puedo verificar qué ocupa espacio en disco en /tmp?

  3. ¿Cuánto Load_cycle_count puede soportar hipotéticamente mi disco duro?

  4. ¿Cómo monitorear el uso de la memoria dedicada al kernel?

  5. ¿Cómo puedo saber qué versión de Linux estoy usando?

Cómo comprobar qué versión del kernel de Linux estoy ejecutando

¿Cuántos núcleos puede manejar el kernel de Linux?

¿Cómo puedo reservar un bloque de memoria del kernel de Linux?

¿Cómo puedo saber con qué límite de usuarios me estoy encontrando?

Linux - ¿Cómo puedo ver lo que está esperando el disco IO?

¿Cómo puedo saber qué procesos están causando cargas elevadas si no son un uso elevado de la CPU?