ATENCION: ¡¡¡Riesgo de corrupción del sistema de archivos!!! Si usas un
kernel 2.4 parece que no es necesario optimizar el disco con hdparm
MI EJEMPLO: Hay algunas placas en las que el uso de la IRQ de los
discos duros no está soportada por el kernel 2.2 (como mi ASUS ATX para
K6) y no puedo activar el modo DMA, pero si que puedo activar la
transferencia IO de 32 bit incrementando la tasa de transferencia un
43% y el modo multisector, incrementando otro 25%, total incremento =
80% ¿No está mal, no?
1) Instalar el paquete "hdparm"
2) Medir (y anotar) la tasa de transferencia actual para comparar
hdparm -t /dev/hda
3) Ver información del HD
hdparm -I /dev/hda
* Aqui veremos:
- El máximo número de sectores para el modo multisector
- El máximo modo UltraDMA soportado
4) Mirar los ajustes actuales del HD
hdparm -v /dev/hda
5) Activar la transferencia IO de 32 bits (+43% mejora) Esto permite
transferir 32 bits en lugar de 16 bits en las operaciones de IO
hdparm -c1 /dev/hda
6) Activar modo multisector (Modo Bloque IDE) (+%25 mejora)
Esto permite transferir más de un sector por interrupción
-El máximo aparece como "MaxMultSect=16" al hacer "hdparm -I
/dev/hda"-
hdparm -m16 /dev/hda
7) Activar el DMA (no puedo activarlo, pero me admite la opción)
*Esto no tiene por que mejorar la tasa de transferencia, pero
descarga la CPU*
hdparm -d1 /dev/hda
8) Activar el modo UltraDMA4 (64 + modo 4 = 68), por defecto es
modo 2 -A mi no me da incremento, pero puede ser porque no me
funciona el DMA-
hdparm -X68 /dev/hda
9) Permitir otras interrupciones durante las interrupciones del HD Esto
aumenta muchisimo la velocidad de respuesta del sistema Pero puede
causar "Corrupción masiva del sistema de archivos" en algunos
sistemas (algunas combinaciones de disco/controladora)
hdparm -u1 /dev/hda # PROBAR CON SUMO CUIDADO
10) Haz pruebas intensivas (compila un kernel ;-) para asegurarte de que
los ajustes que has fijado son estables en tu sistema. Si no vienen
activados por defecto en las distribuciones es por algún motivo...
11) Hacer que los ajustes se mantengan tras la secuencia de recuperación
de errores del HD. Atención haz esto solo cuando estés seguro de que
los ajustes que usas son estables, ya que los errores no
reestablecerán la configuración por defecto (más segura)
hdparm -k1 /dev/hda
12) Hacer que se ejecute el comando en cada arranque
- Añadir a /etc/rc.boot un script "00-hdparm" con (en mi caso):
---8<---
#! /bin/sh
# Ajustes para incrementar la tasa de transferencia del HD
#
# -c1 = IO 32 bits -m16 = Modo multisector (16 sectores) -d1 = DMA -X68
# = Modo UltraDMA (64 + modo 4 = 68) -u1 = Permitir otras interrupciones
# durante las de HD *MUCHO CUIDADO* -k1 = Mantener los ajustes tras un
# error de HD
hdparm -c1 -m16 -d1 -u1 /dev/hda # Durante unos dias
# hdparm -c1 -m16 -d1 -u1 -k1 /dev/hda # Cuando veamos que es estable
--->8---
- Darle permisos de ejecución al script
OTRAS OPCIONES:
a) Activar el buffer de escritura del drive IDE (normalmente OFF) No
me gusta, si haces esto el ejecutar un "sync" no tiene porque hacer
lo que le pides, y además ya tenemos caché de escritura en el
kernel ¿no?
hdparm -W1 /dev/hda # NO LO RECOMIENDO
b) Hacer que el disco sea de sólo lectura (curioso...)
hdparm -r1 /dev/hda # ---NO LO HE PROBADO---
c) "hdparm" tiene opciones de control de energía, puedes mirarlo en la
página man ("man hdparm")
AGRADECIMIENTOS: A TooManySecrets por su mensaje inicial a la lista de
correo de aguila, que he utilizado como base y ampliado (Gracias
TooMany ;-)
MAS INFO: man hdparm
|