Para os kernels 3.x
A interface para CPUFreq foi alterada nos novos kernels. Isso inclui o CentOS 6. Você pode ler sobre toda a interface aqui na documentação do Red Hat Enterprise Linux (RHEL) intitulada: Capítulo 3. Infraestrutura e Mecânica Básica .
Especificamente, a seção sobre Configuração da CPUFreq . Aqui estão os passos necessários para configurá-lo.
Drivers CPUFreq
$ ls -1 /lib/modules/'uname -r'/kernel/arch/x86/kernel/cpu/cpufreq/
acpi-cpufreq.ko
mperf.ko
p4-clockmod.ko
pcc-cpufreq.ko
powernow-k8.ko
speedstep-lib.ko
carregue o driver apropriado
$ modprobe acpi-cpufreq
instalar a ferramenta cpupower
$ yum install cpupowerutils
ver os governadores
$ cpupower frequency-info --governors
analyzing CPU 0:
ondemand userspace performance
Portanto, atualmente só temos esses 3 governors carregados: ondemand , userspace e performance .
governadores de carregamento que estão faltando
Você pode obter uma lista de todos os administradores disponíveis assim.
$ ls -1 /lib/modules/'uname -r'/kernel/drivers/cpufreq/
cpufreq_conservative.ko
cpufreq_ondemand.ko
cpufreq_powersave.ko
cpufreq_stats.ko
freq_table.ko
$ modprobe cpufreq_powersave
confirmar os módulos até agora:
$ lsmod |grep cpuf
cpufreq_powersave 1196 0
cpufreq_ondemand 10544 8
acpi_cpufreq 7763 0
freq_table 4936 2 cpufreq_ondemand,acpi_cpufreq
mperf 1557 1 acpi_cpufreq
confirma quais governadores são carregados
$ cpupower frequency-info --governors
analyzing CPU 0:
powersave ondemand userspace performance
visualizando a política atual
$ cpupower frequency-info
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0 1 2 3 4 5 6 7
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 10.0 us.
hardware limits: 1.60 GHz - 3.20 GHz
available frequency steps: 3.20 GHz, 3.20 GHz, 3.07 GHz, 2.93 GHz, 2.80 GHz, 2.67 GHz, 2.53 GHz, 2.40 GHz, 2.27 GHz, 2.13 GHz, 2.00 GHz, 1.87 GHz, 1.73 GHz, 1.60 GHz
available cpufreq governors: powersave, ondemand, userspace, performance
current policy: frequency should be within 1.60 GHz and 3.20 GHz.
The governor "ondemand" may decide which speed to use
within this range.
current CPU frequency is 1.60 GHz (asserted by call to hardware).
boost state support:
Supported: yes
Active: yes
2500 MHz max turbo 4 active cores
2500 MHz max turbo 3 active cores
2500 MHz max turbo 2 active cores
2600 MHz max turbo 1 active cores
Na saída acima, você pode ver que minha política atual é ondemand . Para ajustar a política e a velocidade, use este comando para fazer isso:
$ cpupower frequency-set --governor performance
Setting cpu: 0
Setting cpu: 1
Setting cpu: 2
Setting cpu: 3
Setting cpu: 4
Setting cpu: 5
Setting cpu: 6
Setting cpu: 7
confirma novo governador
$ cpupower frequency-info
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0 1 2 3 4 5 6 7
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 10.0 us.
hardware limits: 1.60 GHz - 3.20 GHz
available frequency steps: 3.20 GHz, 3.20 GHz, 3.07 GHz, 2.93 GHz, 2.80 GHz, 2.67 GHz, 2.53 GHz, 2.40 GHz, 2.27 GHz, 2.13 GHz, 2.00 GHz, 1.87 GHz, 1.73 GHz, 1.60 GHz
available cpufreq governors: powersave, ondemand, userspace, performance
current policy: frequency should be within 1.60 GHz and 3.20 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency is 3.20 GHz (asserted by call to hardware).
boost state support:
Supported: yes
Active: yes
2500 MHz max turbo 4 active cores
2500 MHz max turbo 3 active cores
2500 MHz max turbo 2 active cores
2600 MHz max turbo 1 active cores
Você também pode ajustar as freqüências mínimas / máximas da CPU em uma política usando cpupower frequency-set --min <freq> --max <freq>
. Veja esta página para mais detalhes sobre o que você pode fazer com cpupower frequency-set
.
fazendo o acima sem cpupowerutils
Então, finalmente, se você não tem o pacote cpupowerutils instalado, você pode interagir com ele da mesma maneira que você fez nos kernels 2.6 anteriores. Principalmente você ecoa valores no sistema de arquivos sysfs
.
por exemplo
$ echo 360000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
Para kernels 2.6
Você pode ler sobre os vários recursos do cpufreq neste site .
trecho da escala de freqüência da CPU no Linux com cpufreq
ignore_nice_load - This parameter takes a value of '0' or '1'. When set to '0' (its default), all processes are counted towards the 'cpu utilization' value. When set to '1', the processes that are run with a 'nice' value will not count (and thus be ignored) in the overall usage calculation. This is useful if you are running a CPU intensive calculation on your laptop that you do not care how long it takes to complete as you can 'nice' it and prevent it from taking part in the deciding process of whether to increase your CPU frequency. To turn this on do the following.
sudo sh -c "echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice_load"
Eu colocaria um 0 nesse arquivo, pois esse deveria ser o padrão. Se você tem algum processo de execução longa, o que duvido muito, você pode configurá-lo para 1.