#1 Le 13/05/2006, à 15:12
- NicoA380
CPU throttling > baisser la fréquence (température?) du CPU
Salut à tous,
j'ai découvert sur mon PC portable le fait de pouvoir faire varier la fréquence du CPU simplement (même sur un vieux modèle), grâce à laptop-mode (et laptop-mode.conf).
Il y a le CPU frequency scaling pour les processeurs plus moderne (j'ai pas cette chance), et le CPU throttling pour les plus vieux.
Comment savoir si notre CPU peut throttler ?
vérifier la présence du fichier :
/proc/acpi/processor/CPU*/throttling
(CPU*, est en réalité CPU0, CPU1, CPU2 ... suivant votre nombre de CPU)
Il y a plusieurs valeurs de throttling possible, pour les connaîtres :
cat /proc/acpi/processor/CPU*/throttling
Ce qui donne pour mon PC de bureau (athlonXP 2000+) :
$ cat /proc/acpi/processor/CPU0/throttling
state count: 2
active state: T0
states:
*T0: 00%
T1: 50%
Et sur mon ordinateur portable (PIII 700), 8 valeurs différentes allant jusqu'à 78%.
Vous vous demandez comment changer la valeur de throttling courante ?
echo x | sudo tee /proc/acpi/processor/CPU*/throttling
exemple sur mon PC de bureau :
echo 1 | sudo tee /proc/acpi/processor/CPU0/throttling
ralenti par 2 mon CPU, ce que j'ai pu constater avec le premier faux bench à me passer sous les doigts : glxgears, qui solicite la carte graphique, on est d'accord, mais la différence était tout de même notable.
pour la restauration :
echo 0 | sudo tee /proc/acpi/processor/CPU0/throttling
Pourquoi je m'interresse à ça ?
J'ai un processeur qui à tendance à chauffer pas mal, malgrès sont changement de ventilo. Je me demandais si baisser la fréquence de cette manière, baisserait la température du processeur, quand je n'ai pas besoin de toute sa puissance.
En parrallèle j'ai découvert athcool, qui permet de refroidir les CPU athlon d'AMD quand ils sont idle.
Athcool semble efficasse (passage de 63° à 56° après activation), par contre, je n'arrive pas encore à juger de l'influence du throttling sur la température.
Peut-être en avez déjà fait cette expérience ?
Dernière modification par NicoA380 (Le 13/05/2006, à 15:15)
Hors ligne
#2 Le 31/05/2006, à 20:22
- BoBoL
Re : CPU throttling > baisser la fréquence (température?) du CPU
Mon Sempron 3000+ aussi chauffe pas mal et ta soluce m'interesse beaucoup, tu te rends compte de ce qu'il serait possible de faire si c'est vraiment ok? Je vais essayer ca dès que je peux et je te tiens au courant.
Waf Waf...
Hors ligne
#3 Le 31/05/2006, à 20:27
- BoBoL
Re : CPU throttling > baisser la fréquence (température?) du CPU
Je crois que le mien is scaling en fait j'suis *** (pas très vif d'esprit), du coup désolé et je te souhaite courage dans tes recherches.
Waf Waf...
Hors ligne
#4 Le 31/05/2006, à 20:36
- doohan
Re : CPU throttling > baisser la fréquence (température?) du CPU
je viens d'essayé ta commande cat /proc/acpi/processor/CPU*/throttling
et ça me renvoi ça
<not supported>
as tu installer un programme particulier ?
je precise que j'ai un portable equipé d'un Amd athlon XP 2600 et un sempron 2600 + Pc de bureau.
sur mon portable le CPU et a 59 °c
Hors ligne
#5 Le 31/05/2006, à 20:41
- NicoA380
Re : CPU throttling > baisser la fréquence (température?) du CPU
J'ai rien installé de particulier, je pense que c'est inclut dans l'acpi.
J'ai arrêté de jouer avec ça, je laisser chauffer le proc, ça me dérange pas plus que ça tant qu'il fonctionne
Hors ligne
#6 Le 01/06/2006, à 22:21
- BoBoL
Re : CPU throttling > baisser la fréquence (température?) du CPU
doohan, je pense que tu es dans le meme cas que moi c'est à dire que tu peux utiliser le scaling, Nico lui ne peut pas et il est obligé de passer par la technique qu'il a dit précedement.;)
Waf Waf...
Hors ligne
#7 Le 20/06/2006, à 10:45
- Mathieu147
Re : CPU throttling > baisser la fréquence (température?) du CPU
Chez moi, la commande
echo 1 | sudo tee /proc/acpi/processor/CPU0/throttling
n'a aucun effet
Comment puisje alors changer la fréquence? Merci
Pffff…
Hors ligne
#8 Le 20/06/2006, à 15:25
- NicoA380
Re : CPU throttling > baisser la fréquence (température?) du CPU
Que te donne un "cat /proc/acpi/processor/CPU0/throttling" ?
Hors ligne
#9 Le 20/06/2006, à 15:36
- Mathieu147
Re : CPU throttling > baisser la fréquence (température?) du CPU
Que te donne un "cat /proc/acpi/processor/CPU0/throttling" ?
Ça me donne ça:
mathieu@mathieu-laptop:~$ cat /proc/acpi/processor/CPU0/throttling
state count: 8
active state: T0
states:
*T0: 00%
T1: 12%
T2: 25%
T3: 37%
T4: 50%
T5: 62%
T6: 75%
T7: 87%
Pffff…
Hors ligne
#10 Le 20/06/2006, à 15:48
- silence
Re : CPU throttling > baisser la fréquence (température?) du CPU
Bonjour,
Dites moi, à partir de quelle température est-ce que ça chaufe trop (pour un portable)?
acpi -v
m'indique parfois des températures proches de 60°, mais il note toujours 'OK'
Merci!
Hors ligne
#11 Le 07/07/2006, à 07:16
- Sangoku
Re : CPU throttling > baisser la fréquence (température?) du CPU
merci pour l'astuce Nico !:)
lumières ?
climatisations ?
Et si il y a des caméras dans les lumières et les climatisations : quel serait ta réaction ?
Hors ligne
#12 Le 06/12/2006, à 12:48
- damb
Re : CPU throttling > baisser la fréquence (température?) du CPU
salut c'est marrant cet commande m'indique
-acpi0.O9
C'est froid..!?
Hors ligne
#13 Le 16/04/2007, à 14:45
- koogan
Re : CPU throttling > baisser la fréquence (température?) du CPU
salut c'est marrant cet commande m'indique
-acpi0.O9
C'est froid..!?
Essayer
acpi -t
en fait !
Hors ligne
#14 Le 10/01/2008, à 21:20
- Jeryagor
Re : CPU throttling > baisser la fréquence (température?) du CPU
Des nouvelles de l'efficacité de cette commande ?
Chez moi, la vitesse du processeur est clairement limitée, reste à voir si la temprétaure aussi baissera...
Hors ligne
#15 Le 09/04/2008, à 18:57
- chichemut
Re : CPU throttling > baisser la fréquence (température?) du CPU
bonsoir,
sur mon portable meddion 5226 pentium4, il s'avère que le "throttling" évolue automatiquement en fonction de la température.
en fait, je pense que le processus se contente de faire des séries de "nop"
ci-dessous un petit extrait:
state count: 8
active state: T7
states:
T0: 00%
T1: 12%
T2: 25%
T3: 37%
T4: 50%
T5: 62%
T6: 75%
*T7: 87%
@-laptop:~$ acpi -t
Battery 1: charged, 100%
Thermal 1: passive active[0], 59.0 degrees C
lorsqu'il y a des animations vidéo la température monte rapidement à 61-62 degrés et le portable reste figé de longs moments (la fenêtre active devient "grise de la mort") le temps d'évacuer les calories, mais ne remonte pas au dessus de T5 lorsqu'il travaille depuis 2heures.
la grille d'entrée d'air frais est sur la tranche droite du portable, si bien que les socles support à ventilateur ne satisferaient pas.
en passant sur les forums, j'ai lu un essai de refroidissement par pompe d'aérateur d'aquarium.
quelqu'un a-t-il essayé et qu'en pense-t-il?
éventuellement quel choix débit horaire/bruit d'air/ bruit de moteur/ refroidissement serait le plus judicieux?
Hors ligne
#16 Le 18/09/2008, à 20:10
- cannard
Re : CPU throttling > baisser la fréquence (température?) du CPU
salut à tous, j'ai découvert cette astuce il y a quelques temps déjà et personnellement je m'en sert lorsque que le processeur travaille beaucoup (conversions de fichiers par exemple) et c'est relativement efficace, à 75% je reste en dessous des 50°C que je dépassais largement en étant à 100%.
par contre j'aurais une petite question, peut on faire un prog pour que le throttling se lance dès que le proco dépasse une certaine température ou ne serait-ce qu'un simple programme ?
merci d'avance
Hors ligne
#17 Le 20/09/2008, à 17:42
- pnprog
Re : CPU throttling > baisser la fréquence (température?) du CPU
par contre j'aurais une petite question, peut on faire un prog pour que le throttling se lance dès que le proco dépasse une certaine température ou ne serait-ce qu'un simple programme ?
J'ai essayé de faire un "simple programme" qui le fasse, ça donne:
#!/bin/bash
#auto_throttling
#auteur: pnprog AT no-log DOT org
#fichier: auto_throttling.sh
#version 0.1
#ce script est proposé sous licence GPL2 (General Public License)
termal="Thermal 1"
cpu="CPU0"
max="50"
min="45"
period="30"
function read_temperature
{
temperature=$(acpi -t | grep "$termal")
temperature=${temperature#*ok, }
temperature=${temperature%%.*}
echo $temperature
}
throttling="off"
while :
do
temperature=$(read_temperature)
if [ "$throttling" = "off" ] && let "$temperature>$max" ;
then
echo Throttling activé
throttling="on"
echo 1 | tee /proc/acpi/processor/"$cpu"/throttling
fi
if [ "$throttling" = "on" ] && let "$temperature<$min" ;
then
echo Throttling désactivé
throttling="off"
echo 0 | tee /proc/acpi/processor/"$cpu"/throttling
fi
sleep $period
done
Il faut le configurer en modifiant ces lignes:
termal="Thermal 1"
cpu="CPU0"
max="50"
min="45"
period="30"
termal est la sonde lue par acpi.
cpu est le cpu à surveiller.
max est la température au delà de laquelle le throttling est activé et min la température en dessous de laquelle il est désactivé. Vaut mieux mettre deux températures différentes pour éviter un phénomène d'hystérésis.
period le temps écoulé en secondes entre deux relevés de température.
Je ne peux pas vraiment le tester car mon cpu est scalling justement. Donc lance le avec sudo dans une console et dis moi si ça marche. Il se contente d'afficher l'activation ou la désactivation du throttling.
Dernière modification par pnprog (Le 20/09/2008, à 17:58)
Hors ligne
#18 Le 05/10/2008, à 10:22
- cannard
Re : CPU throttling > baisser la fréquence (température?) du CPU
merci beaucoup je teste ça et je te dis
edit : je suis vraiment nul, j'arrive à tout configurer sauf termal ...
edit 2 : je crois que je viens de comprendre ...
si je tapes dans un terminal : "acpi -t"
qui devrait m'afficher les différentes températures, ça me répond :
"No support for device type: thermal"
Dernière modification par cannard (Le 05/10/2008, à 10:51)
Hors ligne
#19 Le 09/10/2008, à 05:57
- pnprog
Re : CPU throttling > baisser la fréquence (température?) du CPU
Alors comment tu lis la température de ton processeur ?
Hors ligne
#20 Le 09/10/2008, à 08:24
- Mathieu147
Re : CPU throttling > baisser la fréquence (température?) du CPU
si je tapes dans un terminal : "acpi -t"
qui devrait m'afficher les différentes températures, ça me répond :
"No support for device type: thermal"
:o Chez moi aussi ça fait ça, avant ça marchait!
Pffff…
Hors ligne
#21 Le 09/10/2008, à 19:53
- cannard
Re : CPU throttling > baisser la fréquence (température?) du CPU
j'ai installé sensors-applet et lm-sensors qui m'affichent la température
j'avais essayé de faire des lanceurs avec différentes valeurs de throttling, mais j'ai pas réussi, ça aurait déjà été bien ... mais je suis vraiment nul
acpi -t marchait aussi chez moi avant la dernière réinstallation, enfin pas grave ...
de toute façon j'ai le zoli applet
Hors ligne
#22 Le 09/10/2008, à 21:05
- pnprog
Re : CPU throttling > baisser la fréquence (température?) du CPU
Il doit être possible d'adapter le script à lm-sensors au script, il faut juste trouver comment s'en servir en ligne de commande pour afficher la température.
Hors ligne
#23 Le 10/10/2008, à 11:48
- cannard
Re : CPU throttling > baisser la fréquence (température?) du CPU
il y a bien le moyen de voir ça en ligne de commande, dès que je repasse sous linux (je suis sur un XP là) je te dis
voilà un petit copié collé d'un terminal
quentin@quentin-desktop:~$ sensors
adm1027-i2c-0-2e
Adapter: SMBus I801 adapter at c400
V1.5: +1.47 V (min = +0.00 V, max = +3.32 V)
VCore: +1.50 V (min = +0.00 V, max = +2.99 V)
V3.3: +3.34 V (min = +0.00 V, max = +4.38 V)
V5: +5.13 V (min = +0.00 V, max = +6.64 V)
V12: +12.16 V (min = +0.00 V, max = +15.94 V)
CPU_Fan: 2848 RPM (min = 0 RPM)
fan2: -1 RPM (min = 0 RPM)
fan3: 1272 RPM (min = 0 RPM)
fan4: -1 RPM (min = 0 RPM)
CPU Temp: +32.8°C (low = -127.0°C, high = +127.0°C)
Board Temp: +26.0°C (low = -127.0°C, high = +127.0°C)
Remote Temp: +28.5°C (low = -127.0°C, high = +127.0°C)
cpu0_vid: +1.525 V
Dernière modification par cannard (Le 11/10/2008, à 18:34)
Hors ligne
#24 Le 18/10/2008, à 06:20
- Ploply
Re : CPU throttling > baisser la fréquence (température?) du CPU
Dans le power-management-guide de Gentoo on peut y lire :
Q: Je peux changer la fréquence du processeur, mais la plage disponible est plus restreinte qu'elle ne l'est dans un autre système d'exploitation.
R: Vous pouvez combiner l'échelonnage de la fréquence avec la régulation du temps processeur ACPI (« ACPI CPU throttling ») pour obtenir une fréquence minimale plus basse.
Notez que la régulation du temps processeur ne sauve pas beaucoup d'énergie et sert plutôt à la gestion de la dissipation de la chaleur (afin de garder votre portable froid et silencieux).
Vous pouvez consulter l'état de régulation du temps processeur avec cat /proc/acpi/processor/CPU/throttling et le changer avec echo -n "0:x" > /proc/acpi/processor/CPU/limit, où x est un des états Tx listés dans /proc/acpi/processor/CPU/throttling.
Donc exactement ce dont vous parlez
J'aurai aimé savoir comment combiner les 2 effets et conserver cette config. ?
La fréquence de mon proco (double coeur je crois) est ajustable (Gouverneur sur Conservative) toutefois sa fréquence mini est à 800 (400 ou 600 sur vista).
Je pense donc que la solution est là toutefois c'est en lisant votre post que j'ai souhaité en savoir plus sans pour autant pouvoir me débrouiller dans ces choix. (je suis sur un laptop et souhaite aussi limiter les accès disque)
Dernière modification par Ploply (Le 18/10/2008, à 06:21)
Lucid - Gnome
Hors ligne
#25 Le 06/11/2008, à 18:20
- pnprog
Re : CPU throttling > baisser la fréquence (température?) du CPU
il y a bien le moyen de voir ça en ligne de commande, dès que je repasse sous linux (je suis sur un XP là) je te dis
voilà un petit copié collé d'un terminal
Oups, désolé je n'avais pas vu ta réponse. Je vérifie régulièrement les réponses dans "Mes messages" mais comme tu avais modifié le tien, au lieu de rajouter une réponse, je ne l'ai pas vu passer.
Dans le code que j'ai donné plus haut, remplace:
function read_temperature
{
temperature=$(acpi -t | grep "$termal")
temperature=${temperature#*ok, }
temperature=${temperature%%.*}
echo $temperature
}
par
function read_temperature
{
temperature=$(sensors | grep "CPU Temp:")
temperature=${temperature:14}
temperature=${temperature%%°C*}
temperature=${temperature%%.*}
echo $temperature
}
Dis moi si ça marche, je ne peux pas vraiment tester sur mon pc.
Hors ligne