HOWTO Hdparm

De Gentoo Linux Wiki

Este articulo es parte de las series de HOWTO.
Kernel & Hardware Red y Servicios Portage Relacionado con el Sistema Servidor X Juegos Misceláneos

Tabla de contenidos

[editar] Introducción

Este manual va destinado a todos aquellos recién llegados a Gentoo que suelen tener dudas sobre hdparm. ¿Que es hdparm? hdparm es un programa que nos permitirá mejorar el rendimiento de nuestro disco duro.

[editar] Procedimientos previos

Vamos allá. Primero debemos comprobar la configuración de nuestro kernel, debemos asegurarnos de que hemos incluido soporte para nuestra placa. En mi caso:

Código: Kernel
Device Drivers  --->
ATA/ATAPI/MFM/RLL support  --->
Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support  --->
PCI IDE chipset support  --->
Generic PCI bus-master DMA support  --->
VIA82CXXX chipset support

Ahora instalaremos hdparm y vamos a obtener algo de información sobre nuestro disco duro. Ya que estamos también vamos a medir el rendimiento antes de hacerle unos apaños. Se entiende, que donde /dev/hda debéis poner vuestro disco duro.

Código: Consola
root@Barrikada fran # emerge hdparm
Código: Consola
 root@Barrikada fran # hdparm -I /dev/hda
 
 /dev/hda:
 
 ATA device, with non-removable media
        Model Number:       SAMSUNG SP8004H
        Serial Number:      0415J1FTA46128
         Firmware Revision:  QW100-60
 Standards:
         Used: ATA/ATAPI-6 T13 1410D revision 1
         Supported: 6 5 4 3
 Configuration:
         Logical         max     current
         cylinders       16383   16383
         heads           16      16
         sectors/track   63      63
         --
         CHS current addressable sectors:   16514064
         LBA    user addressable sectors:  156368016
         device size with M = 1024*1024:       76351 MBytes
         device size with M = 1000*1000:       80060 MBytes (80 GB)
 Capabilities:
         LBA, IORDY(cannot be disabled)
         bytes avail on r/w long: 4      Queue depth: 1
         Standby timer values: spec'd by Standard, no device specific minimum
         R/W multiple sector transfer: Max = 16  Current = 16
         Recommended acoustic management value: 128, current value: 0
         DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5
              Cycle time: min=120ns recommended=120ns
         PIO: pio0 pio1 pio2 pio3 pio4
              Cycle time: no flow control=120ns  IORDY flow control=120ns
 Commands/features:
         Enabled Supported:
            *    READ BUFFER cmd
            *    WRITE BUFFER cmd
            *    Host Protected Area feature set
            *    Look-ahead
            *    Write cache
            *    Power Management feature set
                 Security Mode feature set
                 SMART feature set
            *    Mandatory FLUSH CACHE command
                 Automatic Acoustic Management feature set
                 SET MAX security extension
            *    DOWNLOAD MICROCODE cmd
            *    SMART self-test
            *    SMART error logging
 Security:
         Master password revision code = 65534
                 supported
         not     enabled
         not     locked
         not     frozen
         not     expired: security count
                 supported: enhanced erase
         96min for SECURITY ERASE UNIT. 96min for ENHANCED SECURITY ERASE UNIT.
 HW reset results:
         CBLID- above Vih
         Device num = 0 determined by the jumper
 Checksum: correct
Código: Consola
 root@Barrikada fran # hdparm -Tt /dev/hda
 
 /dev/hda:
  Timing cached reads:   1036 MB in  2.00 seconds = 517.04 MB/sec
  Timing buffered disk reads:   20 MB in  3.05 seconds =   6.56 MB/sec

[editar] Configurando nuestro disco

Muy bien, ahora en mi caso tendría que hacer lo siguiente:

Código: Consola
hdparm -d1 -X69 -c3 -m16 -M128 /dev/hda
  • -d1 Sirve para activar el DMA, esto reducirá el uso de la CPU y aumentara notablemente la velocidad de nuestro disco.
  • -Xudma5 Sirve para el modo de transferencia, podemos saber cuál es el adecuado para nuestro sistema mirando la linea "DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5" en la información de nuestro disco (hdparm -I /dev/hda para los despistados). Simplemente debéis poner el último valor, que es el mas alto.
  • -c3 Sirve para activar las transferencias de 32bits con sync, aunque realmente yo no noto ninguna diferencia.
  • -m16 Sirve para establecer las "cuentas de sector", en mi caso el máximo es 16, lo podéis ver en la información de vuestro disco en la línea "R/W multiple sector transfer: Max = 16 Current = 16"
  • -M128 Sirve para ajustar el nivel de ruido del disco, lo podéis consultar en la linea "Recommended acoustic management value: 128, current value: 0"


Explicación: Para los usuarios de portátiles

Para los usuarios de portátiles: La opción -S Sirve para suspender el disco después de cierto tiempo de inactividad y de esta forma ahorrar batería. El valor va en múltiplos de 5 segundos, de este modo si ponéis -S4 se apagará a los 20 segundos de inactividad y si ponéis el valor a 253 obtendrá el tiempo definido por el vendedor aunque este suele ser bastante elevado. Si vais a hacer esto debéis aseguraros de que haya pocas cosas que necesiten escribir en vuestro disco (Ej. Demons, logs, etc) y de que tengáis un sistema de ficheros que os permita especificar cada cuantos MB escribir en el disco, como ext3.

Ahora os toca ajustar los valores para vuestro disco, cualquier duda:

man hdparm

[editar] Finalizando

Vamos a hacer una medición a ver que tal :)

Código: Consola
 root@Barrikada root # hdparm -Tt /dev/hda
 
 /dev/hda:
  Timing cached reads:   1076 MB in  2.00 seconds = 537.28 MB/sec
  Timing buffered disk reads:  120 MB in  3.02 seconds =  39.75 MB/sec

Bueno, mi disco esta algo antiguo pero no esta mal. Si todo ha ido bien debéis poner estos valores en el fichero /etc/conf.d/hdparm y agregarlo al init:

Código: Consola
root@Barrikada root # nano -w /etc/conf.d/hdparm
root@Barrikada root # rc-update add hdparm boot

Ya tenéis vuestro disco listo.

[editar] Créditos

Herramientas personales