J'ai un Dell XPS 13 (édition pour développeurs) acheté il y a quelques années sous Ubuntu 12.04.
Je suis passé à Ubuntu 16.04 et depuis lors, j'ai remarqué que mon ordinateur était devenu beaucoup plus lent qu'avant pour certaines tâches lourdes.
J'ai également remarqué que mon ordinateur était devenu beaucoup moins bruyant lors de tâches lourdes et que mon I7 Turbo boost ne fonctionnait pas.
Envoi du travail à 4 procs, turbostat montre:
CPU Avg_MHz %Busy Bzy_MHz TSC_MHz
- 602 100.00 603 2595
0 611 100.00 611 2597
1 594 100.00 595 2594
2 610 100.00 612 2594
3 594 100.00 595 2594
Je ne suis pas un expert, mais on dirait que le turbo ne fonctionne pas correctement?
Comment suis-je censé le faire fonctionner? Tout ce que j'ai trouvé en ligne ne dit que d'utiliser un turbostat, mais n'aide pas vraiment à résoudre le problème.
Une idée?
J'utilise burnK7
pour générer la charge du processeur. Notez qu'au début, la colonne Bzy_MHz
se rapproche de 3 GHz, mais se stabilise ensuite vers 1 GHz, est-ce normal?
Mon processeur: Intel® Core ™ i7-3687U à 2,10 GHz × 4
Ubuntu: Ubuntu 16.04.1 LTS 64 bits
Sous les charges lourdes, l'i7z affiche:
Il dit que le mode turbo est activé, mais la fréquence est très basse, et je suis sûr que pour la même tâche exactement (compiler ici Scala code _) _ l'ordinateur était beaucoup bruyant/rapide pour la même tâche avant de mettre à jour Ubuntu. . Pourquoi ça se passe?
J'ai désactivé thermald
avec Sudo service thermald stop
Obtenez également le résultat suivant de cpupower
:
cpupower frequency-info
analyzing CPU 0:
driver: intel_pstate
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 0.97 ms.
hardware limits: 800 MHz - 3.30 GHz
available cpufreq governors: performance, powersave
current policy: frequency should be within 1.98 GHz and 1.98 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency is 1.10 GHz.
boost state support:
Supported: yes
Active: yes
25500 MHz max turbo 4 active cores
25500 MHz max turbo 3 active cores
25500 MHz max turbo 2 active cores
25500 MHz max turbo 1 active cores
J'ai remarqué que frequency should be within 1.98 GHz and 1.98 GHz.
est en fait une plage de cibles en mouvement et peut être affecté par thermald
start/stops.
J'obtiens maintenant un résultat étrange:
current policy: frequency should be within 3.30 GHz and 3.30 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency is 800 MHz.
Notez que les valeurs dans les fichiers comme /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
semblent changer constamment
Quelques sorties de turbostat supplémentaires.
Le premier est au début d'une phase de chargement. Au début, la fréquence est élevée.
$ Sudo turbostat --debug sleep 10
turbostat version 4.8 26-Sep, 2015 - Len Brown <[email protected]>
CPUID(0): GenuineIntel 13 CPUID levels; family:model:stepping 0x6:3a:9 (6:58:9)
CPUID(6): APERF, DTS, PTM, EPB
RAPL: 3855 sec. Joule Counter Range, at 17 Watts
cpu2: MSR_PLATFORM_INFO: 0x80815f0011a00
8 * 100 = 800 MHz max efficiency frequency
26 * 100 = 2600 MHz base frequency
cpu2: MSR_IA32_POWER_CTL: 0x0014005d (C1E auto-promotion: DISabled)
cpu2: MSR_TURBO_RATIO_LIMIT: 0x1f1f1f21
31 * 100 = 3100 MHz max turbo 4 active cores
31 * 100 = 3100 MHz max turbo 3 active cores
31 * 100 = 3100 MHz max turbo 2 active cores
33 * 100 = 3300 MHz max turbo 1 active cores
cpu2: MSR_CONFIG_TDP_NOMINAL: 0x00000015 (base_ratio=5)
cpu2: MSR_CONFIG_TDP_LEVEL_1: 0x00080070 (PKG_MIN_PWR_LVL1=0 PKG_MAX_PWR_LVL1=0 LVL1_RATIO=8 PKG_TDP_LVL1=112)
cpu2: MSR_CONFIG_TDP_LEVEL_2: 0x001a00c8 (PKG_MIN_PWR_LVL2=0 PKG_MAX_PWR_LVL2=0 LVL2_RATIO=10 PKG_TDP_LVL2=200)
cpu2: MSR_CONFIG_TDP_CONTROL: 0x00000000 ( lock=0)
cpu2: MSR_TURBO_ACTIVATION_RATIO: 0x00000014 (MAX_NON_TURBO_RATIO=20 lock=0)
cpu2: MSR_NHM_SNB_PKG_CST_CFG_CTL: 0x1e008405 (UNdemote-C3, UNdemote-C1, demote-C3, demote-C1, locked: pkg-cstate-limit=5: pc7s)
cpu0: MSR_IA32_ENERGY_PERF_BIAS: 0x00000006 (balanced)
cpu0: MSR_RAPL_POWER_UNIT: 0x000a1003 (0.125000 Watts, 0.000015 Joules, 0.000977 sec.)
cpu0: MSR_PKG_POWER_INFO: 0x00000088 (17 W TDP, RAPL 0 - 0 W, 0.000000 sec.)
cpu0: MSR_PKG_POWER_LIMIT: 0x800080fa00dc80c8 (locked)
cpu0: PKG Limit #1: ENabled (25.000000 Watts, 28.000000 sec, clamp DISabled)
cpu0: PKG Limit #2: ENabled (31.250000 Watts, 0.000977* sec, clamp DISabled)
cpu0: MSR_PP0_POLICY: 0
cpu0: MSR_PP0_POWER_LIMIT: 0x80000000 (locked)
cpu0: Cores Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
cpu0: MSR_PP1_POLICY: 0
cpu0: MSR_PP1_POWER_LIMIT: 0x80000000 (locked)
cpu0: GFX Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
cpu0: MSR_IA32_TEMPERATURE_TARGET: 0x00691200 (105 C)
cpu0: MSR_IA32_PACKAGE_THERM_STATUS: 0x880a0908 (95 C)
cpu0: MSR_IA32_THERM_STATUS: 0x880c0008 (93 C +/- 1)
cpu2: MSR_IA32_THERM_STATUS: 0x880a0008 (95 C +/- 1)
Core CPU Avg_MHz %Busy Bzy_MHz TSC_MHz SMI CPU%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
- - 1900 79.17 2406 2594 0 15.12 0.11 0.00 5.60 93 93 0.00 0.00 0.00 0.00 10.51 6.86 0.37
0 0 1893 78.90 2405 2594 1 16.29 0.16 0.00 4.65 89 93 0.00 0.00 0.00 0.00 10.51 6.86 0.37
0 1 2016 84.01 2406 2594 1 11.18
1 2 1982 82.61 2405 2594 1 10.78 0.06 0.00 6.55 93
1 3 1710 71.16 2408 2594 1 22.23
10.001067 sec
La seconde est après un certain temps sous charge: la fréquence diminue:
$ Sudo turbostat --debug sleep 10
turbostat version 4.8 26-Sep, 2015 - Len Brown <[email protected]>
CPUID(0): GenuineIntel 13 CPUID levels; family:model:stepping 0x6:3a:9 (6:58:9)
CPUID(6): APERF, DTS, PTM, EPB
RAPL: 3855 sec. Joule Counter Range, at 17 Watts
cpu2: MSR_PLATFORM_INFO: 0x80815f0011a00
8 * 100 = 800 MHz max efficiency frequency
26 * 100 = 2600 MHz base frequency
cpu2: MSR_IA32_POWER_CTL: 0x0014005d (C1E auto-promotion: DISabled)
cpu2: MSR_TURBO_RATIO_LIMIT: 0x1f1f1f21
31 * 100 = 3100 MHz max turbo 4 active cores
31 * 100 = 3100 MHz max turbo 3 active cores
31 * 100 = 3100 MHz max turbo 2 active cores
33 * 100 = 3300 MHz max turbo 1 active cores
cpu2: MSR_CONFIG_TDP_NOMINAL: 0x00000015 (base_ratio=5)
cpu2: MSR_CONFIG_TDP_LEVEL_1: 0x00080070 (PKG_MIN_PWR_LVL1=0 PKG_MAX_PWR_LVL1=0 LVL1_RATIO=8 PKG_TDP_LVL1=112)
cpu2: MSR_CONFIG_TDP_LEVEL_2: 0x001a00c8 (PKG_MIN_PWR_LVL2=0 PKG_MAX_PWR_LVL2=0 LVL2_RATIO=10 PKG_TDP_LVL2=200)
cpu2: MSR_CONFIG_TDP_CONTROL: 0x00000000 ( lock=0)
cpu2: MSR_TURBO_ACTIVATION_RATIO: 0x00000014 (MAX_NON_TURBO_RATIO=20 lock=0)
cpu2: MSR_NHM_SNB_PKG_CST_CFG_CTL: 0x1e008405 (UNdemote-C3, UNdemote-C1, demote-C3, demote-C1, locked: pkg-cstate-limit=5: pc7s)
cpu0: MSR_IA32_ENERGY_PERF_BIAS: 0x00000006 (balanced)
cpu0: MSR_RAPL_POWER_UNIT: 0x000a1003 (0.125000 Watts, 0.000015 Joules, 0.000977 sec.)
cpu0: MSR_PKG_POWER_INFO: 0x00000088 (17 W TDP, RAPL 0 - 0 W, 0.000000 sec.)
cpu0: MSR_PKG_POWER_LIMIT: 0x800080fa00dc80c8 (locked)
cpu0: PKG Limit #1: ENabled (25.000000 Watts, 28.000000 sec, clamp DISabled)
cpu0: PKG Limit #2: ENabled (31.250000 Watts, 0.000977* sec, clamp DISabled)
cpu0: MSR_PP0_POLICY: 0
cpu0: MSR_PP0_POWER_LIMIT: 0x80000000 (locked)
cpu0: Cores Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
cpu0: MSR_PP1_POLICY: 0
cpu0: MSR_PP1_POWER_LIMIT: 0x80000000 (locked)
cpu0: GFX Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
cpu0: MSR_IA32_TEMPERATURE_TARGET: 0x00691200 (105 C)
cpu0: MSR_IA32_PACKAGE_THERM_STATUS: 0x881b0908 (78 C)
cpu0: MSR_IA32_THERM_STATUS: 0x881e0008 (75 C +/- 1)
cpu2: MSR_IA32_THERM_STATUS: 0x881b0008 (78 C +/- 1)
Core CPU Avg_MHz %Busy Bzy_MHz TSC_MHz SMI CPU%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
- - 30 2.79 1091 2594 0 6.92 0.30 0.00 89.99 70 71 1.60 0.03 1.48 47.85 3.65 0.71 0.29
0 0 22 1.97 1133 2594 0 6.34 0.12 0.00 91.58 70 71 1.60 0.03 1.48 47.85 3.65 0.71 0.29
0 1 38 3.09 1224 2594 0 5.22
1 2 25 2.45 1016 2594 0 8.67 0.47 0.00 88.40 70
1 3 37 3.67 1006 2594 0 7.45
10.001501 sec
Au début de la phase de chargement, il semble que mes processeurs deviennent très chauds, proches de 105 ° C, ce qui correspond à la température de jonction des processeurs, puis un système les empêche de se cuire eux-mêmes et diminue considérablement la fréquence.
J'aimerais avoir un processeur moins chaud sur une charge importante et, lorsqu'il fait chaud, diminuer moins le processeur. Est-ce possible?
Problèmes liés que j'ai ouverts pour résoudre mon problème (peuvent contenir des informations supplémentaires non mentionnées ici qui pourraient être utiles)
Je me demande si le CPU est étranglé par le powerclamp. Si vous utilisez top, vous pouvez voir que les threads kidle_inject sont en cours d'exécution. Si tel est le cas, le processeur est actuellement soumis à une contrainte thermique. Vous verrez donc une utilisation apparente de 100% combinée à une fréquence de processeur faible.