Quais são as implicações de configurar o regulador da CPU para “performance”?

2

Li recentemente que posso obter mais desempenho do meu processador, definindo o regulador como "performance" em vez de "powersave". De acordo com o Wiki do Arch , isto irá "executar a CPU na frequência máxima" em vez do "mínimo frequência ".

Eu achei este texto confuso, então eu também li a documentação do kernel .

2.1 Performance

The CPUfreq governor "performance" sets the CPU statically to the highest frequency within the borders of scaling_min_freq and scaling_max_freq.

2.2 Powersave

The CPUfreq governor "powersave" sets the CPU statically to the lowest frequency within the borders of scaling_min_freq and scaling_max_freq.

O que significa "estaticamente"? Para mim, isso contrasta com a "dinâmica" e implica que a frequência nunca mudaria, ou seja, com a economia de energia a frequência da CPU seria sempre um valor único, igual a scaling_min_freq . No entanto, isso claramente não é o caso. Atualmente, estou executando "powersave" por padrão. Eu posso monitorar as frequências da CPU com

$ watch grep \"cpu MHz\" /proc/cpuinfo

e veja-os mudando dinamicamente.

O que significa a documentação do kernel por "estaticamente"? Quais fatores afetam a frequência da CPU e como elas mudam com "economia de energia" e "desempenho"? Portanto, quais são as implicações de mudar do primeiro para o último? Uma frequência mais alta seria usada? Durante quais circunstâncias? Especificamente, isso afetará o consumo de energia, o calor e a vida útil da minha CPU?

    
por Sparhawk 22.04.2018 / 23:35

2 respostas

5

Para registro, as cpufreq (atualizadas) documentação está aqui .

What does "statically" mean?To me, it contrasts with "dynamic", and implies frequency would never change, i.e. with powersave the CPU frequency would always be a single value, equal to scaling_min_freq

Você está certo. Nos antigos dias do driver cpufreq , havia dois tipos de governadores: dinâmicos e estáticos. A diferença era que os governadores dinâmicos ( ondemand e conservative ) podiam alternar entre freqüências de CPU com base na utilização da CPU, enquanto os governadores estáticos ( performance e powersave ) nunca alterariam a frequência da CPU. No entanto, como você percebeu, com o novo driver

this is clearly not the case.

Isso ocorre porque o novo driver, chamado intel_pstate opera de maneira diferente. Os pontos de desempenho da operação p-states aka envolvem gerenciamento de energia ativo e corrida para inatividade, o que significa tensão e frequência de escala. Para mais detalhes, veja a documentação oficial. Quanto à sua pergunta atual,

What are the implications of setting the CPU governor to "performance" ?

também é respondido no mesmo documento. Como em todos os processadores Skylake + , o modo de operação da sua CPU é - por padrão - "Modo Ativo com HWP" para que as implicações de usar o performance governor sejam meu):

HWP + performance

In this configuration intel_pstate will write 0 to the processor’s Energy-Performance Preference (EPP) knob (if supported) or its Energy-Performance Bias (EPB) knob (otherwise), which means that the processor’s internal P-state selection logic is expected to focus entirely on performance,.

This will override the EPP/EPB setting coming from the sysfs interface (see Energy vs Performance Hints below).
Also, in this configuration the range of P-states available to the processor’s internal P-state selection logic is always restricted to the upper boundary (that is, the maximum P-state that the driver is allowed to use).

Em poucas palavras: intel_pstate é na verdade um governador e um driver de hardware tudo em um. Suporta duas políticas:

  • o performance policy sempre seleciona o maior estado p : maximiza o desempenho e volta para um estado de empate de energia virtual zero, também chamado de "Corrida para ocioso"
  • a política powersave tenta equilibrar o desempenho com a economia de energia: seleciona o estado p adequado com base na utilização da CPU (carga nesse estado p específico, provavelmente diminuirá quando for para um estado p mais alto) e capacidade (desempenho máximo no maior estado p)
por 23.04.2018 / 13:40
1

Não sei qual página você está lendo, mas a página escala de freqüência da CPU no wiki. A archlinux menciona que:

Since kernel 3.4 the necessary modules are loaded automatically and the recommended ondemand governor is enabled by default.

O regulador ondemand aumenta a velocidade da CPU quando há carga suficiente no sistema para se beneficiar de uma maior velocidade, ou seja, há algo sendo executado na CPU por um intervalo de tempo integral.

Verifique se o governador está sendo executado para ver se realmente é ondemand , ( /sys/devices/system/cpu/cpufreq/policyN/scaling_governor ) provavelmente não é necessário alterá-lo desse padrão.

performance e powersave na verdade parecem definir a frequência diretamente para o máximo e o mínimo (respectivamente) e não a alterarão dependendo da carga.

Só que a página wiki também menciona que performance assume o papel de ondemand nos sistemas Sandy Bridge e posteriores. É também o padrão nessas máquinas. Então, pensando bem, se o seu sistema é novo o suficiente, você pode estar vendo isso em ação. Verifique o link para um artigo discutindo isso no wiki.

    
por 22.04.2018 / 23:47