Há vários anos, eu publiquei um artigo sobre regulagem da CPU para performance máxima:
Embora essencialmente o artigo seja ainda muito válido, ele foi escrito na época do antigo OpenRC e hoje muitas distros usam systemd. Algumas coisas mudaram nos ajustes, nas regulagens.
Entre as coisas que se pode fazer para aumentar (ou diminuir) a performance da CPU, gastando mais ou menos energia elétrica, é setar o "Governor".
Isso é uma forma de passar instruções ao kernel, para que ele controle a "velocidade" e a energia elétrica gasta.
Os "Governor" existentes, são basicamente cinco:
- "Powersave" - modo de menor frequência de CPU, mais econômico.
- "Conservative" - modo dinâmico, ajuste automático, mas que mantém a energia elétrica a um gasto pequeno ou moderado.
- "Ondemand" - modo dinâmico, que ajuste automaticamente a frequência e a energia gasta pelos processadores, em função das tarefas realizadas. É o modo padrão em várias distros.
- "Usespace" - é um modo onde o usuário regula a frequência dos processadores, a um valor fixo: alta, baixa ou moderada frequência.
- "Performance" - modo de alta performance, o máximo da frequência admitida pelos núcleos do processador.
Eu sempre uso em desktops: "ondemand" ou "performance" (quando quero alta performance. É o único modo útil em CPUs overclocadas), mas para notebooks, recomendo que usem "powersave" ou "conservative", para não gastarem muita bateria.
É possível regular, setar manualmente, mas há pacotes que facilitam essa regulagem. O que ocorre é que: com o systemd e os novos kerneis, os pacotes antigos para isso, se tornaram obsoletos.
Para AMD se usavam os pacote "powernowd" (ainda existe, mas geralmente não se usa mais). Para Intel e AMD, o pacote mais usado era o "cpufreqd" e seus utilitários ("cpufreutils").
Esse é o pacote que eu citei e usei no meu antigo artigo. Não sei em outras distros, mas pelo menos em Sabayon e Gentoo, ele não existe mais, está deprecado, obsoleto:
Agora se usa o pacote "cpupower" que interage direto com o módulo de kernel e tem muitos recursos.
Inclusive, funciona tanto no Systemd como no antigo OpenRC (SysVinit), além de ter opções que permitem regular o "governor" especificamente para um ou mais núcleos.
Vamos ver como se usa o "cpupower".
Se você usava "cpufreqd" , precisa desinstalar os pacotes antigos. Desinstale os pacotes "cpufreqd" e "cpufrequtils". Em Sabayon
Linux, é executando este comando:
# equo rm -v cpufreqd cpufrequtils
Agora instale na sua distro o pacote "cpupower". Em Sabayon:
# equo i -av cpupower
Remova os serviços de boot que se referiam ao antigo pacote. Conforme seu sistema seja OpenRC ou systemd. Em Sabayon com OpenRC;
# rc-update del cpufreqd cpufrequtils
Em distros Debian, creio que o comando é:
sudo update-rc.d cpufreq remove
Com systemd:
# systemctl disable cpufreqd.service
# systemctl disable cpufrequtils.service
Agora adicione os serviços correspondentes ao pacote cpupower (que acabou de instalar):
Em Sabayons com OpenRC:
# rc-update add cpupower
# /etc/init.d/cpupower start
Em distros com systemd:
# systemctl enable cpupower.service
# systemctl start cpupower.service
Agora pode selecionar o "Governor" que quiser usar:
# cpupower frequency-set -g "nome do governor"
Nos meus sistemas, regulei para "ondemand".
Vejam o "governor ondemand" funcionando no meu Sabayon, instalado em um Phenon de 8 núcleos, de frequência padrão, não overclocado:
cpupower frequency-info
Analisando o CPU 0:
driver: acpi-cpufreq
CPUs que rodam na mesma frequência de hardware: 0
CPUs que precisam ter suas frequências coordenadas por software: 0
maior latência de transição: 4.0 us.
limites do hardware: 1.40 GHz - 3.10 GHz
níveis de frequência disponíveis: 3.10 GHz, 2.80 GHz, 2.30 GHz, 1.90 GHz, 1.40 GHz
reguladores do cpufreq disponíveis: conservative, ondemand, powersave, userspace, performance
política de frequência atual deve estar entre 1.40 GHz e 3.10 GHz.
O regulador "ondemand" deve decidir qual velocidade usar
dentro desse limite.
frequência atual do CPU é 1.40 GHz.
status do cpufreq: 3.10 GHz:73,35%, 2.80 GHz:0,51%, 2.30 GHz:1,06%, 1.90 GHz:3,56%, 1.40 GHz:21,53% (88002)
Note que somente um dos núcleos (dos oito) está funcionando bastante e está em frequência, alta, portanto, bem controlado o sistema pelo governor "ondemand":
sudo cpupower monitor -l
Monitor "Mperf" (3 states) - Might overflow after 922000000 s
C0 [T] -> Processor Core not idle
Cx [T] -> Processor Core in an idle state
Freq [T] -> Average Frequency (including boost) in MHz
Monitor "Idle_Stats" (3 states) - Might overflow after 4294967295 s
POLL [T] -> CPUIDLE CORE POLL IDLE
C1 [T] -> <null>
C2 [T] -> ACPI IOPORT 0x815
sudo cpupower monitor
|Mperf || Idle_Stats
CPU | C0 | Cx | Freq || POLL | C1 | C2
0| 7,24| 92,76| 1547|| 0,00| 0,70| 92,41
1| 2,56| 97,44| 1668|| 0,00| 0,58| 97,09
2| 8,67| 91,33| 1571|| 0,00| 4,94| 86,74
3| 1,45| 98,55| 1643|| 0,00| 0,09| 98,64
4| 9,00| 91,00| 1584|| 0,00| 4,99| 86,36
5| 4,08| 95,92| 1682|| 0,00| 0,10| 96,06
6| 2,50| 97,50| 3709|| 0,00| 6,11| 91,56
7| 99,63| 0,37| 3717|| 0,00| 0,06| 0,00
Há várias outras opções no pacote e nos comandos do "cpupower". Detalhes, veja:
ATUALIZAÇÃO DESTA DICA
4 de Julho de 2018.
Nos Sabayon Linux novos, 17 e 18, o pacote "cpupower" já é o default do sistema, não há mais necessidade de instalá-lo.
Mas você observará que, se você trocar o "governor" na Tela Gráfica no no comando do "cpupower", após reboot , ele vai voltar ao default, "powersave", por causa nas configurações salvas que o systemd acessa.
Eu gosto de usar "ondemand" ou "performance".
Para corrigir isso, edite o arquivo /etc/sysconfig/cpupower e nas linhas default:
# See 'cpupower help' and cpupower(1) for more info
CPUPOWER_START_OPTS="frequency-set --governor powersave"
CPUPOWER_STOP_OPTS=""
troque "powersave" por "ondemand"
Também, se você quiser observar se os governors estão funcionando legal, em cada núcleo do processador, use um comando completo:
$ cpupower -c all frequency-info
Por exemplo, eu tenho 8 núcleos e eles aparecem, um a um.
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: [i] Sabayon, Gentoo, OpenSUSE, Mageia e OpenMandriva[/i].