Comment activer les protections pour la température du processeur

9

Mon bureau a une mauvaise habitude. Lorsque plusieurs applications à haute intensité sont en cours d'exécution et que mon processeur est à son utilisation maximale pendant une période de temps, la température centrale augmente et mon ordinateur s'éteint automatiquement.

Existe-t-il un moyen de surveiller (écrire un script) la température de mon processeur en arrière-plan et d'avoir une sorte d'avertissement lorsqu'il dépasse une certaine température?

J'utilise Opensuse avec dwm comme gestionnaire de fenêtres. J'utilise habituellement sensorspour voir la température de mon processeur.

n0pe
la source
1
Sous Linux ou d'autres variantes Unix? La méthode pour obtenir la température ou être averti des changements de température diffère entre les variantes Unix.
Gilles 'SO- arrête d'être méchant'
Mon mauvais @Gilles, j'ai ajouté des informations à ma question
n0pe
Après avoir vu cette augmentation de température, vous devez réduire votre processeur.
Nils

Réponses:

5

Vous pouvez écrire un script pour afficher votre température dans la barre d'état de dwm, par exemple:

temp (){
    awk '{print $4"°C"}' <(acpi -t)
    echo $temp
}
xsetroot -name "$(temp)"

Votre sensorssortie peut être plus complexe, selon votre configuration: cela fonctionne sur une de mes machines:

 awk '/temp1/ {print +$2"°C"}' <(sensors)

Si vous appliquez des patches dans les couleurs d'état , vous pouvez en outre faire en sorte que la sortie change de couleur à mesure que les $temprésultats atteignent des valeurs plus élevées ...

Le Wiki Arch a une introduction à la configuration d'un script de barre d'état basique et le site dwm inclut un exemple .xinitrc .

Vous pouvez voir mon dwm-statusscript pour plus de détails: http://beta.intuxication.org/jasonwryan/archer/file/tip/Scripts/dwm-status

jasonwryan
la source
C'est une très bonne idée à laquelle je n'ai pas pensé. Je n'ai jamais vraiment eu le temps de jouer avec la barre d'état de dwm donc ce sera amusant. Je vais voir ce que je peux gérer et commenter.
n0pe
Fonctionne parfaitement, et maintenant j'ai une barre d'état joliment personnalisée :)
n0pe
Excellent: cela vous donne un peu de latitude pour travailler avec ...
jasonwryan
2

J'ai exactement le même problème et ce que j'utilise est le package "cpufreqtools" (ou simplement "cpufreq" - je ne m'en souviens pas!).

Il vous donne deux commandes: cpufreq-info et cpufreq-set

cpufreq-info liste la vitesse actuelle du CPU et les vitesses min et max. et les étapes disponibles aussi.

cpufreq-set est plus utile pour vous car vous pouvez limiter la vitesse maximale que votre CPU atteindra jamais.

Mon processeur sujet à la surchauffe a les vitesses disponibles de 800 MHz, 1,60 GHz et 1,80 GHz. Donc, ce que je fais est de le limiter à 1,60 GHz comme ceci:

cpufreq-set --max 1.60Ghz

Fonctionne comme un charme!

Si vous êtes plus avancé dans vos compétences Linux, vous pouvez même le mettre dans un script de démarrage afin qu'il soit toujours exécuté dès que Linux démarre.

Bonne chance.

Daniel
la source
cpufrequtils (ubuntu 16.04).
Green Tree
1

J'ai créé un script pour résoudre directement ce type de problème de surchauffe. Limitez votre processeur en fonction de la température souhaitée. Il s'exécute automatiquement en arrière-plan 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 .

Sepero
la source
1
À l'avenir, ne vous attendez pas à ce que tout le monde utilise Ubuntu avec sa politique par défaut sudo-everything. Soit mentionner qu'il faut autoriser le script dans la configuration sudo ou (mieux) simplement écrire qu'il nécessite des privilèges root qui peuvent être obtenus via sudo. Ou - sous Linux - décrivez les capacités (comme dans la capabilities(7)page de manuel) requises.
peterph