[FUG-BR] Intencionalmente derrubando desempenho de CPU.

Luiz Otavio O Souza lists.br em gmail.com
Quinta Novembro 6 15:04:01 BRST 2014


2014-11-05 23:40 GMT-02:00 Joao Rocha Braga Filho:
> Dando uma pesquisada no powerd descobri algumas coisas interessantes.
>
> Tem como diminuir o clock do processador à mão.
>
> Com o seguinte comando vi o clock atual e as possibilidades:
>
> root:[748] sysctl -a | grep dev.cpu...freq
> dev.cpu.0.freq: 1093
> dev.cpu.0.freq_levels: 2500/30940 2187/27072 1875/23205 1562/19337
> 1250/18480 1093/16170
>
>
> Note que já reduzi ao mínimo. Como fiz isto? Assim:
>
> root:[747] sysctl dev.cpu.0.freq=1093
> dev.cpu.0.freq: 1093 -> 1093


Joao,

Existem duas partes trabalhando juntas aqui para fazer isso funcionar.

A primeira é baseada no cpufreq(4), uma interface definida no FreeBSD
para exportar as funcionalidades relacionadas a controle de clock da
CPU (freqüências suportadas, freqüência atual e a possibilidade de
setar a freqüência para um novo valor) e isso de uma maneira
independente da tecnologia, marca ou modelo da CPU.

A segunda parte é o powerd(8), um daemon que captura as informações
relevantes do seu sistema para ajustar dinamicamente a freqüência da
CPU (utilizando as funções exportadas pelo cpufreq(4)).

Então, para um ajuste manual, apenas o suporte do cpufreq(4) é o
bastante para que você possa configurar a freqüência da CPU 'na mão '
via sysctl(8).

Já o powerd(8) vai tentar fazer as coisas por você de acordo com o
perfil que você selecionar.

O uso de C-states (citado em outra resposta) aumenta a latencia do
sistema (o tempo que leva entre uma interrupção e a respectiva
resposta do sistema), mas pode ser interessante quando tudo o que se
quer é economia.

>
>
> Como verifiquei se funcionou? Pelo top, vendo o tempo de idle diminuir, pelo
> barulho do ventilador de CPU diminuir, e pela temperatura do processador
> cair
> mais de 10 graus C.
>
> root:[749] sysctl -a | grep dev.cpu...temperature:
> dev.cpu.0.temperature: 47,0C
> dev.cpu.1.temperature: 47,0C
> dev.cpu.2.temperature: 47,0C
> dev.cpu.3.temperature: 47,0C
>
> Em geral o meu computador já tem desempenho mais do que o suficiente
> para o meu dia a dia. Eu gostaria de ter mais memória.
>
> O powerd parece fazer besteira, pois parece não entender que se tratam
> de 4 núcleos.

Não foi porque você setou manualmente a freqüência da cpu 0 ?


>
>
> Eu também brinquei um pouco de parar HDs:
>
> root:[773] atacontrol spindown ad8 60
> root:[774] atacontrol spindown ad8
> ad8: spin down after 60 seconds idle
>
>
>
> Bibliografia:
>
> https://forums.freebsd.org/threads/howto-freebsd-cpu-scaling-and-power-saving.172/
>
> man pages.
>
>
> Será que vou baixar a conta de luz?

Provavelmente... se você rodar tempo suficiente usando um perfil bem
econômico. Se o valor vai ser perceptível na conta  é outra conversa.

Um micro comum (básico) gasta cerca de R$ 40,00 por mês de energia
(ligado 24 x 7), talvez você consiga reduzir um pouco esse valor.

Agora se você quer economia de verdade e caso seja possível para o seu
perfil de uso, mude seu 'home' server pra ARM ou MIPS e veja o consumo
cair para um decimo do que você usa hoje (consumo aproximado de 5W -
tenho uma RPi no alarme de casa que no ultimo teste rodou mais de 6
horas numa bateria de 12V 7Ah).

Att.,
Luiz


Mais detalhes sobre a lista de discussão freebsd