Posso limitar a frequência da CPU?

2
  • Como posso limitar a frequência da minha CPU por um valor?

  • cpufreq oferece a correção da frequência para um valor constante, em vez de deixá-lo variar em um intervalo.

  • Também oferece conservador, sob demanda, economia de energia e desempenho. Eu não sei o que eles significam. mas eles não limitam a frequência também. O que as quatro configurações significam realmente? Em outras palavras, quais são suas políticas?

por Tim 21.02.2015 / 01:12

1 resposta

4

Pergunta 2: Para o driver acpi cpufreq:

O modo conservativo tem uma curva de resposta de carga-versus-CPU-frequência mais lenta, o que significa que leva um pouco mais de carga na CPU antes que a freqüência da CPU aumente.

O modo ondemand tem uma curva de resposta de carga-versus-CPU-frequência mais rápida, o que significa uma carga menor na CPU antes que a freqüência da CPU aumente.

O driver usa histerese, de modo que as curvas de carga crescente e decrescente versus a freqüência da CPU não são as mesmas.

O modo de economia de energia bloqueia o estado-p solicitado no menor valor para o processador. O resultado é que a CPU está sempre na menor frequência de clock.

o modo de desempenho bloqueia o pstate de destino no valor mais alto do processador. No entanto, observe que alguns processadores podem fazer o back-off sem carga sozinhos. Por simplicidade, pense nisso como se a CPU estivesse sempre na frequência mais alta.

Pergunta 1: Sim, você pode limitar a frequência superior.

Primeiro, obtenha uma lista das frequências disponíveis (exemplo do meu computador):

doug@s15:~/temp$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
3401000 3400000 3300000 3100000 3000000 2900000 2800000 2600000 2500000 2400000 2200000 2100000 2000000 1900000 1700000 1600000

Em seguida, decida o que você deseja que a freqüência máxima seja, observando que ela deve estar na lista. Em seguida, defina:

echo 2600000 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

E repita para todas as CPUs.

Uma versão de script pode ser preferida, executada como sudo:

#! /bin/bash
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq
for file in /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq; do echo "2900000" > $file; done
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq
    
por Doug Smythies 21.02.2015 / 01:28