Discos rígidos são dispositivos mecânicos que utilizam energia elétrica para o
seu funcionamento, girando os discos propriamente ditos para acesso e gravação
dos dados. No Linux, existe o comando hdparm
, que permite configurar em que
momento o HD entrará em modo de espera, economizando energia e reduzindo o
ruído gerado pelo mesmo.
O hdparm
serve para uma série de outras configurações relativas aos discos
rígidos. Consulte man hdparm
para mais informações. Neste artigo vamos focar
nos comandos hdparm -B
e hdparm -S
. O primeiro permite definir o nível de
controle que o sistema operacional terá sobre o HD quanto ao consumo de
energia. O segundo possibilita definir o intervalo de tempo a partir do qual o
HD entrará no modo spindown, ou seja, ficará em modo de espera, sem girar os
discos.
Antes de tudo, é conveniente utilizar o comando hdparm -B
sem parâmetros,
para identificar qual o nível de controle que o sistema possui atualmente sobre
o consumo de energia do HD. Se o seu HD a ser configurado é o /dev/sdc
(se
não for, rode lsblk
para descobrir), execute o seguinte comando:
sudo hdparm -B /dev/sdc
A resposta deverá ser algo como o seguinte:
/dev/sdc:
APM_level = 248
Para que o sistema possa decidir quando o HD entrará em modo de espera, o valor de APM_level deve ser igual o menor que 127. Portanto, se o valor estiver acima de 127, você pode executar o seguinte comando:
sudo hdparm -B 127 /dev/sdc
O outro comando, hdparm -S
, estabelece um intervalo de tempo para que o HD
entre em modo de espera, spindown, automaticamente após o seu uso. O comando
recebe um número, que é calculado de maneira peculiar: de 1 a 240 indica
múltiplos de 5 segundos, enquanto que acima de 240 indica múltiplos de 30
minutos. Seguem alguns exemplos:
Número | Tempo |
---|---|
12 | 1 minuto |
60 | 5 minutos |
240 | 20 minutos |
242 | 1 hora |
Por exemplo, para definir um intervalo de 10 minutos (120*5 segundos = 600 segundos), execute o comando a seguir:
sudo hdparm -S 120 /dev/sdc
Persistência das configurações
Ao executar os comandos acima, a configuração voltará ao estado anterior após a reinicialização do sistema. Para que ela persista, existem dois meios possíveis.
O primeiro modo, mais básico, é adicionar esses comandos a um script que seja
executado na inicialização do sistema operacional. No Ubuntu e derivados, uma
forma simples de fazer isso é editando o arquivo /etc/rc.local
e adicionar os
comandos. Se o arquivo não existir, pode ser criado:
sudo touch /etc/rc.local
sudo chmod +x /etc/rc.local
A linha a ser inserida no arquivo seria a seguinte:
hdparm -S 120 -B 127 /dev/sdc
Outra maneira, ao meu ver até mais adequada, é editar o arquivo
/etc/hdparm.conf
e criar uma nova sessão para o respectivo HD:
/dev/sdc {
spindown_time = 120,
apm = 127
}
É bom ressaltar que os parâmetros spindown_time
e apm
, assim como as as
respectivas flags -S
e -B
da linha de comando, são independentes, isto é,
um não depende do outro para funcionar.
spindown_time
, pode ser que o
serviço smartd
, pelo fato de fazer consultas constantes sobre status do
HD, impeça que o HD entre em modo de espera. Para evitar isso, consulte esta resposta do Stack
Overflow. Basicamente, é preciso configurar o intervalo de consulta do
smartd
para um valor maior que que o intervalo do modo de espera do HD.
Comentários