web-dev-qa-db-fra.com

Le ventilateur de refroidissement n'atteint jamais la vitesse élevée, même s'il est clairement nécessaire

La consommation du processeur est très élevée (ce qui ne devrait évidemment pas être le cas) lorsque vous regardez une vidéo sur Chrome. Ceci est dû à une régression qui est apparue récemment (cela ne se produirait pas auparavant), mais ce n'est pas le but ici. Supposons simplement que quelque chose consomme beaucoup de processeur.

J'ai désactivé intel_powerclamp et intel_rapl. Ainsi, lorsque la consommation du processeur est élevée, je m'attends à ce que le ventilateur de refroidissement accélère aussi rapidement que nécessaire pour refroidir le processeur.

Au lieu de cela, ce qui se passe, c'est que le ventilateur n'atteint jamais sa vitesse maximale, même pas très proche de cela. Et tout le système ralentit et ne répond plus, de la même manière que quand intel_powerclamp était activé. Mais aucun processus "kidle_inject" n'apparaît en haut.

La preuve que le ventilateur de refroidissement ne tourne pas aussi vite qu'il le devrait est que si je redémarre l'ordinateur, avant que le système ne commence à démarrer (dans le menu de démarrage), le ventilateur tourne à une vitesse folle. Cela prouve (1) qu'il est capable d'aller plus vite que lorsque le système d'exploitation est en cours d'exécution et (2) que le matériel "pense" que la température l'exige, jusqu'à ce que le système d'exploitation se déclenche et pense savoir mieux le faire.

Je ne vois que deux explications à cela:

A) certaines configurations logicielles limitent la vitesse du ventilateur (peut-être parce qu'il est configuré dans l'hypothèse où intel_powerclamp était là aussi et ferait la moitié du travail). Donc, étant donné que le ventilateur à sa vitesse actuelle ne suffit pas à refroidir le processeur, et comme intel_powerclamp n’est pas là pour limiter son utilisation, une protection matérielle interne du processeur s’active et le ralentit, pour l’empêcher de brûler (ou d’atteindre la limite stricte qui le ferait s'éteindre brusquement) OF

B) Outre intel_powerclamp et intel_rapl que j'ai désactivés (je comprends comment intel_powerclamp fonctionne, je ne sais pas du tout comment intel_rapl le fait), il existe un autre pilote qui fonctionne de la même manière, ralentissant le processeur pour le faire consommer moins d'énergie.

Dans le cas (A), j’aurais besoin de corriger la configuration de sorte que le ventilateur puisse fonctionner à sa capacité maximale et voir si c’est suffisant pour maintenir la température basse et empêcher la protection matérielle de se déclencher.

Dans le cas (B), je veux probablement essayer soit

[B1] Désactivez tout autre mécanisme de limitation de l’UC basé sur un logiciel ou un semi-logiciel et vérifiez si le ventilateur seul suffit, ou

[B2] Modifiez quelque peu le facteur de pondération, la configuration du seuil ou de la priorité de sorte que le ventilateur puisse fonctionner plus vite AVANT que la limitation du processeur se déclenche (et l’empêche même, espérons-le, de se produire).

Est-ce que quelqu'un sait comment déterminer si c'est (A) ou (B) et comment résoudre ce problème?

J'ai lu des informations sur la configuration de Thermald à l'adresse https://wiki.ubuntu.com/Kernel/PowerManagement/ThermalIssues , mais c'est terriblement flou et il n'y a pas d'exemple concret.

4
matteo

Je viens de faire cet exercice avec Thermald. Tout d’abord, je dois signaler que Thermald était en panne, même dans les nouvelles versions de 16.04, car il ne lisait pas son fichier de configuration. Cela a maintenant été corrigé, alors assurez-vous que toutes vos mises à jour sont installées.

En outre, la page que vous référencez est plutôt bonne et contient également un exemple de fichier de configuration thermal-conf.xml.

Ensuite, en supposant que vous avez installé thermald, arrêtez le processus, redémarrez-le en mode --no-daemon et surveillez attentivement le résultat. Cela vous donnera la plupart des réponses dont vous avez besoin pour configurer votre propre fichier thermal-conf.xml. Surveillez cdev (dispositif de refroidissement), etc.

Sudo service thermald stop

Sudo thermald --no-daemon --loglevel = debug

Voici une copie de mon fichier custom thermal-conf.xml que vous pourrez consulter:

<?xml version="1.0"?>
<ThermalConfiguration>
<Platform>
    <Name>Toshiba Laptop</Name>
    <ProductName>*</ProductName>
    <Preference>QUIET</Preference>
    <ThermalSensors>
            <ThermalSensor>
                    <Type>x86_pkg_temp</Type>
                    <Path>/sys/class/thermal/thermal_zone0/</Path>
                    <AsyncCapable>1</AsyncCapable>
            </ThermalSensor>
    </ThermalSensors>
    <ThermalZones>
            <ThermalZone>
                    <Type>cpu package</Type>
                    <TripPoints>
                            <TripPoint>
                                    <SensorType>x86_pkg_temp</SensorType>
                                    <Temperature>59000</Temperature>
                                    <type>passive</type>
                                    <ControlType>PARALLEL</ControlType>
                                    <CoolingDevice>
                                            <index>0</index>
                                            <type>Processor</type>
                                            <influence> 10 </influence>
                                            <SamplingPeriod> 5 </SamplingPeriod>
                                    </CoolingDevice>
                                    <CoolingDevice>
                                            <index>1</index>
                                            <type>Processor</type>
                                            <influence> 10 </influence>
                                            <SamplingPeriod> 5 </SamplingPeriod>
                                    </CoolingDevice>
                                    <CoolingDevice>
                                            <index>2</index>
                                            <type>Processor</type>
                                            <influence> 10 </influence>
                                            <SamplingPeriod> 5 </SamplingPeriod>
                                    </CoolingDevice>
                                    <CoolingDevice>
                                            <index>3</index>
                                            <type>Processor</type>
                                            <influence> 10 </influence>
                                            <SamplingPeriod> 5 </SamplingPeriod>
                                    </CoolingDevice>
                                    <CoolingDevice>
                                            <index>4</index>
                                            <type>intel_powerclamp</type>
                                            <influence> 30 </influence>
                                            <SamplingPeriod> 10 </SamplingPeriod>
                                    </CoolingDevice>
                                    <CoolingDevice>
                                            <index>5</index>
                                            <type>rapl_controller</type>
                                            <influence> 50 </influence>
                                            <SamplingPeriod> 10 </SamplingPeriod>
                                    </CoolingDevice>
                                    <CoolingDevice>
                                            <index>6</index>
                                            <type>intel_pstate</type>
                                            <influence> 40 </influence>
                                            <SamplingPeriod> 10 </SamplingPeriod>
                                    </CoolingDevice>
                                    <CoolingDevice>
                                            <index>7</index>
                                            <type>rapl_controller_dram</type>
                                            <influence> 50 </influence>
                                            <SamplingPeriod> 10 </SamplingPeriod>
                                    </CoolingDevice>
                            </TripPoint>
                    </TripPoints>
            </ThermalZone>
    </ThermalZones>
</Platform>
</ThermalConfiguration>
2
heynnema