Desativar daemon de dimensionamento da CPU “ondemand”

13

Eu tenho um servidor que, a partir da atualização para 10.04, agora está executando o daemon de dimensionamento da CPU "ondemand". Por que ele instalaria isso automaticamente? Não quero que meu servidor economize energia à custa do desempenho.

Um estudante em uma universidade
fonte
5
Você está confundindo o governador ondemand com o economizador de energia.
Leon Nardella
3
Concordou com Leon. Ondemand acelera se houver algo para fazer e diminui se estiver ocioso. Ele não restringe a capacidade da CPU de alterar as velocidades, mas tira proveito disso.
maco 10/09/10
Possível duplicada askubuntu.com/questions/285434/…
Qasim
Aumenta o tempo de resposta em um servidor praticamente inativo.
Um estudante em uma universidade

Respostas:

32

Em vez de desativar a execução do /etc/init.d/ondemandscript (como sugerido por George), você deve usar o comando this

sudo update-rc.d ondemand disable

Para fazer com que o sistema init não inicie o script, esta é a maneira reconhecida de fazê-lo! Desabilitar a permissão exec ( sudo chmod -x /etc/init.d/ondemand) pode ser substituída se o pacote for atualizado.

LassePoulsen
fonte
Se eu fizer: sudo update-rc.d other_governor enable, ele definirá um governador desejado permanente?
userDepth
5

A escala de frequência não é estática. Assim que há trabalho a ser feito, a CPU entra em ação, os estados P aumentam e tudo voa.

Está ativado porque é amplamente visto como uma coisa boa. Economiza energia (bom para sua carteira e para o meio ambiente). Mantém o calor ( tão importante em uma sala de servidores). E é bem imperceptível.

Além disso, nos chips modernos da Intel, se você tiver redimensionamento, poderá usar o "turbo boost", em que um núcleo será executado em velocidades mais altas que o estoque por um tempo. Isso é muito útil para picos de trabalho de thread único. Sem o dimensionamento ativado, você não consegue isso.

Oli
fonte
Quanto tempo leva para ondemand aumentar em um P4 Xeon?
Um estudante em uma universidade
Me deparei com essa resposta antiga e, embora eu concorde com a Oli, há casos de usuário específicos nos quais você deseja desativar o dimensionamento da CPU - gravação de áudio, por exemplo. A menos que você tenha uma necessidade específica, deixá-lo em ondemand
Panther
Por acaso, existe uma maneira de saber qual processo está constantemente alterando os valores mínimo / máximo da escala de frequência? Sempre muda e não sei por quê. consulte askubuntu.com/questions/800797/how-to-enable-turbo-boost #
Sebastien Lorber
2

Você pode instalar a ferramenta debian do rcconf :

sudo apt-get install rcconf

desative o serviço "ondemand" a partir daí.

Manuel
fonte
Não consigo encontrar nenhum aviso de descontinuação na ferramenta rcconf: você está perdendo o ponto e forneceu uma URL completamente errada. Eu não quis dizer a maneira como o Arch configurou os scripts rc, mas a ferramenta debian e que parece viva e bem.
Manuel
Obrigado por apontar e fornecer um link útil! (Eu apaguei o meu comentário inicial e errado)
noz sobre natty
Também editou a resposta original!
Manuel
2

Configure todas as CPUs para governador de desempenho:

for GOVERNOR in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; \
do \
    echo "performance" | sudo tee $GOVERNOR; \
done

Todos os governadores suportados pelo kernel do Linux:

  • desempenho Execute a CPU na frequência máxima.
  • powersave Execute a CPU na frequência mínima.
  • userspace Execute a CPU nas frequências especificadas pelo usuário.
  • ondemand Escala a frequência dinamicamente de acordo com a carga atual. Salta para a frequência mais alta e, em seguida, possivelmente recua à medida que o tempo ocioso aumenta.
  • conservador Escala a frequência dinamicamente de acordo com a carga atual. Escala a frequência mais gradualmente do que ondemand.
  • schedutil Seleção de frequência da CPU orientada pelo agendador

Consulte https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt

Mrskman
fonte
2
Note, sudo echo > ...não faz o que você espera: askubuntu.com/q/230476/158442
Muru
1

Para fazer com que todas as CPUs sejam executadas com desempenho máximo continuamente em um desktop ou servidor Ubuntu, execute:

sudo chmod -x /etc/init.d/ondemand

no prompt do shell e digite sua senha. Isso desativa o shell script que faz com que todas as CPUs sejam executadas na velocidade "OnDemand", tornando-as padrão para velocidade total (desempenho). Você precisará reiniciar para que isso entre em vigor.

Eu testei isso apenas no Ubuntu Jaunty 9.04, mas deve funcionar e não causar problemas em nenhuma versão do Ubuntu.

Eu acho que os padrões do Ubuntu são estranhos para isso. Um desktop ou servidor deve funcionar a toda velocidade, na minha opinião.

Atenciosamente, George

George Gesslein II
fonte
1
Eu não acho estranho. Embora certamente o celular seja o cenário mais crítico para economia de energia, reduzir o uso de energia também significa menos ruído do ventilador em um cenário de desktop e menos calor para lidar em uma sala de servidores. Correr constantemente à velocidade máxima é um desperdício, apenas realmente necessário para casos raros em que ondemandisso ocorre errado.
bobince
@obince - Você provavelmente está certo, mas para uma área de trabalho, notei que o OnDemand dá uma resposta lenta em comparação com o desempenho, e acho que o computador ainda pode dormir corretamente com a alteração acima. Deve ser uma opção em Sistema / Administração ou Sistema / Preferências.
George Gesslein II
Certo, o único lugar em que isso faz sentido é nos laptops, onde o tempo de carregamento é reduzido e o tempo de bateria, estendido ao escalar a CPU.
LassePoulsen 9/09/10
salvando o meio ambiente, alguém?
Noz sobre natty #
1

Em alguns sistemas, infelizmente, o governador 'ondemand' está quebrado.

Este é o caso do "CPU Q9300 de 2 núcleos Intel (R) Core (TM) 2) a 2,50 GHz" e do kernel 2.6.32-42.

O kernel pensa que pode definir a frequência individualmente para cada CPU, enquanto o hardware permite apenas definir a frequência em grupos de várias CPUs (por exemplo, CPU 0 e 1 juntas e CPU 2 e 3 juntas).

Você pode descobrir que o kernel não está ciente disso observando os arquivos / sys / devices / system / cpu / cpu * / cpufreq / afetados_cpus que contêm "0", "1", "2", "3" em vez de "0 1", "0 1", "2 3", "2 3".

O efeito visível desse erro de combinação é um processo de thread único que começa a executar a velocidade máxima em uma CPU (o governador 'ondemand' reage rapidamente) e, depois de cerca de 20 segundos (depende dos detalhes da configuração), perde parte de sua velocidade.

O motivo é que o sistema operacional, com o governador 'ondemand', reaplica periodicamente baixas frequências baixas nas CPUs ociosas, sem esperar que isso também altere implicitamente a frequência da nossa CPU ocupada. Nem fica visível quando você olha para / sys / devices / system / cpu / cpu * / cpufreq / * cur_freq ou / proc / cpuinfo, o sistema operacional simplesmente não está ciente disso!

Portanto, nesses sistemas, a solução é voltar ao simples governador de 'desempenho'.

PS: No meu caso, rodar os processadores constantemente em sua freqüência máxima não mudou nada em relação ao ruído do ventilador. Suponho que quando uma CPU estiver ociosa, uma frequência mais baixa ou mais alta não terá muito impacto no uso de energia.

Johan Boulé
fonte
0

Eu tenho um novo processador AMD Athlon II X4 631 (processador Fusion para o soquete FM1) e ele não economiza energia (olhei com medidor de energia)! Eu não tenho um núcleo turbo, então não preciso de uma configuração ondemand. A maioria dos novos processadores economiza energia por si mesmos.

Ao fazer o benchmarking, há uma pequena diferença, na faixa de 1 a 2%, ao comparar a ondemand e a configuração de desempenho.

Don sild
fonte
Bem-vindo ao AskUbuntu! Você pode fazer backup de suas declarações com estatísticas / pesquisas completas, pois sua resposta pode ser mal interpretada como uma opinião, e não como uma resposta pesquisada.
Oyibo
Isso também está errado, a Apple está enfrentando problemas esta semana por desacelerar os dispositivos para economizar energia
Xen2050
-1

Isso é antigo, mas como ninguém o mencionou, e por uma questão de completude, acrescentarei que o argumento de como a CPU que roda na velocidade máxima desperdiçará energia, produzirá calor, o ruído do ventilador etc. estará errado .

Quase todas as CPUs modernas, especialmente as de desktop / servidor, entram no modo de suspensão profunda quando ociosas (o Google corre para ocioso).

O dimensionamento de tensão provavelmente economizará mais energia; portanto, em laptops, isso pode aumentar um pouco o tempo de execução, mas em desktops e servidores executando o regulador de desempenho será bom para a maioria dos usuários 'normais' (que não administram farms de servidores ou similares).

Eu uso o desempenho gov com o meu i7-2600k e a temperatura da CPU geralmente é de cerca de 30 C.

Denis
fonte
Isso também está errado. Monitore as temperaturas da CPU e altere as frequências para ver por si mesmo (a menos que seu sistema não a implemente totalmente / corretamente). Veja também o link da Apple, soa como escala de frequência / velocidade regular
Xen2050
@ Xen2050, para ver o que você mesmo? Você implica que a CPU que roda a 70 graus Celsius por 2 s pode consumir mais energia do que uma CPU que roda de 5 a 6 segundos a 60 graus, ou algo nessa direção? Não é tão simples como monitorar a temperatura da CPU em um momento específico.
Denis
@ Xen2050 seu link aponta para o iPhone, que é um processador ou arco totalmente diferente. Eu indiquei que o escalonamento de tensão em combinação com determinado governador poderia ajudar em laptops, por exemplo, e mencionei explicitamente os desktops (estações de trabalho) e os servidores, mas, na verdade, o que eu estava falando existe mesmo nos telefones há anos ( A situação é provavelmente mais complicada nesse caso. Pode ser necessário um governador adequado para que a MPU utilize determinado estado de C / P adequadamente). De qualquer forma, leia mais uma vez o que eu digitei e o Google 'corre para o modo inativo' e o modo de sono profundo do processador.
Denis