escalonamento de cpufrequency com o debian 8.1 e o Intel XEON E5-1650 v3

1

Eu quero que meu servidor com debian 8.1 não use o escalonamento de cpu, mas sempre execute na frequência mais alta possível.

Eu instalei o cpufrequtils

$ dpkg -l | grep cpufreq
ii  cpufrequtils                   008-1                       amd64        ...
ii  libcpufreq0                    008-1                       amd64        ...

Eu configurei o governador como performance com

$ cat /etc/default/cpufrequtils 

ENABLE="true"
GOVERNOR="performance"
MAX_SPEED="0"
MIN_SPEED="0"

e chamado /etc/init.d/cpurequtils restart

Quando eu listo minhas informações de cpu com cpufreq-info , obtenho resultados como este:

analyzing CPU 2:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 2
  CPUs which need to have their frequency coordinated by software: 2
  maximum transition latency: 0.97 ms.
  hardware limits: 1.20 GHz - 3.80 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 1.20 GHz and 3.80 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 1.73 GHz (asserted by call to hardware).

A última linha mostra que a CPU não está funcionando a toda velocidade. Quando eu verifico os valores de / sys, obtenho os mesmos resultados:

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
echo "--"
cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq

1198203
1199707
2001015
3048828
1551210
1358847
2953808
1982832
1523867
1200253
1654296
3446132
--
1198203
1199707
2001015
2643730
1772695
1358847
2953808
1982832
1523867
1200253
1654296
3446132

O que eu me pergunto é que eu não tenho nenhum arquivo chamado 'scaling_available_frequencies' em / sys que é mencionado em muitos howtos

ls -1 /sys/devices/system/cpu/cpu0/cpufreq/
affected_cpus
cpuinfo_cur_freq
cpuinfo_max_freq
cpuinfo_min_freq
cpuinfo_transition_latency
related_cpus
scaling_available_governors
scaling_cur_freq
scaling_driver
scaling_governor
scaling_max_freq
scaling_min_freq
scaling_setspeed

Os módulos apropriados do kernel são todos carregados:

$ lsmod | grep cpufre
cpufreq_powersave      12454  0 
cpufreq_userspace      12525  0 
cpufreq_conservative    14184  0 
cpufreq_stats          12782  0 

Agora eu defino scaling_min assim:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

Agora recebo Infos como o see, que diz que a frequência deve estar entre 3,80 GHz e 3,80 GHz , mas na verdade não é:

analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 0.97 ms.
  hardware limits: 1.20 GHz - 3.80 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 3.80 GHz and 3.80 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 2.84 GHz (asserted by call to hardware).

O "desempenho" do governador não parece fazer o trabalho. Então, como forçar minhas CPUs a rodarem a toda velocidade?

    
por Janning 29.07.2015 / 09:00

2 respostas

2

Você tinha que verificar seu BIOS, porque os estados P da CPU parecem ser apenas parcialmente reconhecidos. Se for encontrado que muitos BIOS do servidor (principalmente DELL) estão realmente quebrados quando se lida com economia de energia.

Então, entre na sua BIOS e desative quaisquer recursos de economia de energia da CPU. Os únicos que eu sugiro que você deixe habilitado são aqueles referentes aos estados C (es: C1E, C6 / E, ecc.). Se o seu BIOS permitir que você selecione um perfil de energia, selecione "Desempenho máximo".

    
por 29.07.2015 / 09:22
0

3.8Ghz soa como uma frequência de turbo-boost. Você não pode rodar todos os núcleos a essa velocidade o tempo todo - a CPU não permite isso (ele superaria seu orçamento de energia). Sua CPU provavelmente está funcionando o mais rápido possível.

Nos kernels mais recentes, o governador apenas informa à CPU o que priorizar - desempenho ou economia de energia - e permite obter o melhor resultado possível, dependendo da atividade. Está em uma posição muito melhor para fazer isso.

    
por 07.10.2017 / 03:25