web-dev-qa-db-fra.com

Comment activer Turbo-boost

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:

i7z

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)

5
Sebastien Lorber

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.

2
Colin Ian King