Saiba porque o Linux pode (ainda) estar diminuindo a vida útil do HD do seu notebook
Olá a todos do VOL, neste artigo retomo este velho assunto que assolou vários fóruns sobre Gnu/Linux pela Internet afora em meados de 2007 / 2008. Atualmente o mesmo não foi totalmente superado como irei demostrar nas próximas linhas.
Como tudo começou
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.
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.
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.
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.
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).
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.
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.
Pensei que isso tinha sido resolvido há muito tempo.