Gerir a performance no Raspberry pi

No Rpi é possível actuar sobre a frequência de clock do processador. Pode ser definida uma frequência mínima e máxima, por omissão no Rpi 4, respectivamente 600MHz e 1500MHz.

No meu caso o sistema operativo vinha configurado em modo “powersave”, isto quer dizer que ao iniciar, o sistema opta pela velocidade máxima definida e minutos depois muda para 600MHz.
No meu caso, interessa-me que maioritariamente o sistema tenha a máxima performance e só entrar em powersave se não lhe estiver a solicitar processamento, por exemplo em portátil alimentado a baterias…

Este é também o método utilizado para fazer overclocking.

O kernel do Linux utiliza um driver para gerir a política de frequência do CPU.
As opções são as seguintes:

performance – usa sempre a frequência máxima do CPU
powersave – usa sempre a frequência mínima
ondemand – altera a frequência dependendo da carga do CPU (apenas muda entre o mínimo e o máximo)
conservative – altera suavemente a frequência da CPU dependendo da carga da CPU
userspace – permite que o utilizador controle a frequência do CPU

Como root ou sudo podemos alterar a configuração na shell em tempo real via sysfs.

Para ler a configuração actual,

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

Para alterar para uma das opções descritas, faça por exemplo,

sudo sh -c "echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"

Pode em qualquer momento saber a frequência do seu CPU, escrevendo no terminal,

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

(resposta)
1500000

Para modificar permanentemente esta opção no arranque, deve instalar o software “cpufrequtils”,

sudo apt-get install cpufrequtils

E a seguir editar ou criar o ficheiro /etc/default/cpufrequtils e escrever a linha GOVERNOR=”ondemand”. Este ficheiro vai ser lido pelo script /etc/init.d/cpufrequtils

Outra opção, talvez mais simples é modificar as definições sempre no início do sistema. Edite o ficheiro /etc/rc.local

sudo nano /etc/rc.local

Adiciona esta linha, com o modo desejado, antes de “exit 0”

echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
exit 0

Referências:
http://with-raspberrypi.blogspot.com/2014/03/cpu-frequency.html
https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt
https://www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md

Desktop widget para o raspberry pi com Conky

Fosse qual fosse o sistema operativo sempre gostei de ter no desktop a informação do sistema em background… um must have!

Comece por instalar a aplicação,

$ sudo apt-get install conky -y

Faça o download do ficheiro de configuração,

$ wget -O /home/pi/.conkyrc https://raw.githubusercontent.com/novaspirit/rpi_conky/master/rpi3_conkyrc

na linha de comandos anterior substitua “pi” por “pi-star” se instalou sobre o pi-star, ver pi-star +GUI, packet e aplicações desktop (http://oitaven.pt/ct1ebq/2020/04/16/pi-star-gui-packet-e-aplicacoes-desktop/)

Note que, esta aplicação utiliza recursos diversos entre eles o comando “top” e usa cerca de 12% de um dos core.
Para reduzir o impacto no aquecimento e consumo, depois de instalado edite o ficheiro “.conkyrc” e modifique a linha “update_interval 0.5” de acordo com as suas preferências…

A utilização do CPU é linear,

0.5s - 12% CPU
1s - 6% CPU
2s - 3% CPU

Para iniciar agora a aplicação no boot do sistema temos de criar 2 ficheiros, o primeiro para atrasar o script de shell durante 4 segundos, o segundo para permitir que o lxdesktop inicie o script de shell,

Crie o ficheiro,

$ sudo nano /usr/bin/conky.sh

Copie o seguinte conteúdo, grave e saia,

!/bin/sh
(sleep 4s && conky) &
exit 0

Crie agora o ficheiro de chamada,

$ sudo nano /etc/xdg/autostart/conky.desktop

Copie o seguinte conteúdo, grave e saia,

[Desktop Entry]
Name=conky
Type=Application
Exec=sh /usr/bin/conky.sh
Terminal=false
Comment=system monitoring tool.
Categories=Utility;

Faça reboot no sistema et voilà!