Veja também o artigo sobre como implementar o Cool'n'Quiet no Windows .
Conhecendo o cpufrequtils:
O pacote que foi instalado (cpufrequtils) fornece dois programas: cpufreq-info e cpufreq-set. Conforme o próprio nome sugere, o primeiro exibe informações do sistema, enquanto o segundo faz as alterações propriamente ditas.
Primeiro vamos ver detalhes sobre a CPU utilizada (por questões de espaço vou colocar apenas as linhas que nos interessam):
debian:~# cat /proc/cpuinfoEste processador é um Sempron 3200+ (que roda a um clock de 1800MHz = 1.8GHz). Vamos ver o que o cpufreq-info tem a dizer sobre ele:
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 95
model name : AMD Sempron(tm) Processor 3200+
stepping : 2
cpu MHz : 1800.000
cache size : 128 KB
debian:~# cpufreq-infoInterpretando a saída do cpufreq-info, linha por linha (só as mais importantes):
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to linux@brodo.de, please.
analyzing CPU 0:
driver: powernow-k8
CPUs which need to switch frequency at the same time: 0
hardware limits: 1000 MHz - 1.80 GHz
available frequency steps: 1.80 GHz, 1000 MHz
available cpufreq governors: userspace, conservative, powersave, ondemand, performance
current policy: frequency should be within 1000 MHz and 1.80 GHz.
The governor "userspace" may decide which speed to use
within this range.
current CPU frequency is 1.80 GHz (asserted by call to hardware).
driver: powernow-k8
Driver carregado via módulo(como dito antes, depende da arquitetura do processador)
hardware limits: 1000 MHz - 1.80 GHz
Clock mínimo e máximo que seu processador suporta. Obviamente vai depender do processador. Tenho um Athlon 64 AM2 3200+ que suporta entre 1GHz e 2GHz.
available frequency steps: 1.80 GHz, 1000 MHz
Quais são as frequencias disponíveis para esse processador. Nesse caso, ele só aceita os extremos. Meu outro Athlon citado anteriormente suporta 1GHz, 1.8GHz e 2GHz
available cpufreq governors: userspace, conservative, powersave, ondemand, performance
Governors disponíveis (vai depender dos módulos que foram carregados no passo anterior - vide a 1ª parte do artigo)
current policy:
A segunda linha mostra qual o governor em uso atualmente. No exemplo, é o userspace.
current CPU frequency is 1.80 GHz (asserted by call to hardware).
Informa a frequencia atual do processador (que também pode ser verificada por cat /proc/cpuinfo)
De posse dessas informações, já podemos começar a brincadeira. Vamos ver alguns cenários abaixo:
1) Selecionar uma frequência manualmente:
debian:~#cpufreq-set -f 1000000Obs: A frequência deve ser informada em Khz (kilohertz). Para saber os valores disponíveis em kilohertz, execute o cpufreq-info e veja a linha available frequency steps. Para converter MHz em KHz, multiplique o valor por 1.000. Para converter GHz em KHz, multiplique o valor por 1.000.000
2) Configurar o clock dentro de uma determinada faixa:
As opções -d e -u do cpufreq-set permitem configurar as frequências mínima e máxima respectivamente. Por exemplo, suponhamos que você possua um processador, que suporte as seguintes frequências:
debian:~#cpufreq-info | grep stepsQue em KHz são respectivamente 2800000 2000000 1500000 1000000.
available frequency steps: 2.8GHz, 2GHz, 1.5GHz, 1000MHz
Para fazer com que ele nunca trabalhe abaixo de 1.5GHz execute
debian:~#cpufreq-set -d 1500000Por outro lado, se você não quer que seu processador trabalhe acima de determinada frequência, informe ela com a opção -u:
debian:~#cpufreq-set -d 20000003) Selecionar um governor específico:
debian:~# cpufreq-set -g <nome>
Atenção: em
debian:~# cpufreq-set -g powersavePara exibir a lista de governors disponíveis, execute:
debian:~# cpufreq-info -gPara confirmar a mudança de frequencia, execute (a opção -m exibe as frequências em um formato que facilita a leitura):
userspace conservative powersave ondemand performance
debian:~# cpufreq-info -f -mOu via /proc/cpuinfo:
1000 MHz
debian:~# cat /proc/cpuinfoLendo as estatísticas:
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 95
model name : AMD Sempron(tm) Processor 3200+
stepping : 2
cpu MHz : 1000.000
cache size : 128 KB
Se você carregou o módulo cpufreq_stats, pode acessar algumas estatísticas do gerenciamento de energia em dois arquivos dentro do diretório /sys/devices/system/cpu/cpu0/cpufreq/stats/:
total_trans: mostra quantas vezes o sistema trocou o nível de clock do processador.
Ex:
debian:~# cat /sys/devices/system/cpu/cpu0/cpufreq/stats/total_transMeu processador mudou o clock 963 vezes.
963
time_in_state: Lista quanto tempo o processador ficou em cada nível de clock. A primeira coluna mostra o clock (divida o valor por 1.000.000 para obter a velocidade em GHz) e a segunda coluna mostra os segundos em que o (divida o valor obtido por 100 para obter o tempo em segundos).
Ex:
debian:~# cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state
1800000 1455033
1000000 7436681
Meu processador passou 14550 segundos funcionando em 1.8GHz e 74366 segundos funcionando em 1GHz
Configurando manualmente:
Se você prefere fazer as coisas do "modo difícil", você pode ignorar o cpufrequtils e ler/escrever os valores desejados diretamente nos arquivos do diretório /sys/devices/system/cpu/cpu0/cpufreq/ :
Obs: Para ler os valores utilize cat
Ex: 1800000 / 1.000.000 = 1.8GHz
scaling_available_frequencies: Lista as velocidades disponíveis (equivalente a cpufreq-info)
scaling_available_governors: Lista os governors disponíveis (equivalente a cpufreq-info -g)
scaling_cur_freq: Permite ler/selecionar a velocidade atual da CPU (equivalente a cpufreq-info -f/cpufreq-info -f)
scaling_governor: Permite ler/selecionar o governor atualmente em uso (equivalente a cpufreq-info -g/cpufreq-set -g)
scaling_min_freq: Permite ler/selecionar a velocidade mínima que se deseja para a CPU. A velocidade deve ser igual ou superior à velocidade mínima (equivalente a cpufreq-set -d)
scaling_max_freq: Permite ler/selecionar a velocidade máxima que se deseja para a CPU. A velocidade deve ser igual ou inferior à velocidade máxima (equivalente a cpufreq-set -u)
cpuinfo_cur_freq: Velocidade atual da CPU (equivalente a cpufreq-info -f)
cpuinfo_max_freq: Velocidade máxima suportada pela CPU (equivalente a cpufreq-info -l)
cpuinfo_min_freq: Velocidade mínima suportada pela CPU (equivalente a cpufreq-info -l)
4 comentários:
Quite good topic
Necessidade de manter testando meu blog. Não funciona como eu quero que ela ainda. Thx para o tema. Talvez isto vai ter o meu olhar melhor.
hola, Chicos, Acabo de añadir el feed a mis favoritos. Me gusta mucho leer sus mensajes.
gracias! Sus comentarios me animan a seguir escribiendo. abrazos!
Postar um comentário