Ubuntu e detecção de velocidade do processador


12

Eu tenho um laptop mais antigo que eu uso como centro de mídia na minha TV e geralmente instalo / reinstale / desinstale diferentes SOs e aplicativos para que ele funcione da maneira mais tranquila possível.

Uma coisa que notei foi muito estranha. Meu laptop é um HP Pavilion G62, que possui um processador AMD de núcleo triplo rodando a 1800mhz. Quando inicio o XBMC no Windows 7 e observo a velocidade do processador, ele diz claramente 1800mhz. No entanto, quando inicio o Ubuntu a partir do iniciador ou como uma sessão, ele diz que o processador tem apenas 800mhz.

Eu queria investigar mais, então carreguei o DXDIAG no Windows para ver qual era a velocidade. Com certeza, indica que é de 1800mhz. No entanto, ao iniciar o HardInfo no Ubuntu, ele diz que a velocidade de cada núcleo é a seguinte: 1500mhz, 1500mhz e 800mhz.

Isso significa que a velocidade anunciada do processador e a velocidade detectada pelo Windows estão mentindo ou arredondadas? Ou há um problema com o Ubuntu detectando a velocidade do meu processador e meu sistema não está funcionando da melhor maneira possível? Eu estaria inclinado a dizer o último ... principalmente porque parece que o Windows é muito mais suave que o Ubuntu.


4
Por favor, publique a saída de cpufreq-info. Pode ser necessário instalá-lo sudo apt-get install cpufrequtilsprimeiro.
terdon 8/09/14

2
"quando eu inicio o Ubuntu a partir do iniciador ou como uma sessão, ele diz que o processador tem apenas 800mhz". você poderia tirar uma captura de tela?
Braiam 8/09/14

Respostas:


11

Por padrão, o Ubuntu usa o controlador de frequência ondemand . Para verificar / alternar governadores, instale o cpufrequtilspacote assim:

sudo apt-get install cpufrequtils

Para verificar a velocidade / reguladores atuais de cada execução principal:

cpufreq-info

Você pode definir todos os núcleos para desempenho como este:

sudo cpufreq-set -r -g performance

Você pode confirmar que todos os núcleos agora estão sendo executados na frequência máxima da seguinte maneira:

grep MHz /proc/cpuinfo

Nota : essa alteração é temporária. Depois de reiniciar, ele voltará aondemand .


1
Obrigado pela informação! Eu executei os comandos que você listou e ele aumentou o primeiro núcleo da CPU até 1800mhz, mas o restante estava em 800mhz. Isso, de acordo com a resposta excelentemente detalhada de Sergey abaixo, é provavelmente normal para o meu sistema.
precisa saber é o seguinte

A resposta foi editada para incluir o parâmetro -c, que informa qual frequência do número da CPU deve ser definida. Não consegui encontrar uma maneira de especificar todos os números da CPU de uma só vez. Também estou tentando escrever um script para ativar o modo de desempenho quando estiver na alimentação CA e o modo ondemand quando estiver na bateria. Se alguém já tiver uma solução para isso, adicione aqui. Obrigado.
Sri

1
Para definir o desempenho de todos os cpus de uma só vez, primeiro mude para o modo superusuário com sudo su e use o seguinte: for ((i = 0; i <$ (nproc); i ++)); cpufreq-set -c $ i -r -g performance; feito
Sri

10

Fundamentação teórica: Em um computador típico, a CPU fica ociosa na maioria das vezes. Para economizar energia, as CPUs modernas implementam a escala de frequência - ou seja, o sistema operacional pode dizer à CPU para mudar para uma frequência mais baixa quando a carga é baixa. A tecnologia é chamada SpeedStep nos processadores Intel e Cool'n'Quiet nos processadores AMD.

No Linux, o escalonamento de frequência do kernel é implementado pela cpufreqinfraestrutura, que usa um conceito de "governadores" para controlar a frequência.

O governador padrão é "ondemand", que aumenta a frequência quando a utilização do processador aumenta acima de 95%. Isso permite que a CPU economize energia enquanto ociosa e ainda mude para o desempenho total quando houver coisas a fazer. Há alguma latência de transição, medida em milissegundos, portanto, quando uma CPU inativa recebe uma grande carga repentinamente, ela continua sendo carregada em baixa frequência por alguns milissegundos antes de mudar para a potência máxima; portanto, em determinadas situações, isso pode resultar em um desempenho ligeiramente menor do que quando sempre correndo a toda velocidade.

Existem outros governadores , incluindo o governador de "desempenho", que sempre executa a CPU em sua frequência total. Isso elimina a latência de comutação, mas pode aumentar o consumo de energia.

Você pode experimentar diferentes governadores, conforme sugerido em outra resposta, mas duvido que isso produza resultados dramáticos. Eles não o tornariam padrão, a menos que fizesse sentido em 99% dos casos :)

Voltando à sua pergunta, no entanto: o mais provável é que o Windows mostre a frequência máxima possível da CPU (a que eles anunciam na caixa da CPU), enquanto o Ubuntu mostra a frequência real com a qual cada um dos núcleos da CPU roda nesse momento específico. Isso não significa que a CPU seja mais lenta no Ubuntu. Se parecer que o Ubuntu está lento no seu laptop, provavelmente é causado por outra coisa - por exemplo, pouca memória RAM, disco rígido lento etc. O Ubuntu moderno certamente requer mais recursos do que, por exemplo, o Windows XP, que você provavelmente encontrará em um laptop mais antigo.

Leitura mais técnica:


Isso definitivamente explica isso! No entanto, se eu definir o governador como Desempenho, todos os meus núcleos de CPU não devem funcionar a 1800mhz? Atualmente, quando altero a configuração, ele define apenas a CPU1 para 1800mhz. Os outros 2 estão apenas em 800mhz. Acho que isso só poderia ser atribuída como uma limitação CPU ...
Scotty_80
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.