J'ai une nouvelle Intel I7-9700K en cours d'exécution à Ubuntu 20.04. Ce processeur doit s'écouler à la fréquence de base de 3,6 GHz avec une fréquence maximale de 4,9 GHz dans l'overclocking.
J'ai fait un calcul coûteux aujourd'hui et j'ai regardé les fréquences d'horloge avec
watch -n.1 "cat /proc/cpuinfo | grep \"^[c]pu MHz\""
et les noyaux CPU ont horrifié à environ 4,5 GHz. Comment se peut-il? Je n'ai pas changé les paramètres du BIOS? Les températures où dans la plage normale selon les capteurs LM (inférieures à 80 'C surtout). Par demande:
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
retour
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
et
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
retour
powersave
powersave
powersave
powersave
powersave
powersave
powersave
powersave
cpu1: MSR_TURBO_RATIO_LIMIT: 0x23242526
35 * 100.0 = 3500.0 MHz max turbo 4 active cores
36 * 100.0 = 3600.0 MHz max turbo 3 active cores
37 * 100.0 = 3700.0 MHz max turbo 2 active cores
38 * 100.0 = 3800.0 MHz max turbo 1 active cores
Typiquement est très inhabituel de voir ceci (i5-9600k, mais ce n'est pas la valeur par défaut du processeur, je l'ai fait dans le BIOS):
cpu3: MSR_TURBO_RATIO_LIMIT: 0x2b2b2e2e2e2e2e2e
43 * 100.0 = 4300.0 MHz max turbo 8 active cores <<< I don't have 8 cores
43 * 100.0 = 4300.0 MHz max turbo 7 active cores <<< I don't have 7 cores
46 * 100.0 = 4600.0 MHz max turbo 6 active cores
46 * 100.0 = 4600.0 MHz max turbo 5 active cores
46 * 100.0 = 4600.0 MHz max turbo 4 active cores
46 * 100.0 = 4600.0 MHz max turbo 3 active cores
46 * 100.0 = 4600.0 MHz max turbo 2 active cores
46 * 100.0 = 4600.0 MHz max turbo 1 active cores
Parmi les autres raisons, citons vos paramètres de biais de puissance, l'attente d'E/S, la puissance ou l'étranglement thermique (vous avez mentionné thermique n'est pas le problème, mais simplement dire). Si vous voulez le plus, vous pouvez utiliser le gouverneur de performance à la place du gouverneur PowerSave. Bien que beaucoup recommandent des outils de niveau supérieur, j'utilise des primitives:
doug@s18:~/c$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
powersave
powersave
powersave
powersave
powersave
powersave
doug@s18:~/c$ echo performance | Sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
performance
doug@s18:~/c$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
performance
performance
performance
performance
performance
performance
Lorsque l'on échantillonne les CPU à un taux aussi élevé, 10 fois par seconde, la commande elle-même a une incidence sur le système entraînant un biais dans ce qui est observé. N'oubliez pas que les processeurs inactifs peuvent entrer dans des états de ralenti très profond pendant plusieurs secondes à la fois et les réveiller à un rythme élevé juste pour échantillonner la fréquence, ce n'est pas une bonne idée, mais extrêmement courant chez les utilisateurs. Si vous voulez savoir ce qui se passe avec votre système, je vous suggérerais un tubostat pour deux raisons: c'est un très bon outil; C'est également l'outil préféré pour les escalades en amont. Mais s'il vous plaît échantillonner lentement. Exemple (surtout, je trouve suffisamment d'informations sommaires, mais vous pouvez forcer beaucoup d'informations. J'ai laissé les lignes liées à HWP de la peau initiale d'informations):
$ Sudo turbostat --Summary --show Busy%,Bzy_MHz,PkgTmp,PkgWatt,GFXWatt,IRQ --interval 6
...
CPUID(6): APERF, TURBO, DTS, PTM, HWP, HWPnotify, HWPwindow, HWPepp, No-HWPpkg, EPB
...
cpu0: MSR_PM_ENABLE: 0x00000001 (HWP)
cpu0: MSR_HWP_CAPABILITIES: 0x0109252e (high 46 guar 37 eff 9 low 1)
cpu0: MSR_HWP_REQUEST: 0x8000ff01 (min 1 max 255 des 0 epp 0x80 window 0x0 pkg 0x0)
cpu0: MSR_HWP_INTERRUPT: 0x00000001 (EN_Guaranteed_Perf_Change, Dis_Excursion_Min)
...
Busy% Bzy_MHz IRQ PkgTmp PkgWatt GFXWatt
0.03 956 262 31 1.82 0.00
0.03 800 122 31 1.85 0.00 <<< Notice the busy % and low CPU freq.
0.03 800 131 32 1.86 0.00
0.03 800 166 31 1.86 0.00
0.03 800 140 31 1.86 0.00
0.03 800 128 31 1.83 0.00
0.03 800 128 31 1.78 0.00
0.02 800 99 31 1.75 0.00
0.03 800 139 31 1.78 0.00
0.02 800 108 31 1.58 0.00
0.03 800 144 31 1.66 0.00
0.03 800 121 31 1.72 0.00
Maintenant, juste parce que dans votre cas, vous voyez des fréquences de processeur beaucoup plus élevées, cela ne signifie pas que votre consommation d'énergie est grande, le cas échéant. Si la fréquence est plus élevée, la CPU termine également son travail plus rapidement, et il se retourne plus tôt et plus longtemps. Exemple:
Busy% Bzy_MHz IRQ PkgTmp PkgWatt GFXWatt
0.02 800 100 31 1.90 0.00 <<< notice slightly different baseline than above (different kernel today)
0.02 800 93 31 1.90 0.00
0.03 800 130 31 1.90 0.00
0.05 800 208 31 1.90 0.00
0.04 800 169 31 1.90 0.00
0.05 1069 199 31 1.91 0.00
0.06 1904 285 31 1.94 0.00
0.00 4548 98 31 1.93 0.00
0.00 4600 89 32 1.93 0.00
0.01 4545 129 32 1.93 0.00 <<< Cost was about 0.03 watts.
0.00 4601 109 31 1.93 0.00
0.01 4559 140 31 1.94 0.00