miércoles, 7 de abril de 2010




Cuando comence a utilizar linux slackware, y lo instale en una partición de mi portatil, tuve un pequeño problema con el funcionamiento del equipo, era tremendamente lento. Indagando sobre la posible causa, descubri dos comandos muy interesantes para el análisis y configuración de unidades de disco. Son smartctl y hdparm. El primero de ellos nos permite monitorear parámetros del disco (temperatura, fallos de lectura, horas de uso...etc), y el segundo, ver y modificar parámetros del disco (podemos modificar hasta el nivel de ruido del disco¡¡). Mi problema fue que no funcionaba correctamente el DMA del disco, cuestión que resolví modificando ciertos parametros del disco con hdparm.

Ese fue mi primer y único contacto con hdparm, que salvo en esa ocasión, y para hacer test de velocidad de lectura de disco, no habia utilizado para más.. hasta hoy. Por desgracia, tengo el oido muy fino, y de vez en cuando oigo un ruidito extraño proveniente del disco duro del portatil, como un clip!. Por pura coincidencia, leyendo árticulos por internet, vi uno cuyo titulo me resulto muy atractivo, y explicaba el origen de dicho ruidito.

Ubuntu podría acortar la vida del disco duro de los portátiles.

Podrían poner ese aviso en los discos de ubuntu de forma similar a las advertencias en los paquetes de tabaco. En dicho árticulo hablaban sobre una técnica llamada ramp load/ramp unload utilizada por varios fabricantes de discos duros para portatiles. La idea es muy buena, situan una rampa en la parte exterior de la cara del disco, donde puede reposar el cabezal cuando no esta en uso, con la finalidad de ahorrar energia y proteger el disco en caso de vibraciones.


Pero como todo lo bueno, tiene una pega, el número de cargas y descargas del cabezal en la rampa no son infinitas, de forma que los fabricantes garantizan el correcto funcionamiento del disco hasta unas 300K-600K operaciones de carga y descarga. Se puede configurar la tendencia del disco a utilizar esta técnica, llegando a deshabilitarla. Lo normal es que el acpi de un portatil modifique dicho parámetro en función de la configuración de energia. Por ejemplo, si estamos funcionando con batería, se realizaran gran cantidad de operaciones de load/unload para ahorrar energía, y protegiendo a su vez el disco duro (supongamos que siempre que funcionamos con bateria es que vamos en un todo terreno por un camino), sin embargo, en modo conectado, estas se minimizarán para maximizar la vida útil del disco duro. El problema de ubuntu (y muchas otras distribuciones) no es que maximizará el ahorro de energía, sino que el disco lleva configurado dicho parámetro de fabrica, y si no se le dice lo contrario, hará lo que tenga configurado, de manera que el problema lo generan los fabricantes de discos, no ubuntu.

Visto el problema probemos a analizarlo. Para ver toda la información realizamos los siguientes pasos:

1ª Ejecutando hdparm -I /dev/nombre de mi disco. Asi vemos como esta configurado el advanced power management. Dicho parámetro tiene un rango desde 0 (máximo ahorro de energia) hasta 255 ( desactivado). Cuando comprobe como estaba configurado mi disco inicialmente tenia un valor de 160. 





2ª Ejecutando smartctl -a /dev/nombre de mi disco. Se nos mostrara información muy útil para evaluar el estado del disco.

Nos interesa ver Power_on_hours y Load_Cycle_Count. Así, puedo comprobar como mi disco ha realizado 85982 ciclos de carga en 3558 horas de uso (que poquito uso el ordenador...). Ya tiene agotado alrededor de un 30% de sus ciclos, por lo que decido modificar el parámetro de configuarción con hdparm para alargar la vida del disco.

Para modificarlo ejecutamos hdpar -b valor disco, siendo el valor un número entre 1-255, y disco, el fichero que representa nuestro dispositivo. En mi caso quiero ser conservador, y pongo el valor 254:


La cuestión es que en algunas distribuciones de linux, el acpid va configurado de manera que modifica dicho en función del modo de funcionamiento (conectado o bateria). En slackware 13 64bits que tengo instalado no modifica dicho valor, aunque se puede modificar el script del acpid para que realice dicho cambio. Yo como siempre funciono en modo conectado (Es lo que tiene que al probre portatil le dure la bateria 5 minutos) no me he metido a realizar dichos cambios... quizas más adelante.







Ramp load

0 comentarios: