Afina tus discos con hdparm
hdparm es una pequeña herramienta que sirve para manipular la configuración de las unidades de disco. El objetivo es optimizar el tiempo de acceso o la velocidad de transferencia.
AVISO: El uso de algunas opciones de hdparm
puede provocar bloqueos en la unidad, cuelques del equipo, perdida de datos y destrucción del Universo.
Cómo está la cosa
Ver información de la unidad:
Con el siguiente comando puedes ver, entre otros muchos datos, el modo DMA más moderno y el número máximo de sectores por operación (MaxMultSect).
# hdparm -i /dev/hda
Lo mismo, pero mucho más verboso:
#hdparm -I /dev/hda
Ver la configuración actual:
# hdparm /dev/hda
/dev/hda:
multcount = 0 (off)
IO_support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 24321/255/63, sectors = 390721968, start = 0
Significado de estas variables:
- multicount: Nº de sectores que se leen en cada acceso.
- IO_support: 16/32 bits.
- unmakirq: Desemascarar IRQ del disco. Permite “compartir” la IRQ.
- using_dma: Acceso directo a memoria.
Medir el rendimiento actual:
# hdparm -tT /dev/hda
/dev/hda:
Timing cached reads: 1168 MB in 2.00 seconds = 583.68 MB/sec
Timing buffered disk reads: 168 MB in 3.01 seconds = 55.78 MB/sec
Modificando la configuración
Y cruzando los dedos…
# hdparm -c1 /dev/hda ;Usar transferencias de 32 bits
# hdparm -m16 /dev/hda ;Fijar 'multicount' a 16 sectores
# hdparm -d1 /dev/hda ;Activar DMA
# hdparm -u1 /dev/hda ;Desemascarar la IRQ del disco (PELIGROSO: pérdida masima del sistema de ficheros)
# hdparm -W1 /dev/hda ;Activa cache de escritura, puede dejar sin efecto a 'sync'
Guardar la configuración
Una vez que hayas probado qué opciones van bien con tu disco y estés seguro de que funcionan adecuadamente, lo más cómodo es escribir escribar la configuración en /etc/hdparm.conf
. El siguiente sirve como ejemplo:
/dev/hda {
mult_sect_io = 16
write_cache = on
dma = on
io32_support = 1
read_ahead_sect = 128
}
/dev/cdrom {
dma = on
interrupt_unmask = on
io32_support = 1
}
Recetas relacionadas
Referencias
- Fernando Sancho :-)
- Mejorando el rendimiento del disco duro con ‘hdparm’
$ man hdparm