CPUs ociosas exibem 800 MHz no /proc/cpuinfo devido a uma otimização do kernel 5.11+. Utilize cpupower ou turbostat para obter leituras precisas de frequência.
Descrição do problema
Quando uma instância está ociosa, o arquivo /proc/cpuinfo pode relatar uma frequência de CPU de 800 MHz para algumas CPUs. Esse valor difere da frequência listada na especificação da instância, conforme mostrado abaixo.
cpu MHz : 800.000
cpu MHz : 800.000
cpu MHz : 800.000
cpu MHz : 2996.976
cpu MHz : 800.000
cpu MHz : 800.000
cpu MHz : 800.000
cpu MHz : 800.000
cpu MHz : 800.000
cpu MHz : 800.000
cpu MHz : 800.000
cpu MHz : 800.000
cpu MHz : 3192.046
cpu MHz : 800.000
cpu MHz : 3200.000
cpu MHz : 800.000
cpu MHz : 2975.717
cpu MHz : 800.000
cpu MHz : 3005.653
cpu MHz : 800.000
cpu MHz : 800.000
cpu MHz : 800.000
cpu MHz : 800.000
cpu MHz : 800.000
cpu MHz : 800.000
cpu MHz : 800.000
cpu MHz : 800.000
Esta solução também se aplica aos seguintes kernels e sistemas operacionais:
Causa
A partir do kernel Linux 5.11, um patch (commit ID: 3fcd6a230fa7d03bffcb831a81b40435c146c12b) foi adicionado para melhorar o desempenho do sistema e a resposta da CPU.
x86/cpu: Avoid cpuinfo-induced IPIing of idle CPUs
Currently, accessing /proc/cpuinfo sends IPIs to idle CPUs in order to
learn their clock frequency. Which is a bit strange, given that waking
them from idle likely significantly changes their clock frequency.
This commit therefore avoids sending /proc/cpuinfo-induced IPIs to
idle CPUs.
Ao acessar o /proc/cpuinfo, a função rcu_is_idle_cpu verifica se a CPU está ociosa. Em caso afirmativo, ela retorna min_freq, cujo valor padrão é 800 MHz. Algumas versões do kernel relatam esse valor de min_freq como a frequência base da CPU.
Solução
A frequência exibida no estado ocioso pode não corresponder à especificação, mas o desempenho real não é afetado, pois a CPU ainda atinge sua frequência especificada sob carga.
Para obter leituras precisas de frequência, utilize ferramentas como cpupower ou turbostat.
Por exemplo, execute o cpupower para verificar a frequência:
sudo cpupower frequency-info
A saída mostra que a frequência atual da CPU é de 3,20 GHz.
[ecs-user@iZ2zxxx187kyZ ~]$ sudo cpupower frequency-info
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: Cannot determine or is not supported.
hardware limits: 800 MHz - 3.80 GHz
available cpufreq governors: performance powersave
current policy: frequency should be within 800 MHz and 3.80 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency: Unable to call hardware
current CPU frequency: 3.20 GHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: yes
Alguns tipos de instância podem não oferecer suporte a essa consulta de frequência. Consulte Visão geral das famílias de instâncias para verificar a frequência base da sua instância específica.
Instruções
Leia o conteúdo em inglês para compreender O QUE precisa ser comunicado
Escreva o português brasileiro DO ZERO — esqueça a estrutura das frases em inglês
Preserve toda a formatação markdown, blocos de código, links e imagens exatamente como estão
Tags xref (
<a data-tag="xref" ...>texto</a>) — preserve a tag INTEIRA com todos os atributos na ordem e caixa originais, traduza APENAS o texto visível entre > eAplique todas as regras específicas do idioma rigorosamente
Aplique as regras de stopwords com tolerância zero
Use o modo imperativo em etapas numeradas e listas de procedimentos
Garanta a consistência terminológica — o mesmo termo deve ter a mesma tradução em todo o documento
Varie os inícios das frases em listas/tabelas — nenhum início deve se repetir mais de 3 vezes
Retorne APENAS o documento markdown em português brasileiro, sem explicações