terça-feira, 26 de junho de 2012

Ajustando a frequência do processador com Cpufrequtils

O pacote Cpufrequtils tem dois utilitários interssantes para ajustar a frequência do processador: cpufreq-info e cpufreq-set.

O primeiro mostra as configurações da cpu.


$ cpufreq-info 
cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009
Reporte erros e bugs para cpufreq@vger.kernel.org, por favor.
analisando o CPU 0:
  driver: acpi-cpufreq
  CPUs que rodam na mesma frequência de hardware: 0
  CPUs que precisam ter suas frequências coordenadas por software: 0
  maior latência de transição: 160 us.
  limites do hardware: 2.00 GHz - 2.67 GHz
  níveis de frequência disponíveis: 2.67 GHz, 2.00 GHz
  reguladores do cpufreq disponíveis: powersave, conservative, userspace, ondemand, performance
  política de frequência atual deve estar entre 2.60 GHz e 2.67 GHz.
                  O regulador "ondemand" deve decidir qual velocidade usar
                  dentro desse limite.
  frequência atual do CPU é 2.67 GHz.
  status do cpufreq: 2.67 GHz:99,79%, 2.00 GHz:0,21%  (2)
analisando o CPU 1:
  driver: acpi-cpufreq
  CPUs que rodam na mesma frequência de hardware: 1
  CPUs que precisam ter suas frequências coordenadas por software: 1
  maior latência de transição: 160 us.
  limites do hardware: 2.00 GHz - 2.67 GHz
  níveis de frequência disponíveis: 2.67 GHz, 2.00 GHz
  reguladores do cpufreq disponíveis: powersave, conservative, userspace, ondemand, performance
  política de frequência atual deve estar entre 2.60 GHz e 2.67 GHz.
                  O regulador "ondemand" deve decidir qual velocidade usar
                  dentro desse limite.
  frequência atual do CPU é 2.67 GHz.
  status do cpufreq: 2.67 GHz:99,79%, 2.00 GHz:0,21%  (2)

Aqui podemos ver que possuo uma máquina com 2 núcleos, que trabalha entre 2.00 Ghz e 2.67 Ghz e estão trabalhando em 2,67Ghz. Se o desempnho for prioridade, podemos fazer a cpu trabalhar no pico, enquanto que se a economia de energia é a prioridade, então podemos configurar os processadores para trabalharem na menor frequência possível. Para isso, usamos cpufreq-set. 

# cpufreq-set -c 1 -d 2Ghz
# cpufreq-set -c 0 -d 2Ghz
# cpufreq-info 
cpufrequtils 007: cpufreq-info (C) Dominik Brodowski 2004-2009
Reporte erros e bugs para cpufreq@vger.kernel.org, por favor.
analisando o CPU 0:
  driver: acpi-cpufreq
  CPUs que rodam na mesma frequência de hardware: 0
  CPUs que precisam ter suas frequências coordenadas por software: 0
  maior latência de transição: 160 us.
  limites do hardware: 2.00 GHz - 2.67 GHz
  níveis de frequência disponíveis: 2.67 GHz, 2.00 GHz
  reguladores do cpufreq disponíveis: powersave, conservative, userspace, ondemand, performance
  política de frequência atual deve estar entre 2.00 GHz e 2.67 GHz.
                  O regulador "ondemand" deve decidir qual velocidade usar
                  dentro desse limite.
  frequência atual do CPU é 2.00 GHz.
  status do cpufreq: 2.67 GHz:99,79%, 2.00 GHz:0,21%  (3)
analisando o CPU 1:
  driver: acpi-cpufreq
  CPUs que rodam na mesma frequência de hardware: 1
  CPUs que precisam ter suas frequências coordenadas por software: 1
  maior latência de transição: 160 us.
  limites do hardware: 2.00 GHz - 2.67 GHz
  níveis de frequência disponíveis: 2.67 GHz, 2.00 GHz
  reguladores do cpufreq disponíveis: powersave, conservative, userspace, ondemand, performance
  política de frequência atual deve estar entre 2.00 GHz e 2.67 GHz.
                  O regulador "ondemand" deve decidir qual velocidade usar
                  dentro desse limite.
  frequência atual do CPU é 2.00 GHz.
  status do cpufreq: 2.67 GHz:99,77%, 2.00 GHz:0,23%  (5)

Reparem agora que as duas cpu's estão trabalhando a 2.0 Ghz.