Previna o superaquecimento do seu sistema com thermald

O thermald é um serviço usado para prevenir o superaquecimento no seu PC. Ele pode rodar em Linux, OSX e, até mesmo, Android. O software monitora a temperatura do sistema e procura compensar a situação através dos métodos de resfriamento disponíveis.
O propósito do aplicativo é agir antes que o próprio hardware comece a corrigir agressivamente a situação.
thermald-feat300x200

Desenvolvido sob patrocínio da Intel e por desenvolvedores pagos pela empresa, a ferramenta só está disponível para quem usa processadores desta marca — da linha Core e Atom — pra ser mais específico, os que usam a tecnologia Sandy Bridge ou posterior.

O thermald daemon monitora os sensores presentes no sistema e modifica os controles para manter o hardware abaixo das temperaturas limite e evitar, com mais eficiência, os picos.
O thermald mantém o sistema frio através…

  • … de dispositivos de resfriamento ativos ou passivos, encontrados no sysfs;
  • … do RAPL (Running Average Power Limit);
    O RAPL é um driver, disponível para processadores Intel, que provê aos softwares da plataforma a possibilidade de monitorar, controlar e obter notificações sobre o consumo de energia.
  • … do driver Intel P-state CPU frequency;
  • … do driver CPU freq;
  • … e do driver Intel PowerClamp.

Opcionalmente, o daemon pode tomar o controle exclusivo do sistema e agir como um governor.

Como instalar o thermald

O aplicativo pode ser instalado diretamente dos repositórios. Se você usa o Fedora Linux, pode instalar com o yum:


yum install thermald

Usuários do Ubuntu e Debian, podem instalar o aplicativo com o apt:


sudo apt install thermald

Se preferir (e souber o que está fazendo), pode baixar, compilar e instalar a versão mais atual do aplicativo — não é complicado e eu recomendo.

Como usar o thermald

Se você usa o Fedora Linux, recomendo a leitura deste artigo, para ver as primeiras dicas pós-instalação, em que este aplicativo é mencionado.
Não esqueça de executar os comandos abaixo com privilégios administrativos.
No Ubuntu e no Debian, você pode verificar se o daemon está rodando com o seguinte comando:


systemctl status thermald

● thermald.service - Thermal Daemon Service
   Loaded: loaded (/lib/systemd/system/thermald.service; enabled; vendor preset:
   Active: active (running) since Wed 2017-08-30 15:05:19 -03; 17min ago
 Main PID: 18007 (thermald)
    Tasks: 2 (limit: 4915)
   CGroup: /system.slice/thermald.service
           └─18007 /usr/sbin/thermald --no-daemon --dbus-enable

ago 30 15:05:19 ultra-5 systemd[1]: Starting Thermal Daemon Service...
ago 30 15:05:19 ultra-5 thermald[18007]: 13 CPUID levels; family:model:stepping 
ago 30 15:05:19 ultra-5 thermald[18007]: Polling mode is enabled: 4
ago 30 15:05:19 ultra-5 thermald[18007]: sysfs write failed /sys/devices/virtual
ago 30 15:05:19 ultra-5 systemd[1]: Started Thermal Daemon Service.
ago 30 15:06:03 ultra-5 thermald[18007]: sysfs write failed /sys/devices/virtual
ago 30 15:06:03 ultra-5 thermald[18007]: sysfs write failed /sys/devices/virtual
lines 1-15/15 (END)

Se não estiver ativo, inicie o serviço assim:


systemctl start thermald

Para interromper, use o comando:


systemctl stop thermald

Como usar o thermald na linha de comando

O aplicativo foi concebido pra rodar como um serviço. Ou seja, é pra ser instalado e esquecido.
Não há necessidade de fazer absolutamente nada depois da instalação — deixe o cara trabalhar.
Contudo, se você ainda quiser aprender um pouco mais sobre ele, seguem alguns comandos de interação, que podem ser executados no console —. Se tiver algum tempo sobrando, experimente baixar e compilar o código fonte, para ter uma versão mais atual do thermald.
Para ver a versão atual do thermald, digite o seguinte comando no seu console:


thermald --version

Se quiser obter ajuda, pode recorrer ao manual do sistema man thermald ou à tradicional ajuda, no terminal:


thermald -h

A maioria das opções do aplicativo exigem privilégios administrativos para serem invocadas:


thermald

You must be root to run thermald!

Se quiser, desligue o daemon e rode o aplicativo “interativamente”:


systemctl thermald stop

thermald --no-daemon --poll-interval=1

Polling enabled: 1
13 CPUID levels; family:model:stepping 0x6:2a:7 (6:42:7)
Polling mode is enabled: 1

Para interromper a execução, tecle ‘Ctrl + C’.

Como criar e alterar o arquivo de configuração do thermald

A localização padrão do arquivo de configuração do thermald é /etc/thermald/thermal-conf.xml. Você não precisa se preocupar, caso não encontre o arquivo em seu sistema — o daemon não precisa dele para fazer o seu trabalho.
Contudo, se você tiver um bom nível de conhecimento técnico sobre o seu hardware, pode fazer alguns ajustes para otimizar o funcionamento do thermald.
A configuração é baseada modelo da ACPI, em que as regiões da plataforma são divididas em zonas térmicas — e estas contém dispositivos físicos, controles de resfriamento e sensores térmicos.
Controles de resfriamento modificam o comportamento das ventoinhas (coolers) e de interfaces de drivers que podem reduzir o clock da CPU, por exemplo.
O processo de resfriamento pode ser

  • ativo — quando o ventilador é acionado para diminuir o calor. A desvantagem deste método é que consome mais energia e pode ser ruidoso;
  • passivo — quando reduz o clock da CPU, fazendo com que ela produza menos calor. Neste caso, você perde em performance. Dependendo do tipo de atividade, esta perda pode sequer ser sentida.

Nota: A relação desempenho x temperatura x economia (de energia) é discutida também neste artigo.
Os dispositivos de resfriamento pode ser ativados toda vez que se alcança certos picos na temperatura.
As zonas térmicas, ou thermal zones, pode ter mais de um ponto de acionamento (trip points).

Teoricamente, o governor térmico da ACPI deveria ter informações corretas do sistema para se basear no controle da temperatura do sistema. Mas isto nem sempre é verdadeiro.
O arquivo de configuração do thermald pode ser usado para corrigir e otimizar o comportamento do sistema.

Abaixo, segue um exemplo do arquivo de configuração:

<?xml version="1.0"?>


        Example Laptop
        *
        QUIET
        
                
                        pkg-temp-0
                        /sys/class/thermal/thermal_zone1/
                        1
                
        
        
                
                        cpu package
                        
                                
                                        pkg-temp-0
                                        80000
                                        passive
                                        PARALLEL
                                        
                                                1
                                                rapl_controller
                                                 50 
                                                 10 
                                        
                                        
                                                2
                                                intel_pstate
                                                 40 
                                                 10 
                                        
                                        
                                                3
                                                intel_powerclamp
                                                 30 
                                                 10 
                                        
                                        
                                                4
                                                cpufreq
                                                 20 
                                                 8 
                                        
                                        
                                                5
                                                Processor
                                                 10 
                                                 5 
                                        
                                
                        
                
        



Se você não sabe o que está fazendo, recomendo não alterar as configurações do thermald. Como já disse antes, ele funciona muito bem sozinho.
Uma vez alteradas as configurações, é necessário parar o serviço e reiniciá-lo:


systemctl restart thermald

Se quiser, é possível observar interativamente o funcionamento do thermald:


sudo service thermald stop
sudo thermald --no-daemon --loglevel=debug

Divirta-se! 😉

Referências

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia. Fã de séries, como "Rick and Morty" e "BoJack Horseman". Me siga no Twitter e vamos trocar ideias!

5 comentários sobre “Previna o superaquecimento do seu sistema com thermald”

  1. Olá amigo,
    não funcionou comigo, eu uso ubuntu 16.04, quanto tento “sudo status thermald” ele retorna o seguinte:
    [sudo] senha para ubuntu:
    status: Não foi possível conectar ao Upstart: Failed to connect to socket /com/ubuntu/upstart: Conexão recusada
    Poderia me ajudar? Agradeço.

  2. Interessante este cara. Se não me engano no Ubuntu começou a vir por padrão a partir da versão 14.

    Lembrei dele hoje ao atualizar um servidor.

    Muito bom o artigo. 😉

  3. Quando executo o comando status thermald obtenho que o comando não foi encontrado. O mesmo se repete para os demais comandos mesmo com o thermald já instalado.

    Tenho um debian jessie, poderia me ajudar com este ponto?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *