Em 2007, surgiu a notícia aqui:
O
Ubuntu (e suas outras versões,
Kubuntu,
Xubuntu) na então
versão 07.04 podia estar diminuindo a vida útil dos HDs dos notebooks. A notícia correu por vários fóruns,
levando muitos usuários à desistir do Ubuntu, migrando para outras distribuições Gnu/Linux;
os que ficaram buscaram uma solução um tanto drástica, mas que resolveu o problema.
Embora muitos usuários e desenvolvedores culpassem os fabricantes de notebooks, não se sabe
exatamente quem é o responsável pela origem do problema. Sendo que, qualquer
julgamento a esse respeito não passará de mera conjectura.
O que aconteceu? Qual era o problema?
O mesmo só ocorre em notebooks, sendo que não há registros de que este problema afete desktops (e
possivelmente, a maioria dos comandos listados ao longo deste artigo não funcionará em desktops).
Todo HD possui dois componentes principais (entre outros mais): a agulha e os discos:
Os discos chegam a girar em torno de 7200 RPM (rotações por minuto) ou 5400 RPM (dependendo do
modelo), enquanto o atuador movimenta o braço, que possui em sua ponta a agulha ou cabeça de leitura
/ gravação de dados. Esse processo ocorre o tempo todo enquanto o HD está em uso. Claro que com todo
este movimento constante, a temperatura média do HD tende a aumentar gradativamente, conforme o
esforço que ele é submetido.
Os fabricantes de HDs, então, criaram um recurso chamado Advanced power management que
estaciona o braço em um ponto neutro onde não fique sobre a superfície dos discos, e
diminua a rotação dos mesmos; economizando energia, diminuindo a temperatura e preservando a
integridade dos discos caso ocorra algum choque físico (o tão conhecido e falado recurso que protege o
HD mesmo que se derrube o notebook no chão).
Para isso, os fabricantes determinaram um período de ociosidade que o HD deve ter para fazer este
procedimento. Mas, este recurso possui um porém: o constante movimento carga /
descarga gera um desgaste natural no mecanismo do atuador, sendo que pode-se ter de 200.000
a 600.000 ciclos de carga durante a vida média útil de um HD (que varia de 4 a 5 anos dependendo do
uso segundo os fabricantes).
Todos esses recursos (rotação, ciclo de descarga, velocidade de leitura / gravação), são controlados pelo
sistema operacional.
A Microsoft não segue as recomendações dos fabricantes quanto à quantidade de ciclos por minuto. Já
sistemas Gnu/Linux baseiam-se no que os fabricantes recomendam, mas a recomendação gera um
aumento exorbitante de ciclos por minuto, chegando à ser 5 ou 6 ciclos por minuto. Uma taxa que pode
comprometer o funcionamento do HD em poucos meses.
Como identificar?
Existe um pacote chamado
Smartmontools, que possui como principal componente o utilitário
smartctl (vide apêndice 1: o comando smartctl). Este utilitário lê os dados fornecidos pelo
SMART (sigla de Self-Monitoring, Analysis, and Reporting Technology). Veja
wiki aqui:
Para monitorar a quantidade de ciclos, instale o pacote smartmontools (no caso do
Slackware e
Opensuse, ele já vem por padrão instalado), e digite
o comando como root:
# smartctl -A /dev/sda | grep Load_Cycle_Count
Observação importante: nos exemplos estarei me referindo ao HD como /dev/sda, sendo que se você
possuir um HD IDE , troque o dispositivo para o correto: /dev/HDa
A saída seria o seguinte dado:
# sudo smartctl -A /dev/sda | grep Load_Cycle_Count
225 Load_Cycle_Count 0x0032
095 095 000 Old_age
Always - 58055
O último número é o total de ciclos realizados até o momento. Note que o não importa o número atual e
sim a média ciclos por minuto. Portanto refaça a medição de hora em hora.
Depois faça a divisão:
quantidade de ciclos realizados no período ÷ minutos decorridos
Se o resultado ficar entre 0 e 1,5 ciclos por minuto, pode-se dizer que o HD está normal.
Outra maneira é identificar a saída do comando:
# hdparm -I /dev/sda | grep Advanced
Se o valor estiver em 254, está normal. Se estiver em 128 ou disabled (desabilitado), melhor prestar
atenção nos ciclo de descarga.
Qual foi a solução?
Chegou-se então à solução: desativar o recurso Advanced Power Management. Um script
shell, muito difundido a partir deste site:
Faria o desativamento deste recurso.
Como esta tratou-se de uma solução drástica, possui inconvenientes: a temperatura média do HD
aumenta, assim como o risco do comprometimento do HD em caso de choques fisícos e quedas.
O Script
Este script baseia-se no utilitário
hdparm, que entre outras funções (vide apêndice 2: o
comando hdparm) regula o nível do advanced power management.
Este recurso possui uma regulagem que varia do valor 1-127 (economia de energia + spin-down que é a
diminuição da rotação dos discos) a 128 254 (economia de energia máximo desempenho
sem spin-down) sendo que o valor 255 desliga o gerenciamento de energia por completo.
Só que é neste ponto que se encontra o bug: o sistema não aceita nenhum valor diferente entre 1 ou
254, qualquer valor intermediário é entendido como o mínimo sem spin-down (128). O pior é que em
muitos casos (como demonstrarei adiante) nem mesmo o valor 255 desliga o gerenciamento, sendo
possível apenas optar entre 128 ou 254 (economia máxima / desempenho máximo ambos sem
spin down).
Como a Canonical resolveu o problema?
Como a solução a própria comunidade encontrou, bastou a Canonical seguir o mesmo. Resultado: O
Ubuntu a partir da sua versão 8.04 veio por padrão com o advanced power management no level 254
(desempenho máximo). Para assegurar o que eu disse, digitem o comando abaixo, que lista
o nível do gerenciamento de energia no Ubuntu:
sudo hdparm -I /dev/sda | grep Advanced
Advanced power management level: 254
* Advanced Power Management feature
Exatamente a linha Advanced power management level: 254 mostra o valor
atual. Como isso gera incômodos, os mais atentos poderão (em alguns casos) perceber um
aumento da temperatura média do HD nos Ubuntus atuais.