Governador de CPU

Entenda como funciona o gerenciamento do governador de CPU e como ele afeta o desempenho do seu computador.


| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.


1. Introdução

O mundo é dominado por política.
E não obstante temos a presença de um representante do governo dentro de nossos computadores, principalmente aqueles sob sistemas Linux!

Como já explicado em uma postagem aqui no site, o kernel linux é quem gerencia o acesso de qualquer software ao hardware e vice versa. Basicamente une a parte que a gente chuta com a parte que a gente xinga.

E dentro desses códigos, temos o Governador de CPU ou Scaling Governor. Como tudo é arquivo, os arquivos de controle do uso de CPU ficam nesse caminho: /sys/devices/system/cpu/cpuX/ sendo X os núcleos enumerados de 0 ao total disponível de núcleos do processador.

2. Governador de CPU

Apesar do nome burocrático, a lógica é bem simples: É um conjunto de scripts que coordenam com qual frequência (Mhz ou Ghz) a CPU vai trabalhar na execução dos programas do computador.

O governador é quem gerencia como, quando e porquê a CPU vai utilizar de 500Mhz até 3.5Ghz – ou mais – na hora de executar programas; dessa forma você consegue otimizar seu hardware enquanto poupa ou gasta mais energia elétrica. Essa gestão é muito utilizada em notebooks, tablets e smartphones por melhorar a durabilidade das baterias sem perder tanto desempenho.

2.1 Modos de Operação

Existem vários modos de operação dentre os governadores de CPU. Aqui os modos mais importantes/usuais:

  • Schedutil (O padrão da maioria das distribuições Linux)
    Utiliza os dados disponíveis do agendador (scheduler) da CPU para gerenciar o clock, sendo o substituto aos antigos modos “ondemand” e “conservative”, por ser mais integrado à CPU e gerando menor sobrecarga no sistema. É o de melhor custo benefício em desempenho versus consumo energético para notebooks, tablets e smartphones.
  • OnDemand (Sob Demanda)
    Este era o governador de CPU mais utilizado uma década atrás, ele faz a CPU manter sua frequência no nível mais baixo permitido e aumenta a frequência para o máximo, conforme a necessidade. Quando não está em uso, a frequência cai automaticamente. Tem bom desempenho e menor consumo energético mas não é tão eficiente.
  • Performance
    Força o estado de alta performance, mantendo o clock alto mesmo se o computador não estiver em uso. Em tese o desempenho é máximo porém também desnecessário, se comparar com o desempenho do OnDemand; além de que o consumo de energia será altíssimo e a bateria vai esgotar mais rapidamente. Em alguns notebooks esse modo faz o consumo ser alto e o desempenho ser o mesmo de quando o equipamento está na tomada! Mas também uma bateria que duraria 4h vai durar 30 minutos.
  • PowerSave
    Este modo é oposto ao Performance, ele mantém o sistema no clock mais baixo, não importando o que estiver sendo utilizado. Na teoria serve para preservar energia sob qualquer circunstância. Na prática isso prejudica o desempenho do sistema, lentidões serão sentidas em qualquer programa aberto, inclusive enfraquecendo a potencia do sinal de transmissão de WiFi ou Bluetooth.
  • Conservative (Conservador)
    Ao contrário do PowerSave, que usa a frequência mínima o tempo todo, o Conservador tenta usar o clock mínimo de CPU porém aumenta a frequência de forma gradual e lenta conforme necessário. Logo que estiver em pouco uso, volta ao mínimo. É considerado um “OnDemand mais lento”.

2.2 Como posso ajustar o clock no meu computador?

No Linux temos a existência de pacotes nativos, dependendo do sistema.
O Ubuntu MATE por exemplo possui ajustes de Governador de CPU nativo nos applets da barra de tarefas:

Na maioria das distribuições, o pacote cpupower já se faz presente e ele dá um controle granular disso direto pelo terminal. Tanto para Intel quanto AMD o cpupower é eficiente para as duas fabricantes! Também é funcional independente se a CPU é mais nova ou antiga.

Caso seu sistema não possua o pacote, faça estes comandos no terminal:

Para Debian, Ubuntu e derivados:

$ sudo apt install cpupower

Para CentOS e RedHat:

$ sudo yum install cpupower

Para Fedora:

$ sudo dnf install cpupower

Para ArchLinux e derivados:

$ sudo pacman -Syu cpupower

3. Comandos Basicos

Primeiramente, verifique quais frequências seus sistema suporta olhando a saída do comando:

$ cpupower frequency-info

No meu caso, por exemplo:

analisando o CPU 5:
driver: intel_cpufreq
CPUs que rodam na mesma frequência de hardware: 5
CPUs que precisam ter suas frequências coordenadas por software: 5
maior latência de transição: 20.0 us
limites do hardware: 800 MHz – 4.00 GHz
reguladores do cpufreq disponíveis: conservative ondemand userspace powersave performance schedutil
política de frequência atual deve estar entre 800 MHz e 4.00 GHz.
O regulador “schedutil” deve decidir qual velocidade usar
dentro desse limite.
current CPU frequency: Unable to call hardware
current CPU frequency: 940 MHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: yes

Ou seja, aqui eu posso utilizar diversos governadores, inclusive um adicional que é o “userspace”, basicamente com uma demanda baseada nas demandas de aplicações do usuário e não do sistema. Já na linha “limites do hardware” você tem o limiar de quantos Ghz de mínimo e máximo podem ser definidos, que são compatíveis com seu processador.

3.1 Definindo por Governador

$ sudo cpupower frequency-set -g governor

Neste comando troque governor por schedutil, ondemand, powersave, conservative ou performance.

Por padrão todos os núcleos serão definidos!

3.2 Definindo por Frequência

$ sudo cpupower frequency-set -r -u 2Ghz

Defina um valor que sua CPU suporte conforme listado em “limites do hardware” acima.
Ele suporta entradas entre Mhz e Ghz.
Exemplos: 500Mhz, 800Mhz, 1.2Ghz, 2.0Ghz, 2.5Ghz

-r Define o clock para todos os núcleos disponíveis.
-u Define a frequência exata em valores numéricos.

4. Dicas

O melhor sistema Governador de CPU existente no mundo Linux, está nos kerneis mais atuais, principalmente a partir do 6.2.x quando foram adicionados códigos melhorados para os modos governadores de CPU para notebooks.

Por experiência própria, usando o 6.2.10, tive um dos melhores desempenhos com governador de CPU no meu notebook com Core i5 com 2.9 Ghz. O modo Schedutil é automático e foi configurado pelo kernel como mais apropriado ao meu equipamento; utilizando clock de 800Mhz em idle – sem uso, apenas ligado – e atingindo o pico máximo de 2.9 Ghz quando em algum programa que exige mais do hardware.

Quando a bateria dele atinge 10%, ele automaticamente define o governador para PowerSave e manda o clock para 800Mhz para poupar o máximo de energia. O desempenho fica bem ruim mas suficiente para que eu procure pelo carregador ou salve meus trabalhos e desligue o computador.

5. Governador no Android

O sistema Android dos smartphones e tablets possui governadores de CPU com as mesmas características da versão desktop do linux. Para controla-lo, você terá de rootear o aparelho e/ou baixar aplicativos específicos que te permitam fazer tais ajustes. Não vou citar sugestões porque cada fabricante utiliza sua própria versão do Kernel Linux com seu próprio governador de CPU padrão otimizado para aquele aparelho. O ideal é deixar como está!

Se ainda for se aventurar, cuidado com aplicativos falsos que podem conter malwares. Tambem faça uso consciente do governador de CPU para não causar nenhum problema com seu aparelho ou à bateria.

6. Conclusão

Ter um controle do governador de CPU em suma pode não influenciar tanto quem utiliza sistema linux em computadores domésticos. Mesmo em games o desempenho não melhora tanto, afinal o governador padrão schedutil é muito eficiente em dar ou tirar desempenho.

Mas os casos mais emblemáticos são vistos em alguns modelos de notebooks como os da linha Lenovo® Thinkpad. Se o governador for definido para Performance, ele vai performar como se estivesse na tomada e dependendo do aplicativo em execução fará a bateria nova e cheia durar uns 40 minutos apenas.

Em contrapartida, forçar o governador para PowerSave vai forçar a economia de energia até mesmo em aplicativos mais exigentes em recursos. Vai durar muito mais, às custas de um desempenho bem inferior.

#UrbanCompassPony

Deixe um comentário