Empêchez le processeur de surchauffer

11

Lorsque j'exécute des applications intensives comme Blender, mon processeur peut atteindre 80.CI peut synchroniser manuellement le processeur à partir du BIOS, mais j'aimerais que mon PC détecte quand la température du processeur devient trop élevée et ralentit les choses jusqu'à ce que tout refroidisse. Existe-t-il un moyen de le faire de manière automatique ou même manuelle pour ralentir le processeur d'ubuntu

Qwertie
la source
2
Cela ressemble à une demande de fonctionnalité pour Blender en attendant. Vous pouvez utiliser manuellement Performance Governor et arrêter les applications manuellement avec le moniteur système.
userDepth

Réponses:

11

Solution Intel Ubuntu 16.04+ pour Sandy Bridge et les nouveaux processeurs

De ( wiki.debian.org -thermald ), il y a un article de Debian (Ubuntu) sur le démon thermald A Linux pour refroidir les tablettes et les ordinateurs portables. Cela ne fonctionne que pour Sandy Bridge (2e génération) et les nouveaux cœurs 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 essayer de refroidir le système.

Le démon thermique Linux (thermald) surveille et contrôle la température dans les ordinateurs portables, les tablettes PC avec le dernier pont Intel Sandy et les dernières versions du processeur 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 essayer de refroidir le système.

Il fonctionne en deux modes:

Mode de configuration zéro

  • Pour la plupart des utilisateurs, cela devrait être suffisant pour contrôler la température du processeur du système. Cela utilise le capteur de température DTS et utilise le pilote d'état Intel P, le pilote de la pince d'alimentation, le contrôle de la limite de puissance moyenne en cours et le 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 buggy ACPI ou affiner 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ée en fonction des commentaires et suggestions de la communauté.

Comment installer

apt-get install thermald

TLP

Depuis Arch Linux :

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

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

Après de nombreux essais et erreurs avec d'autres packages, j'ai eu beaucoup de succès en utilisant TLP. Il offre un contrôle supérieur du ventilateur et fonctionne parfaitement avec les états thermiques et p .

Comme ces instructions d'installation pour Ubuntu 15.04+ mentionnent TLP non seulement réduit 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:

Considérez la situation où la consommation d'énergie d'un système doit être réduite au moment de l'exécution, en raison du budget d'alimentation, de la contrainte thermique ou du niveau de bruit, et où le refroidissement actif n'est pas préféré. Une 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 la mise hors ligne du processeur sont utilisés pour la limitation du processeur.

Sur les processeurs Intel, les états C fournissent une réduction de puissance efficace, 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 sur tous les threads de CPU en ligne a été introduite. L'objectif est d'obtenir une résidence forcée et contrôlable dans l'État C.

Des 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, un net avantage est démontré par rapport à la mise hors ligne du processeur ou à la modulation de l'horloge du processeur.


Comment savez-vous que Powerclamp fonctionne?

Powerclamp pourrait ne se montrer qu'une fois par an lorsque les évents de votre ventilateur sont trop poussiéreux et pelucheux. Alors, comment savez-vous qu'il fonctionne réellement en arrière-plan? Utilisation:

lsmod | grep intel

Et vous devriez voir une liste similaire à 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_raplet que intel_powerclampvous savez que cela fonctionne et que vous attendez simplement que les températures dépassent 85 ° C.


Powerclamp en action affiché par Conky

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

Injection Kidie

Normalement, sur ce système, la vitesse d'horloge du processeur est de 2400 Mhz à 3400 Mhz lorsque vous regardez une vidéo HTML5 et 10 onglets Chrome s'ouvrent. Normalement, l'utilisation du processeur est d'environ 9% à 12% sur 8 processeurs. Lorsque les choses deviennent trop chaudes ( 86C ), Powerclamp entre en action et cela 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 principaux processus CPU sont généralement 5 ou 6 processus Chrome plus Xorg, Conky, Pulse Audio et un kworker occasionnel. Cependant maintenant 8 des 10 premiers sont le processus kidle_inject / xxest de 0 à 7. Pour les 8 premiers processeurs.

Le pilote Powerclamp fonctionne jusqu'à ce que les températures redescendent en dessous de 85 ° C. Pendant que le pilote est en cours d'exécution, vous pouvez avoir une pause d'une seconde dans vos vidéos et peut-être une deuxième pause du clavier et de la souris.


Désactiver Intel Turbo Boost

Dans le "vieux temps cool" d'Ubuntu 14.04, Intel Turbo Boost était cassé, donc la vitesse de mon processeur a oscillé entre 1200 et 2400 MHz. Après la mise à niveau vers Ubuntu 16.04, cela augmenterait jusqu'à 3400 Mhz (3,4 Ghz) car Turbo Boost fonctionnait enfin. Mais cela a également augmenté la chaleur.

Pour désactiver l'utilisation d'Intel Turbo Boost:

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

Correction à court terme dans ce scénario

Pour "panser" ce problème, j'ai sorti le vieux refroidisseur d'ordinateur portable avec deux ventilateurs du placard et j'ai sauté sous l'ordinateur portable. Cela a fait chuter les températures à 63 ° C sous la même charge de travail.

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

Mise à jour du 25 janvier 2017

Les évents de soufflage ont soufflé avec l'air comprimé et les températures sont passées de 63 ° C à 56 ° C. Cela utilise toujours le tampon de refroidissement pour ordinateur portable.

Mise à jour du 06 août 2017

J'utilise TLP(décrit ci-dessus) depuis de nombreux mois maintenant et les températures sont stables autour de 50 ° C et les performances du ventilateur sont optimales.


Attention aux trop nombreux pilotes de contrôle du ventilateur

Parce que c'est un Dell que j'avais installé I8K Fan Monitor / Control dans l'espoir qu'il accélérerait le ventilateur de plus en plus vite. Quand je tape, sensorsje 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)

Ignorez les temps virtuels, ils sont dehors pour déjeuner . Sous Ubuntu 14.04, ils étaient précis et j'ai utilisétemp 1dans l'affichage Conky. Après la mise à niveau d'Ubuntu 16.04, j'ai dû me référer à une troisième température non affichée sur cet écran. Pour voir les TEMPS RÉELS, 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 dell_smm_hwmonmodule / pilote du noyau. Lorsque je recherche sur Google ce pilote et les I8Kgens signalent que les deux pilotes provoquent des blocages 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 le contrôle du ventilateur I8K .

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

WinEunuuchs2Unix
la source
Wow, c'est tout à fait la réponse. Beaucoup de trucs sympas ici.
Qwertie
J'ai installé thermald, mais comment exécuter powerclamp? Est-ce qu'il fonctionne par défaut? quelle température essaie-t-il de ne pas dépasser?
@cipricus Lorsque vous utilisez: $ lsmod | grep powervous devriez voir ceci: intel_powerclamp 16384 0. Sinon, Powerclamp pourrait être mis sur liste noire pour une raison quelconque. La température seuil est 85C mais je pense que vous pouvez la changer. Voir: bugs.launchpad.net/ubuntu/+source/linux/+bug/1389077
WinEunuuchs2Unix
4

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

sudo ./temp_throttle.sh 80

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


Pour exécuter le script principal au démarrage avec sudo et entrer le mot de passe dans gnome-terminal, on pourrait 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=45x15ouvre un petit écran de terminal; --profile=holdutilise un profil de gnome-terminal appelé "hold" qui doit déjà être créé avec l'option "Quand la commande se termine: maintenez le terminal ouvert", --hide-menubarmasque les menus de 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 vous serez invité à entrer un mot de passe au démarrage; puis, si la température mentionnée est atteinte, son action est rapportée:

entrez la description de l'image ici

Sepero
la source
1
Joli script. J'ai également fait un script pour mettre le PC en veille lorsqu'il atteint une température maximale. link
kenn
C'est une excellente réponse et fonctionne en 16.04
Scripts nécessitant des sudopouvoirs que j'utilise pour cronutiliser les rebootoptions. De cette façon, aucun mot de passe ne doit être entré au démarrage. Il existe d'autres façons de le faire, mais cron a été le plus facile à configurer pour moi.
WinEunuuchs2Unix
Pour info la réponse que j'ai postée sur Intel Powerclamp accélère le processeur à la vitesse la plus basse. Cependant, il injecte également des états inactifs pour que le CPU ne fasse rien. Je pense que votre script est génial, mais vous voudrez peut-être savoir ce que fait Intel. Je crois que c'est open source et vous pouvez l'étudier si vous êtes intéressé.
WinEunuuchs2Unix
1

vous pouvez limiter la fréquence du processeur, afin de pouvoir réduire la fréquence et contrôler la chaleur du processeur.

cpufreq-selector -f <mention the frq u want in the Khz>
rɑːdʒɑ
la source
Est-ce permanent ou va-t-il revenir après un redémarrage?
Qwertie
c'est un ensemble fixe et si vous voulez le modifier, encore une fois vous devez.
rɑːdʒɑ
Vous devez installer gnome-appletspour que cela fonctionne
kiri
@ minerz029 c'est une commande de terminal mon ami.
rɑːdʒɑ
1
@rajagenupula J'obtiens une erreur de commande introuvableThe program 'cpufreq-selector' is currently not installed. You can install it by typing: sudo apt-get install gnome-applets
kiri