Trucos de primavera: Tuneando nuestros discos IDE(No SCSI) usando hdparm

Por Ozkar:

Primero que todo, saquen papel y lápiz y escriban: “Eximo a Ozkar de toda responsabilidad sobre mis acciones y yo y solo yo soy el responsable de mis faltas.” Ya? Bueno continuamos. No!, No continuamos nada, sepan que los comandos que les enseñaré, o les recordaré, pueden ocasionar pérdida de datos, así que, úsenlos bajo su propio riesgo. :-D.

Cuantos de nosotros aún usamos maquinitas con procesadores Intel y al menos un HDD IDE1?. Cuantos nos hemos quejado de lo lento que es la velocidad de lectura/escritura? Le sacamos el máximo provecho a esos HDD IDE? Pues trataré de hacerles ver, que aunque exista SATA3 y USB3 y todas esas tarjetas SD y demás, aún podemos “tirar pa arriba de los panchos” con tecnología obsoleta.

Pues les presento a hdparm(GUTL a coro: Hola hdparm!!). Pues hdparm dice que se dedica a mostrar o establecer parámetros a los discos duros. Hdparm dice:

I am an useful system utility for setting (E)IDE hard drive parameters. For example, I can be used to tweak hard drive performance and to spin down hard drives for power conservation.”

En azpañol sería mas o menos algo así:

“Soy una utilidad del sistema para establecer parámetros del disco duro, por ejemplo, puedo ser usado para tunear el desempeño del disco duro o para bajar sus revoluciones y ahorrar energía”.(GUTL a coro: Ohhhhhh!!).

Otra advertencia: van a seguir adelante? Pulse SI para seguir, NO para seguir leyendo sin riesgos y ABORTAR para leer otro artículo. 😀

Warming up!

Instalemos la utilidad, utilicen su gestor de paquetes preferidos en su distro preferida.

  • Debian, Ubuntu y derivados:

[root@durotar ~]#aptitude install hdparm

  • Fedora, RedHat y derivados:

[root@durotar ~]#yum install hdparm

  • Arch Linux, Chakra y derivados:

[root@durotar ~]#pacman -S hdparm

Bueno, ahora entraremos como root en una terminal y May the force be with you. Teclearemos los siguiente:

[root@durotar ~]#hdparm -Tt /dev/sda

Dígase /dev/sda o /dev/hda según sea el caso. Deberíamos ver algo como:

[root@durotar ~]#hdparm -Tt /dev/sda

/dev/sda:

Timing buffer-cache reads: 128 MB in 1.34 seconds =95.52 MB/sec

Timing buffered disk reads: 64 MB in 17.66 seconds =3.58 MB/sec

Permítanme explicarles:

  • El -T significa que se pruebe el sistema de caché (por ejemplo, la memoria, CPU y buffer-cache).

  • El -t significa que se muestren estadísticas del disco en cuestión, leyendo datos que no se encuentren en la caché.

    Los dos parámetros juntos, ejecutados varias veces seguidas, nos darán una idea del rendimiento de entrada/salida I/O (estos datos pertenecen a la PC donde trabajo, Motherboard Pegatron G31, Micro Dual Core 2.7Ghz, 1Gb RAM, estos datos pueden variar según sus sistemas.)

    Miren ese número, 3.58Mb/sec, es vaya, debería darme pena, pero no, arreglaremos eso. Bueno, veamos de forma general como va mi HDD:

    [root@durotar ~]#hdparm /dev/sda

    /dev/sda

    multcount = 0 (off)

I/O support = 0 (default 16-bit)

unmaskirq = 0 (off)

using_dma = 0 (off)

keepsettings = 0 (off)

nowerr = 0 (off)

readonly = 0 (off)

readahead = 8 (on)

geometry = 60801/255/63, sectors = 976773168, start = 0

Pero, que es eso de 16 bits? Y por qué casi todas las opciones aparecen desactivadas?(off???). Bueno, culpemos a Fedora(en este caso casi cualquier distro) de escoger las opciones más seguras, lo que virtualmente nos garantiza que funcionará con cualquier hardware en que instalemos, dicho hardware en muchas ocasiones tiene 10 o más años de fabricado, y en la mayoría de nuestros casos nuestros sistemas son modernos. Veamos que nos quiso decir hdparm:

multcount: abreviatura de multiple sector count. Esto controla cuantos sectores son leídos del disco en una única interrupción de entrada/salida. Casi todos los dispositivos IDE modernos lo soportan. La página man dice que:

Cuando esta característica es activada, normalmente reduce la carga del sistema operativo para la entrada/salida de un 30% a un 50%. En algunos sistemas además provee de un incremento del rendimiento de datos de un 5% a un 50%.

I/O Support: este es el más importante. Este flag controla como los datos son transferidos del bus PCI al controlador. Casi todos los modernos controladores soportan modo 3, o modo de 32-bits w/sync. Algunos incluso soportan 32-bits async. Activar esto prácticamente duplicará el rendimiento.

unmaskIrq: activar esto permitirá a Linux desenmascarar otras interrupciones mientras se esté procesando una interrupción de disco. ¿Qué significa esto? Permite a Linux atender otras tareas relacionadas con interrupciones (por ejemplo, el tráfico de red) mientras se espera a que el disco devuelva los datos que se le pidieron. Podría incrementar el tiempo de respuesta del sistema, pero cuidado: no todas las configuraciones de hardware serán capaces de controlar esto. Para más información consultar la página man correspondiente.

using_dma: usar DMA puede ser algo difícil. Si puedes hacer que tu dispositivo utilice DMA, hazlo.(con mucho cuidado) De nuevo, consultar la página man es lo adecuado.

Bueno, ahora le pondremos esteroides a nuestro HDD. Primero veremos que modos soporta nuestro HDD con el comando:

[root@durotar ~]#hdparm -i /dev/sda

Esto nos dirá los modos que soportará nuestro HDD, deberemos ver algo como esto:

PIO modes: pio0 pio1 pio2 pio3 pio4

DMA modes: mdma0 mdma1 mdma2

UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5

AdvancedPM=no WriteCache=enabled

Drive conforms to: device does not report version:

Pues manos a la obra:(consulten siempre las páginas man, ahí explica con mucho mas detalle las opciones)

[root@durotar ~]#hdparm -c3 -m16 /dev/sda

/dev/sda:

setting 32-bit I/O support flag to 3

setting multcount to 16

multcount = 16 (on)

I/O support = 3 (32-bit w/sync)

Y vean, ya logramos 32 bits, suena mucho mejor, pues hagamos otra prueba a ver que tal nos va:

[root@durotar ~]#hdparm -tT /dev/sda

/dev/sda:

Timing buffer-cache reads: 128 MB in 1.41 seconds = 90.78 MB/sec

Timing buffered disk reads: 64 MB in 9.84 seconds = 6.50 MB/sec

Holy Sh*t! El doble! Ahora seguiremos experimentando.(Les repito, si hay cuelgues, es que su PC puede no soportar los parámetros que queremos ponerle al HDD).

Intenten lo siguiente:

[root@durotar ~]#hdparm -X66 -d1 -u1 -m16 -c3 /dev/sda

/dev/sda:

setting 32-bit I/O support flag to 3

setting multcount to 16

setting unmaskirq to 1 (on)

setting using_dma to 1 (on)

using xfermode to 66 (UltraDMA mode 2)

multcount = 16 (on)

I/O Support = 3 (32-bit w/sync)

unmaskirq = 1 (on)

using_dma = 1 (on)

Y de nuevo, hagamos otra lectura:

[root@durotar ~]#hdparm -tT /dev/sda

/dev/sda:

Timing buffer-cache reads: 128 MB in 1.43 seconds = 89.51 MB/sec

Timing buffered disk reads: 64 MB in 3.18 seconds = 20.13 MB/sec

20.13 Mb/sec es mucho mayor que los escasos 3.58 Mb/sec, álgebra de bodega no? Ah, recuerdan que mencioné que hdparm puede bajar las revoluciones de su HDD para ahorrar energía, pues fácil:

[root@durotar ~]#hdparm -S180 /dev/sda

180 es 15 minutos, consulten las páginas man, que ahí lo explican mejor, es alguito particular la forma que ellos calculan los tiempos, no tan complejos como las series de Fourier, pero casi.

Después que tengamos las opciones que queremos, lo mejor es definir es script de inicio, dependiendo de nuestro sistema, así los parametros se establecerán en tiempo de booteo.

Esta es otra forma de tunear mejor nuestro sistema, cosa que pasa desapercibida a novatos y no tan novatos. En un próximo artículo pues les mostraré como tunear las particiones ext3-ext4 y no usar los defaults como parámetros en el fstab.

Fuentes:

http://www.oreillynet.com/pub/a/linux/2000/06/29/hdparm.html

http://www.thedumbterminal.co.uk/information/hdparm.shtml

 

¿Te resultó interesante? Compártelo ...



elMor3no

Publicado por elMor3no

http://gutl.jovenclub.cu » Forma parte de GUTL desde el 6 diciembre, 2011. Usuario de GNU/Linux desde hace varios años. Coordinador Nacional de GUTL.

Este artículo tiene 26 comentarios

  1. Por cierto estaba leyendo ayer sobre hdparm y deberiamos crear un espacio en la wiki donde pongamos nuesras experiencias (nuestros estropeos de discos) ante diferentes configuraciones de hdparm… quien comienza????

    • Yo yo!! Pregúntame!! :-D.
      Por cierto, para los SCSI existe algo llamado scparm, que funciona casi igualito. Mañana envío el articulo sobre tunear particiones ext3-ext4.
      @Maikel: Y Slax ?

      • Bueno, allá TU, serías el único publicando gratis para DesdeLinux, vaya @elav, buena plata se van a ahorrar con @Ozkar. Sígannos pagando a los demás. jejeje.. Recuerda que Free viene de Freedom no de gratis…
        Na, es un chiste, no vaya a ser que los malintencionados que nos leen nos malinterpreten. Déja desconectarme ya el cable de la Tontera…
        No entiendo eso de registrarte, tu ya tienes una cuenta, lo único que hay que hacer es ponerte los privilegios para que puedas escribir y que KZKG te sume al script para que puedas entrar al panel de escritura… Saludos brother. Ahhhh, por cierto, cuando quieras llegate por Stgo. Me traes el repo de Fedora, el de Wheezy y todo lo demás y te copio una llave para Kaspersky, te cuadra???

        • Bueno… después hablamos de los precios, jeje
          OT: @Maikel, a quién debo asesinar para que me contastes los correos?

          • jeje, yo solo contesto los correos a gmail en la noche, es que me conecto al mas alla cuando se oculta el sol, mi conexión es vampira… y bueno, como ae sa hora tal vez solo yo estoy conectado por todo esto, bueno, jeje, pero vale, te contesto a partir de ahora, digo, a partir de esta noche…. Saludos….

          • Yadira
            Ve al FLISOL, ahí aprenderás que linux no se baja si no tienes internet, en este caso se copia de alguien que posea internet y que tenga algo de conocimiento para explicarte un minimo de la filosofia

          • KZKG
            men que quieres que le diga a un noob, que debe leer manuales, buscar en la wiki, estudiar? Eso sería espantarlo, primero debe quitarse el miedo, ir al flisol para ver como existe gente (comunidad) que es capaz de existir aunque la mayoría no tenga acceso al otro lado del mar

  2. Interesante opción para los pobres que aún usan discos IDE…¿a quién voy a engañar? para los pobres que aún usamos discos IDE.

    May the Force be with you!

  3. esta muy bueno pero deberían subir cosa como :
    ¿que tecnología ide?
    ventajas y deventajas de la tcn ide
    discos duros que utiliza
    capacidad de disco duro
    entre otras cosas

  4. Bueno!, Felicidades al que invento hdparm.!!!

    Heee!. Quien fue el responsable de causar tanto alboroto???.
    De veras que esta duro lo que publicaron.! Probare con mi viejo IDE (QUE TODO LO SOPORTA), a ver que tal me va.

Los comentarios están cerrados.