PowerTOP e outras dicas

Ao usar um notebook, outro aliado importante é o PowerTOP (http://www.lesswatts.org/), um aplicativo open-source, desenvolvido pela Intel, que se oferece para monitorar o consumo de energia do notebook e detectar mudanças de configuração que podem ser usadas para melhorar o consumo. Ele oferece um relatório bastante completo, mostrando o consumo de energia atual, em watts, a percentagem de tempo que o processador passou operando em cada um dos degraus de frequência, os aplicativos ou periféricos que acordam o processador com mais frequência e assim por diante.

Mais do que servir como um simples monitor, ele oferece dicas de configurações que podem reduzir o consumo. Você pode tanto selecionar os comandos sugeridos com o botão do meio e colá-los no terminal (sempre executando como root) quanto deixar que ele mesmo faça as alterações, pressionando a tecla especificada:

A maioria das configurações não são permanentes, de forma que ao reiniciar o micro e abrir novamente o PowerTOP, ele voltará a sugerir as mesmas alterações. Você pode tornar as alterações definitivas inserindo os comandos no arquivo “/etc/rc.local“, de forma que eles sejam executados durante o boot.

Para abrir o PowerTOP, basta chamá-lo através do terminal, como root:

# powertop

Se ele não estiver disponível, instale-o usando o gerenciador de pacotes, como em:

# apt-get install powertop

ou:

# yast --install powertop

Como você pode imaginar, o PowerTOP é otimizado para uso em conjunto com processadores da Intel, mas nada impede que você também o utilize em notebooks com processadores da AMD ou da VIA. Nesse caso, ele não será capaz de exibir detalhes sobre os estados do processador, mas as dicas de otimização (que são o mais importante) continuam sendo exibidas. Nesse exemplo, ele está rodando em um notebook com um AMD Turion:

Para melhores resultados, é recomendável utilizar uma distribuição baseada no kernel 2.6.21 ou mais recente, a que foi a partir dessa versão que o kernel passou a ser tickless, abandonando o uso do timer de 1000Hz, usado nas versões anteriores, que obrigava o processador a acordar a cada um milhão de ciclos, reduzindo a eficiência dos sistemas de economia de energia. Foi também a partir dessa versão que o kernel ganhou o suporte à desativação das portas USB que não estão em uso, entre diversas outras melhorias.

Ao mexer nas opções de gerenciamento, é importante medir o consumo, de forma que você possa ir acompanhando os resultados. Desde que o ACPI esteja ativo, você pode acompanhar o consumo e a carga da bateria usando o comando:

$ cat /proc/acpi/battery/BAT0/state

Ele mostra algo como:

present: yes
capacity state: ok
charging state: discharging
present rate: 18711 mW
remaining capacity: 31922 mWh
present voltage: 11623 mV

Este comando deve ser executado com o notebook desligado da tomada, para que o sistema possa medir o consumo da bateria. O campo “present rate” indica o consumo atual (no caso 18.711 watts-hora) e o campo “remaining capacity” mostra a energia restante (31.922 watts-hora, suficientes para pouco mais de uma hora e meia de autonomia, se mantida esta média de consumo).

Naturalmente, a autonomia da bateria varia de acordo com o consumo, por isso, quanto mais baixo o consumo, maior a autonomia das baterias. Outra observação é que em alguns modelos, como na maioria dos HP, o consumo é informado em miliamperes e não em miliwatts, tornando o cálculo um pouco mais complicado, já que você precisa multiplicar pela tensão da bateria.

Se o comando “cat /proc/acpi/battery/BAT0/status” informa que o notebook está consumindo 2000 miliamperes e ele utiliza uma bateria de 11.1V, significa que ele está consumindo 22220 miliwatts (2000 x 11.1), ou seja, 22.2 watts. Se ele utiliza uma bateria de 4400 mAh, significa que, mantendo esta média de consumo, a bateria duraria exatamente duas horas.

A saída do comando varia frequentemente, de acordo com o uso. Você pode deixar o terminal monitorando o consumo continuamente usando o comando:

$ watch cat /proc/acpi/battery/BAT0/state

Em casos em que a medição do ACPI não esteja disponível, você pode ver algumas informações através do comando lshal, como em:

# lshal | grep battery

Depois do gerenciamento do clock do processador, o próximo passo é ajustar o brilho da tela, já que depois dele (processador), a tela é justamente o componente que consome mais energia. Em muitos notebooks, a diferença entre usar a tela com o brilho no máximo e no mínimo pode chegar a quase 10 watts.

Você pode ir ajustando o brilho da tela usando as teclas de atalho e ir acompanhando a redução no consumo em cada nível de brilho, até chegar na melhor relação entre consumo e conforto.

Em casos onde o ajuste do brilho através das teclas de atalho não funciona, pode ser possível ajustar o brilho também através de algum arquivo dentro do diretório /proc. No caso dos notebooks da Asus, por exemplo, o ajuste pode ser feito através do arquivo “/proc/acpi/asus/brn” (é necessário que o módulo “asus_acpi” esteja carregado), que contém um número de 0 a 15, indicando o nível de brilho. É possível alterar a configuração alterando o arquivo com o valor desejado, como em:

# echo 4 > /proc/acpi/asus/brn

ou:

# echo 10 > /proc/acpi/asus/brn

Não é muito prático ficar fazendo esses ajustes via linha de comando, mas você pode criar ícones no desktop com os comandos que usa mais corriqueiramente, de forma a facilitar o acesso a eles.

Outra medida saudável é desativar o protetor de tela e no lugar configurar o monitor para desligar depois de um certo tempo de inatividade. Na maioria das distribuições, você pode ajustar isso através do Kcontrol (Periféricos > Tela) ou outra ferramenta de configuração. É possível também fazer o ajuste via linha de comando, usando o xset:

# xset +dpms
# xset dpms 0 0 120

O primeiro comando ativa o DPMS, necessário para poder desligar a tela via software, enquanto o segundo ajusta o tempo de inatividade, em segundos. O “120” que usei no exemplo faz com que a tela seja desligada depois de dois minutos de inatividade.

A placa wireless é também uma consumidora de energia respeitável. Naturalmente, se você usa uma rede cabeada (ou um modem 3G), pode simplesmente desativar o transmissor usando a tecla de atalho ou o botão correspondente. Entretanto, na maioria dos casos, o wireless é um recurso essencial, que você não pode se dar ao luxo de desativar.

Nas placas com chipset Intel, está disponível um sistema de gerenciamento de energia para a placa wireless, que, assim como no caso do gerenciamento do clock do processador, é capaz de reduzir o consumo sem prejudicar o funcionamento da placa. Ele pode ser ativado usando o comando:

# iwpriv eth1 set_power 5

Note que o “eth1” indica o device da placa de rede e pode mudar de acordo com o notebook (use o comando “ifconfig” em caso de dúvidas) e o “5” indica o nível de gerenciamento, que vai do “0” (desativado) ao “5” (nível máximo de economia).

Nos notebooks com placa de rede Intel E1000 (Gigabit), você pode economizar mais um pouco de energia reduzindo a velocidade da interface para 100 megabits, o que é feito usando o comando:

# ethtool -s eth0 autoneg off speed 100

Para voltar à velocidade original, use:

# ethtool -s eth0 autoneg off speed 1000

Embora não seja um consumidor de energia tão voraz quando o LCD, o HD consome de 3 a 4 watts (dependendo do modelo) quando ativado, o que corresponde a uma boa parcela do consumo do notebook. A ideia é mantê-lo no estado de baixo consumo na maior parte do tempo.

Uma das opções mais efetivas para economizar energia para o HD é usar a opção “noatime” como parâmetro de montagem. Ela evita que o sistema precise atualizar a informação de “último acesso” dos arquivos cada vez que eles são lidos. Com isso, o desempenho é melhor e o HD passa mais tempo nos estágios de economia de energia.

Para isso, edite o arquivo “/etc/fstab”, adicionando o parâmetro “noatime” para todas as partições (com exceção da partição swap), incluindo a partição raiz, como em:

/dev/sda1 / ext3 defaults,relatime 0 1
/dev/sda2 /home ext3 defaults,noatime 0 2

Para que as alterações entrem em vigor sem precisar reiniciar o micro, você pode usar o comando “mount -o remount,noatime”, seguido do diretório referente à cada partição, como em:

# mount -o remount,noatime /
# mount -o remount,noatime /mnt/sda6

O próximo passo é configurar o hdparm, de forma a ativar o gerenciamento avançado de energia (-B 1) para o drive e fazer com que ele entre em estado de baixo consumo automaticamente (-S) após um certo período de inatividade.

Para fazer com que o drive entre em estágio de baixo consumo depois de dois minutos, use:

# hdparm -B 1 -S 24 /dev/sda

Para que entre depois de 30 segundos (configuração bastante agressiva), use:

# hdparm -B 1 -S 6 /dev/sda

O valor depois do “-S” indica o tempo em múltiplos de 5 segundos. Para usar outros valores, basta multiplicar o número em minutos por 12. Para 10 minutos, por exemplo, você usaria o valor “120”.

Ao usar qualquer distribuição com um kernel recente, do 2.6.19 em diante, você pode ativar também o “laptop mode”, que faz com que o kernel utilize diversas opções de gerenciamento de energia e de uso dos barramentos de I/O adequadas a notebooks. Ativar o laptop mode resulta em mais uma pequena redução no consumo, sobretudo quando o notebook está executando tarefas leves. Você pode ativá-lo usando o comando:

# echo 5 > /proc/sys/vm/laptop_mode

Outra otimização é com relação ao buffer de escrita, usado para cachear as operações de escrita dos programas, reduzindo o número de vezes que o HD precisa ser ativado.

Por padrão, o kernel realiza as gravações a cada 5 segundos, o que reduz a possibilidade de perda de dados em desligamentos incorretos, mas em troca faz com que o HD seja acordado de forma muito frequente. Como em um notebook temos a bateria, que evita que o equipamento seja desligado ou reinicie por causa de variações na rede elétrica, é seguro usar intervalos maiores, desde que você não tenha o hábito de ficar desligando o notebook no botão.

A configuração vai no arquivo “/proc/sys/vm/dirty_writeback_centisecs”, onde o intervalo é especificado em centésimos de segundo. Para que o valor seja ajustado para dois minutos, por exemplo, use:

# echo 12000 > /proc/sys/vm/dirty_writeback_centisecs

Outra mudança que ajuda a reduzir o volume de leituras no HD, permitindo que o drive passe mais tempo em modo de baixo consumo é armazenar os logs e arquivos de trava do sistema em um ramdisk usando o tmpfs. Isso tem a desvantagem de fazer com que os logs sejam perdidos ao reiniciar o micro (o que não é um grande problema em um notebook de qualquer maneira), mas faz com que todas estas operações de escrita (que em situações normais acordariam o HD) passem a ser feitas na memória RAM, sem qualquer impacto sobre o consumo.

O grande problema em armazenar os logs no ramdisk é que muitos aplicativos (entre eles o apt) presumem que as pastas que utilizam para armazenar os logs estarão sempre presentes dentro do diretório e se recusam a trabalhar se o diretório estiver vazio (isso também acontece caso você inadvertidamente delete o conteúdo do diretório “/var/log” manualmente).

Para resolver isso, precisamos fazer com que o sistema passe a recriar as pastas atualmente presentes durante o boot. Uma forma rápida de fazer isso é usar este mini-script, que verifica quais são as pastas atualmente presentes no diretório e adiciona os comandos no arquivo “/etc/rc.local” para que elas sejam recriadas durante o boot:

#!/bin/sh

# Acessa o diretório:
cd /var/log/

# Escreve a lista das pastas no arquivo "/etc/rc.local"
for i in `ls -d */`; do
echo "mkdir /var/log/$i" >> /etc/rc.local
done

sed -i -e '/exit 0/D' /etc/rc.local 

O comando do sed na última linha do script, remove a linha “exit 0” no final do arquivo, que faz com que ele seja finalizado antes de executar os comandos. Você pode simplesmente editar o arquivo e remover a linha “exit 0” manualmente se preferir.

A partir daí, falta apenas ativar a montagem propriamente dita, adicionando as linhas a seguir no final do arquivo “/etc/fstab” e reiniciando o PC:

tmpfs /var/log tmpfs defaults 0 0
tmpfs /var/lock tmpfs defaults 0 0

Em caso de problemas, basta remover as linhas e reiniciar novamente. As pastas “/var/log” e “/var/lock” antigas não são deletadas durante a montagem, por isso continuam disponíveis para o caso de mudar de ideia.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X