web-dev-qa-db-fra.com

Arrêtez la surchauffe du processeur

Lorsque je lance des applications intensives telles que blender, mon processeur peut atteindre les 80. C. Je peux manuellement désinstaller le processeur dans le BIOS, mais j'aimerais que mon ordinateur détecte lorsque la température du processeur devient trop élevée et ralentisse le processus jusqu'à ce que tout soit refroidi. Existe-t-il un moyen automatique ou même manuel de ralentir le processeur depuis Ubuntu?

9
Qwertie

Solution Intel Ubuntu 16.04+ pour Sandy Bridge et les processeurs plus récents

De ( wiki.debian.org -thermald ), il y a un article de Debian (Ubuntu) sur thermald Un démon Linux pour refroidissement des tablettes et des ordinateurs portables. Cela ne fonctionne que pour Sandy Bridge (2e génération) et les nouveaux noyaux Intel. Une fois que la température du système atteint un certain seuil, le démon Linux active diverses méthodes de refroidissement pour tenter de refroidir le système.

Le daemon thermique Linux (thermald) surveille et contrôle la température dans les ordinateurs portables, les tablettes PC dotées du dernier Intel Sandy Bridge et des dernières versions de processeurs Intel. Une fois que la température du système atteint un certain seuil, le démon Linux active diverses méthodes de refroidissement pour tenter de refroidir le système.

Il fonctionne dans deux modes:

Mode de configuration zéro

  • Pour la plupart des utilisateurs, cela devrait suffire à maîtriser la température du processeur du système. Ceci utilise le capteur de température DTS et utilise le pilote d’état Intel P, le pilote de pince d’alimentation, le contrôle de la limite de puissance moyenne et cpufreq comme méthodes de refroidissement.

Mode de configuration défini par l'utilisateur

  • Cela permet la configuration de style ACPI dans un fichier de configuration XML thermique. Cela peut être utilisé pour corriger la configuration ACPI buggy ou peaufiner en ajoutant plus de capteurs et de dispositifs de refroidissement. Il s'agit d'une première étape dans la mise en œuvre d'un contrôle thermique en boucle fermée en mode utilisateur et peut être amélioré en fonction des commentaires et des suggestions de la communauté.

Comment installer

apt-get install thermald

TLP

De Arch Linux :

TLP vous apporte les avantages d'une gestion de l'alimentation avancée pour Linux sans avoir à comprendre tous les détails techniques. TLP est livré avec une configuration par défaut déjà optimisée pour la vie de la batterie, vous pouvez donc l'installer et l'oublier. Néanmoins, TLP est hautement personnalisable pour répondre à vos besoins spécifiques.

Veuillez lire le lien complet Arch Linux TLP ci-dessus. Certains problèmes avec Nvidia nécessitent des modifications de configuration.

Après beaucoup d'essais et d'erreurs avec d'autres paquets, j'ai eu beaucoup de succès avec TLP. Il offre un contrôle supérieur du ventilateur et fonctionne parfaitement avec thermald et p-states .

Comme ces instructions d'installation pour Ubuntu 15.04+, mentionner TLP réduit non seulement la surchauffe, mais prolonge également la durée de vie de la batterie.

Depuis l’installation de TLP, Powerclamp (décrit ci-dessous) n’a plus jamais été invoqué.


Intel Powerclamp

Le pilote Powerclamp =) == d'Intel est défini ici ( kernel.org - Intel Power Clamp.txt ) et fait partie de thermald décrit ci-dessus. Un devis direct pour Powerclamp à partir du lien:

Prenons le cas où la consommation électrique d’un système doit être réduite au moment de l’exécution, en raison du bilan énergétique, des contraintes thermiques ou du niveau de bruit, et où le refroidissement actif n’est pas préféré. La réduction de puissance passive gérée par logiciel doit être effectuée pour empêcher les actions matérielles conçues pour des scénarios catastrophiques.

Actuellement, les états P, les états T (modulation d'horloge) et le décalage de la CPU sont utilisés pour la régulation de la CPU.

Sur les processeurs Intel, les états C permettent de réduire efficacement la consommation d'énergie, mais jusqu'à présent, ils ne sont utilisés que de manière opportuniste, en fonction de la charge de travail. Avec le développement du pilote intel_powerclamp, la méthode de synchronisation de l'injection inactive dans tous les threads de processeur en ligne a été introduite. L’objectif est d’obtenir la résidence forcée et contrôlable dans l’État C.

Les tests/analyses ont été réalisés dans les domaines de la puissance, des performances, de l'évolutivité et de l'expérience utilisateur. Dans de nombreux cas, l’avantage évident est de mettre le CPU hors ligne ou de moduler son horloge.


Comment savez-vous que Powerclamp fonctionne?

Powerclamp pourrait ne se voir une fois par an que lorsque les ventilations de votre ventilateur reçoivent trop de poussière et de peluches. Alors, comment savez-vous qu'il fonctionne en arrière-plan? Utilisation:

lsmod | grep intel

Et vous devriez voir une liste semblable à ceci:

btintel                16384  1 btusb
bluetooth             520192  29 bnep,btbcm,btrtl,btusb,rfcomm,btintel
intel_rapl             20480  0
intel_powerclamp       16384  0
   (.... more intel drivers ....)
snd                    81920  18 snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_idt,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_hda_codec,snd_hda_intel,snd_seq_device

Si vous voyez intel_rapl et intel_powerclamp, vous savez que cela fonctionne et que vous attendez simplement le temps de dépasser 85 ° C.


Powerclamp en action affiché par Conky

Voici une capture d'écran où Powerclamp injecte des cycles de sommeil:

Kidie Injection

Sur ce système, la vitesse d'horloge du processeur est généralement de 2400 MHz à 3 400 MHz lorsque vous regardez une vidéo au format HTML5 et que 10 onglets Chrome sont ouverts. En règle générale, l'utilisation du processeur est d'environ 9% à 12% sur 8 processeurs. Quand les choses deviennent trop chaudes (86C) Powerclamp se déclenche et ceci se produit:

  • La vitesse du processeur est réduite à 1200 Mhz.
  • L'utilisation du processeur atteint 80%. Ceci est trompeur car les 70% supplémentaires représentent le temps de sommeil.
  • Les 9 processus les plus fréquents sur le processeur sont généralement 5 ou 6 processus Chrome, plus Xorg, Conky, Pulse Audio et un kworker occasionnel. Cependant, maintenant, 8 des 10 meilleurs sont le processus kidle_inject/xx est compris entre 0 et 7. Pour les 8 premiers processeurs.

Le pilote Powerclamp == s'exécute jusqu'à ce que le temps passe à nouveau sous la barre des 85 ° C. Pendant que le pilote est en cours d'exécution, il est possible que vous ayez une pause d'une fraction de seconde dans vos vidéos et éventuellement un décalage du clavier et de la souris d'une seconde.


Désactiver Intel Turbo Boost

De retour dans les "vieux temps froids" d'Ubuntu 14.04, Intel Turbo Boost était en panne, donc la vitesse de mon processeur fluctuait entre 1200 Mhz et 2400 Mhz. Après la mise à niveau vers Ubuntu 16.04, il passait à 3400 MHz (3,4 Ghz) car Turbo Boost fonctionnait enfin. Mais cela a aussi augmenté la chaleur.

Pour désactiver Intel Turbo Boost, utilisez:

echo "1" | Sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo

Solution à court terme dans ce scénario

Pour résoudre ce problème, j'ai sorti le placard ancien de l'ordinateur portable avec deux ventilateurs et j'ai sauté sous l'ordinateur. Cette température a chuté à 63 ° C sous la même charge de travail.

La prochaine étape sera l'air comprimé dans les évents. Après cela, la dernière étape sera un nouveau radiateur de refroidissement avec des tuyaux pour le processeur et le processeur graphique. Une bonne pâte thermique telle que l'Arctic Silver 5 est également nécessaire dans cette opération. Un nouveau ventilateur a déjà été installé l'année dernière et semble fonctionner correctement.

Mise à jour du 25 janvier 2017

Purgez les évents des ventilateurs avec de l’air comprimé et les températures tombent de 63 ° C à 56 ° C. Ceci utilise toujours le pad de refroidissement pour ordinateur portable, n’oubliez pas.

Mise à jour du 06 août 2017

Nous utilisons TLP (décrit ci-dessus) depuis plusieurs mois maintenant, les températures sont stables autour de 50 ° C et les performances des ventilateurs sont optimales.


Attention aux trop nombreux pilotes de contrôle de ventilateur

Parce que c’est un Dell, j’avais installé le moniteur/contrôleur de ventilateur I8K dans l’espoir d’accélérer le fonctionnement du ventilateur plus tôt et plus rapidement. Quand je tape sensors je reçois:

$ sensors
Dell_smm-virtual-0
Adapter: Virtual device
Processor Fan: 3963 RPM
CPU:            +63.0°C  
Ambient:        +49.0°C  
GPU:            +54.0°C  
Other:          +79.0°C  

acpitz-virtual-0
Adapter: Virtual device
temp1:        +27.8°C  (crit = +106.0°C)
temp2:        +29.8°C  (crit = +106.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +65.0°C  (high = +87.0°C, crit = +105.0°C)
Core 0:         +65.0°C  (high = +87.0°C, crit = +105.0°C)
Core 1:         +64.0°C  (high = +87.0°C, crit = +105.0°C)
Core 2:         +63.0°C  (high = +87.0°C, crit = +105.0°C)
Core 3:         +57.0°C  (high = +87.0°C, crit = +105.0°C)

Ignore les intérimaires virtuels, ils sont prêts à déjeuner . Sous Ubuntu 14.04, ils étaient exacts et j’utilisais temp 1 en affichage Conky. Après la mise à niveau vers Ubuntu 16.04, je devais me référer à une troisième température non affichée sur cet écran. Pour voir le REAL temps, vous pouvez utiliser cette commande:

$ cat /sys/class/thermal/thermal_zone*/temp
27800
29800
62000

Quand je tape:

$ lsmod |grep Dell
dell_wmi               16384  0
sparse_keymap          16384  1 Dell_wmi
Dell_laptop            20480  0
Dell_smbios            16384  2 Dell_wmi,Dell_laptop
dcdbas                 16384  1 Dell_smbios
Dell_smm_hwmon         16384  0
wmi                    16384  1 Dell_wmi
video                  40960  3 Dell_wmi,Dell_laptop,i915

Je vois le module/pilote du noyau Dell_smm_hwmon. Lorsque je recherche ce pilote sur Google et que I8K rapporte que les deux pilotes provoquent un blocage du système pendant une fraction de seconde toutes les 10 secondes environ. J'avais moi-même ce problème, j'ai donc dû supprimer I8K fan control .

Il existe de nombreux autres utilitaires et méthodes de refroidissement, mais cela devient TL; DR.

9
WinEunuuchs2Unix

J'ai créé un programme juste pour ce problème. Limitez votre CPU en fonction de la température souhaitée. Cela fonctionne comme ceci:

Sudo ./temp_throttle.sh 80

Cette commande ralentira les cœurs de votre processeur lorsqu'ils atteindront 80 degrés Celsius. Lorsque la température baisse, les cœurs de la CPU pourront à nouveau fonctionner plus rapidement. Vous pouvez trouver temp_throttle here .


Pour exécuter le script principal au démarrage avec Sudo et entrer le mot de passe dans gnome-terminal, vous pouvez créer un petit script:

#!/bin/bash

cd "/path/to/the/directory/temp-throttle-stable/"
gnome-terminal -e 'Sudo ./temp_throttle.sh 80' --geometry=45x15 --hide-menubar --profile=hold  

(--geometry=45x15 ouvre un petit écran de terminal; --profile=hold utilise un profil de terminal gnome appelé "hold" qui doit déjà être créé avec l'option "Lorsque la commande se ferme: maintenez le terminal ouvert", --hide-menubar masque les menus pour cette fenêtre)

Après l'avoir rendu exécutable, ce petit script (appelons-le temp_throttle_80.sh) peut ensuite être ajouté à la liste de démarrage et il vous sera demandé de saisir un mot de passe au démarrage. alors, si la température mentionnée est atteinte, son action est rapportée:

enter image description here

4
Sepero

vous pouvez limiter la fréquence du processeur, de manière à réduire la fréquence et à contrôler la chaleur du processeur.

cpufreq-selector -f <mention the frq u want in the Khz>
1
rɑːdʒɑ