Esta resposta é principalmente especulativa, porque eu não sei nada sobre gerenciamento de energia em processadores Intel e não olhei para o código Linux, mas acho que é plausível.
Eu acho que explicação do derobert sobre gerenciamento de energia é o que está acontecendo. O gerenciamento de energia é um compromisso entre consumo de energia e desempenho. Quando o processador não está sendo usado em 100% de seu desempenho de pico, é benéfico reduzir sua frequência, o que o torna mais lento, porém mais frio.
O Linux varia a frequência da CPU ao longo do tempo. Como isso é controlado por políticas chamadas governors . A idéia geral é que, quando o sistema não usa a CPU durante todo o tempo, reduz a freqüência da CPU. Por outro lado, se a CPU estiver continuamente ocupada por um tempo, o kernel aumenta a frequência.
Ver intel_idle
agendado significa que o núcleo não está executando código, mas na verdade em um modo "suspenso", onde consome pouca energia. Isso traz uma economia de energia maior do que simplesmente reduzir a frequência, mas a um custo maior: embora a CPU reative quando uma interrupção ocorre, isso leva algum tempo (dezenas de microssegundos? mais?).
É perfeitamente normal ver intel_idle
quando você não está utilizando todos os seus núcleos. Isso economiza muita energia (tanto para o processador em si quanto para os dispositivos de resfriamento), em comparação com ter a CPU a toda velocidade o tempo todo. A única razão pela qual você pode ter que desabilitar esse mecanismo é se você precisa de uma latência muito baixa . Se você executar um aplicativo com uso intenso da CPU, verá menos e menos intel_idle
. Utilizar o modo ocioso da CPU não custa desempenho, exceto durante o período de transição, onde o kernel ainda não decidiu totalmente que o sistema precisa de muita energia da CPU.
Se você saturar totalmente seus núcleos, você alcançará 0% intel_idle
. Note que pode ser difícil saturar todos os núcleos (embora um benchmark especialmente projetado possa fazê-lo) já que todo o código e dados que estão sendo executados não cabem no cache da CPU, o fator limitante será a velocidade de acesso da RAM . "Todo o código e dados" inclui tudo o que está sendo executado na máquina, incluindo sua interface de usuário; na prática, saturar todos os núcleos é raro.