Frequência de CPU sempre no máximo

The Dealer

Power Member
Tenho um AMD Turion 64 1.6 ghz (800+800), e utilizo ubuntu 8.10.

Acontece-me o seguinte. O meu cpu arranca sempre apenas a "metade" da sua frequência de relógio. Ligado à ficha, ou não, acontece sempre. Quando instalei o conky, constatei que sem aplicações "relevantes" a correr, estava sempre nos 800 e de vez em quando lá ia aos 1600. Então quando adiconei na barra de tarefas o monitor de escala de frequencia de CPU, (onde existem as opções Conservative, On Demand, Performance, Power Saver, reparei que independentemente se o SO inicia com o pc ligado à ficha ou não, ele arranca sempre na opção On Demand, pelo que acontece a situação que referi.

Por isso a pergunta que faço é, como fazer com que ele arranque sempre em Performance (nota-se de facto melhorias na performance quando escolho este perfil)? É que como aquele applet (penso que é assim que se chama) "Monitor de Escala de Frequência do CPU 2.24.1", não têm efeito de memória, nem muito menos reage ao facto de estar só a bateria (ou não), torna-se bastante chato.
 
Última edição:
O perfil on-demand só sobe a frequência quando é necessário, para poupar energia.
Por isso ao pores o cpu na máxima frequência não vais notar diferenças de performance.

edit:
Li melhor o post e vi que o '?' estava fora do parêntesis e estavas portanto a afirmar que notas diferenças de performance.
Pois...isso não deveria acontecer.
Tenho ideia que o perfil por defeito é definido na configuração do kernel por isso a maneira mais fácil seria por um script a correr no arranque que fizesse algo do género:

Código:
echo performance >> /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
 
Última edição:
O perfil on-demand só sobe a frequência quando é necessário, para poupar energia.
Por isso ao pores o cpu na máxima frequência não vais notar diferenças de performance.

edit:
Li melhor o post e vi que o '?' estava fora do parêntesis e estavas portanto a afirmar que notas diferenças de performance.
Pois...isso não deveria acontecer.
Tenho ideia que o perfil por defeito é definido na configuração do kernel por isso a maneira mais fácil seria por um script a correr no arranque que fizesse algo do género:

echo performance >> /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

De facto também não acho que tenha lógica, mas que noto diferença noto. Até na simples navegação do explorador de ficheiros.

Executei o script que aí tens com sudo e obtenho permissão negada..

EDIT: fiz um cat ao ficheiro e só lá está "performance". Se alterar no applet para powersave, mostra powersave.
 
Estranho, deve ser do ubuntu, o que te dá:

Código:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

?

Há também outra maneira segundo isto.
Tens de instalar o gconf-editor e em apps/gnome-power-manager/cpufreqd mudas o valor de policy_ac e policy_battery de ondemand para performance.
 
Estranho, deve ser do ubuntu, o que te dá:

Código:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
?

Há também outra maneira segundo isto.
Tens de instalar o gconf-editor e em apps/gnome-power-manager/cpufreqd mudas o valor de policy_ac e policy_battery de ondemand para performance.

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
ondemand conservative userspace powersave performance

Não tenho o cpufreqd. Simplesmente não está lá. Fiz uma pesquisa e o melhor que encontrei foi cpufreq em /schemas/apps/cpufreq-applet/prefs mas para além de não ter nada de jeito (show mode etc), nem sequer dá para alterar por causa de ser um esquema...
 
A falta de premissões deve ser alguma coisa específica do ubuntu.

Edita o /etc/rc.local :

Código:
sudo gedit /etc/rc.local

e adiciona a linha que mencionei acima:

Código:
echo performance >> /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Ao reiniciares deves ter isso na máx freq.
 
Impecável :D Muito obrigado.

Perfeito perfeito, era ele alterar para powersaver (ou On Demand) quando está apenas a bateria. Mas isso suponho que seja preciso alterar no cpufreqd que eu não tenho, certo?
 
Impecável :D Muito obrigado.

Perfeito perfeito, era ele alterar para powersaver (ou On Demand) quando está apenas a bateria. Mas isso suponho que seja preciso alterar no cpufreqd que eu não tenho, certo?

Se queres algo mais dinâmico o melhor é instalares o cpufreqd que podes configurar tudo e mais alguma coisa.
Um simples 'man cpufreqd' deve-te ajudar depois na configuração.

Se seguires esse caminho então convém remover o 'echo performance ...' do rc.local.

edit: o powernowd afinal não é muito útil.
 
Última edição:
Se queres algo mais dinâmico o melhor é instalares o cpufreqd que podes configurar tudo e mais alguma coisa.
Um simples 'man cpufreqd' deve-te ajudar depois na configuração.

Se seguires esse caminho então convém remover o 'echo performance ...' do rc.local.

edit: o powernowd afinal não é muito útil.

Já instalei e estive agora uns minutos a ler a "documentação". Pois, de facto, pode-se controlar aquilo a gosto, mas acho que vou ver se encontro uns exemplos em vez de começar a mexer no não sei.

EDIT: acabei de reparar que não consigo alterar o perfil de energia. Consigo alterar, no entanto a velocidade não desce para 800 mhz, e se escolher 800 directamente, passa para 1600 sem pedir nada a ninguem... !
 
Última edição:
Já instalei e estive agora uns minutos a ler a "documentação". Pois, de facto, pode-se controlar aquilo a gosto, mas acho que vou ver se encontro uns exemplos em vez de começar a mexer no não sei.

EDIT: acabei de reparar que não consigo alterar o perfil de energia. Consigo alterar, no entanto a velocidade não desce para 800 mhz, e se escolher 800 directamente, passa para 1600 sem pedir nada a ninguem... !

Não percebi bem o que disseste.

Se estás a falar da configuração do cpufreqd, podes simplesmente por 0% e 100% no min e max freq e mudar só a linha do policy.

Usando como base esta configuração, o que pretendes será algo deste género:

Código:
[Profile]
name=ondemand
minfreq=0%
maxfreq=100%
policy=ondemand
[/Profile]

[Profile]
name=conservative
minfreq=0%
maxfreq=100%
policy=conservative
[/Profile]

[Profile]
name=powersave
minfreq=0%
maxfreq=100%
policy=powersave
[/Profile]

[Profile]
name=performance
minfreq=0%
maxfreq=100%
policy=performance
[/Profile]

[Rule]
name=battery
ac=off
profile=ondemand
[/Rule]

[Rule]
name=battery_low
ac=off
battery_interval=0-10
profile=powersave
[/Rule]

[Rule]
name=ac
ac=on
profile=performance
[/Rule]

É só adicionares isso por baixo da tag [/General] (e apagar o que antes lá estava).

Basicamente nessa config tens perfis para os governors mais importantes:
  • onemand - muda conforme a necessidade
  • conservative - como o ondemand, mas com mais tendência para frequências menores
  • powersave - frequência mínima
  • performance - frequência máxima

E regras para usar ondemand quando em bateria, powersave quando a bateria estiver abaixo de 10% e performance quando ligado à corrente.
 
Última edição:
Algo correu muito mal... Fiz um restart e tive logo a informação "Escala de Frequência de CPU não é suportada. Não será capaz de alterar a sua frequência (...)" Por isso agora, não posso escolher rigorosamente nada, e aparece-me 1,59 no applet...

Tinha feito um backup do ficheiro original, mas não sei o que aconteceu não deve ter gravado... Portanto, alguém me pode dar o conteudo do ficheiro /etc/cpufreqd.conf do ubuntu 8.10 sff? :(
 
Por defeito é isto.

Mas varia conforme a distro por isso recomendo que removas o cpufreqd, apagues o cpufreqd.conf se ainda estiver lá e voltes a instalar.
 
Por defeito é isto.

Mas varia conforme a distro por isso recomendo que removas o cpufreqd, apagues o cpufreqd.conf se ainda estiver lá e voltes a instalar.

Pois foi isso que eu acabei de fazer :D

Eu reparei à minutos atrás que o applet estava a contar o CPU0 como se tivesse os 1.6 ghz, quando na verdade é o CPU0 e CPU1 (no applet) (800 + 800).

Bem, como poderei corrigir o ficheiro?
 
Back
Topo