Como faço para diagnosticar uma desaceleração repentina

Como faço para diagnosticar uma desaceleração repentina

Executar uma tarefa particularmente intensiva em computação no meu computador (Tecra W50) por mais de alguns segundos faz com que ele fique muito lento. O desempenho não retorna ao normal após a conclusão da tarefa.

  • A execução time python3 -c "for i in range(10000000): pass"de impressões 0,2 segundos antes de o computador começar a ficar lento, mas 2,1 segundos depois.

  • A reinicialização corrige o problema, até a próxima vez que eu executar uma tarefa intensiva.

  • dmesgnão mostra nada nas últimas 2 horas

  • htopmostra baixo uso de recursos, tanto em termos de CPU quanto de RAM.

  • Não fiz um dist-upgrade recentemente, mas instalei um novo kernel (3.16.0-38-generic)

Como devo abordar esse problema?

EDITAR:

Com base em um comentário perspicaz de Harald, larguei /proc/cpuinfoantes e depois de executar uma tarefa com uso intensivo de computação. A diferença é bastante reveladora:

@@ -5,7 +5,7 @@
 model name : Intel(R) Core(TM) i7-4810MQ CPU @ 2.80GHz
 stepping   : 3
 microcode  : 0x1c
-cpu MHz        : 2800.218
+cpu MHz        : 609.218
 cache size : 6144 KB
 physical id    : 0
 siblings   : 8

(isso é repetido 8 vezes com números semelhantes).

Mais alguns dados (obtidos enquanto as coisas ainda estavam funcionando rápido):

/ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
intel_pstate
/ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
powersave
/ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
3800000
/ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
800000
/ $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 
performance powersave

E chamar sensores enquanto a tarefa está em execução (antes da desaceleração) produz o seguinte:

$ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1:        +99.0°C  (crit = +102.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +99.0°C  (high = +84.0°C, crit = +100.0°C)
Core 0:         +97.0°C  (high = +84.0°C, crit = +100.0°C)
Core 1:         +99.0°C  (high = +84.0°C, crit = +100.0°C)
Core 2:         +93.0°C  (high = +84.0°C, crit = +100.0°C)
Core 3:         +86.0°C  (high = +84.0°C, crit = +100.0°C)

Segundos depois, caiu para 60 e tudo ficou mais lento.

Fiz alguns tempos mais precisos: o pequeno script python acima com zero alterações extras de

real    0m2.869s
user    0m2.868s
sys 0m0.004s

antes de executar qualquer coisa intensiva para

real    0m19.208s
user    0m19.217s
sys 0m0.004s

depois de alguns segundos de trabalho pesado.

Aqui está o que cpuinfo | grep MHzdiz enquanto o teste rápido está em execução:

cpu MHz     : 3799.359
cpu MHz     : 3800.015
cpu MHz     : 3156.453
cpu MHz     : 2791.250
cpu MHz     : 3623.484
cpu MHz     : 3120.687
cpu MHz     : 2887.828
cpu MHz     : 3129.656

e enquanto o teste lento está em execução:

cpu MHz     : 608.015
cpu MHz     : 599.921
cpu MHz     : 610.531
cpu MHz     : 590.406
cpu MHz     : 642.906
cpu MHz     : 576.515
cpu MHz     : 606.484
cpu MHz     : 593.468

Os horários não parecem mudar muito depois de echo "50" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct:

real    0m18.938s
user    0m18.909s
sys 0m0.036s

nem eles mudam depois echo 100:

real    0m20.201s
user    0m20.195s
sys 0m0.016s

O problema não aparece em 3.13.0-37-generic. A saída de sensorsainda é a acima, mas o desempenho do pequeno teste python permanece inalterado antes e depois do teste. A saída de cpuinfoé a seguinte:

cpu MHz     : 800.000
cpu MHz     : 2801.000
cpu MHz     : 800.000
cpu MHz     : 800.000
cpu MHz     : 800.000
cpu MHz     : 800.000
cpu MHz     : 800.000
cpu MHz     : 800.000

o que faz sentido, já que o teste é de thread único. Nesse kernel, algumas coisas também são diferentes:

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver
acpi-cpufreq
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
ondemand
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
2801000
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
800000
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 
conservative ondemand userspace powersave performance 

Também capturei a saída do turbostato um pouco antes, durante e depois de uma tarefa de computação intensiva no intel_pstatedriver:

Núcleo CPU Média_MHz% Ocupado Bzy_MHz TSC_MHz CPU SMI%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
   - - 9 0,57 1662 2793 0 0,85 0,01 0,05 98,53 45 48 95,66 0,00 0,00 0,00 2,35 0,06 0,00
   0 0 19 1,18 1643 2793 29 0,32 0,00 0,00 98,50 45 48 95,66 0,00 0,00 0,00 2,35 0,06 0,00
   0 1 2 0,15 1643 2793 29 1,35
   1 2 7 0,45 1476 2793 29 0,85 0,05 0,18 98,47 43
   1 3 10 0,59 1654 2793 29 0,71
   2 4 8 0,49 1644 2794 29 0,23 0,00 0,00 99,28 43
   2 5 3 0,18 1624 2794 29 0,54
   3 6 5 0,34 1475 2794 29 1,80 0,00 0,00 97,85 43
   3 7 22 1,19 1824 2794 29 0,95
Núcleo CPU Média_MHz% Ocupado Bzy_MHz TSC_MHz CPU SMI%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
   - - 2142 60,38 3547 2794 0 4,77 0,07 0,15 34,64 89 89 30,27 0,00 0,00 0,00 36,95 30,53 0,00
   0 0 2138 60,55 3530 2794 32 3,22 0,02 0,17 36,03 80 89 30,27 0,00 0,00 0,00 36,95 30,53 0,00
   0 1 2153 60,36 3568 2794 32 3,41
   1 2 2144 60,46 3547 2794 32 6,65 0,12 0,04 32,73 89
   1 3 2127 60,10 3539 2794 32 7,01
   2 4 2113 59,67 3542 2794 32 3,95 0,07 0,02 36,29 78
   2 5 2160 60,52 3569 2794 32 3,10
   3 6 2133 59,95 3558 2794 32 6,13 0,07 0,35 33,49 72
   3 7 2163 61,41 3522 2794 32 4,68
Núcleo CPU Média_MHz% Ocupado Bzy_MHz TSC_MHz CPU SMI%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
   - - 3548 98,89 3588 2794 0 1,11 0,00 0,00 0,00 91 91 0,00 0,00 0,00 0,00 56,62 47,73 0,00
   0 0 3542 98,73 3588 2794 32 1,27 0,00 0,00 0,00 84 91 0,00 0,00 0,00 0,00 56,62 47,73 0,00
   0 1 3540 98,67 3588 2794 32 1,33
   1 2 3553 99,02 3588 2794 32 0,98 0,00 0,00 0,00 91
   1 3 3582 99,84 3588 2794 32 0,16
   2 4 3518 98,06 3588 2794 32 1,94 0,00 0,00 0,00 84
   2 5 3563 99,31 3588 2794 32 0,69
   3 6 3586 99,95 3588 2794 32 0,05 0,00 0,00 0,00 78
   3 7 3499 97,53 3588 2794 32 2,47
Núcleo CPU Média_MHz% Ocupado Bzy_MHz TSC_MHz CPU SMI%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
   - - 3565 99,30 3590 2794 0 0,70 0,00 0,00 0,00 95 95 0,00 0,00 0,00 0,00 56,53 47,58 0,00
   0 0 3570 99,46 3590 2794 27 0,54 0,00 0,00 0,00 89 95 0,00 0,00 0,00 0,00 56,53 47,58 0,00
   0 1 3574 99,57 3590 2794 27 0,43
   1 2 3589 99,98 3590 2794 27 0,02 0,00 0,00 0,00 95
   1 3 3563 99,26 3590 2794 27 0,74
   2 4 3519 98,01 3590 2794 27 1,99 0,00 0,00 0,00 87
   2 5 3589 99,98 3590 2794 27 0,02
   3 6 3558 99,11 3590 2794 27 0,89 0,00 0,00 0,00 80
   3 7 3556 99,05 3590 2794 27 0,95
Núcleo CPU Média_MHz% Ocupado Bzy_MHz TSC_MHz CPU SMI%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
   - - 2861 98,83 2895 2794 0 1,17 0,00 0,00 0,00 93 93 0,00 0,00 0,00 0,00 46,17 38,07 0,00
   0 0 2854 98,57 2896 2794 43 1,43 0,00 0,00 0,00 89 93 0,00 0,00 0,00 0,00 46,17 38,07 0,00
   0 1 2854 98,70 2891 2794 43 1,30
   1 2 2853 98,57 2895 2794 43 1,43 0,00 0,00 0,00 93
   1 3 2892 99,79 2898 2794 43 0,21
   2 4 2865 98,92 2896 2794 43 1,08 0,00 0,00 0,00 87
   2 5 2821 97,81 2884 2794 43 2,19
   3 6 2874 99,17 2898 2794 43 0,83 0,00 0,00 0,00 83
   3 7 2873 99,15 2898 2794 43 0,85
Núcleo CPU Média_MHz% Ocupado Bzy_MHz TSC_MHz CPU SMI%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
   - - 2834 98,72 2871 2794 0 1,27 0,00 0,00 0,00 97 97 0,00 0,00 0,00 0,00 46,45 38,38 0,00
   0 0 2823 98,37 2870 2794 50 1,63 0,00 0,00 0,00 95 97 0,00 0,00 0,00 0,00 46,45 38,38 0,00
   0 1 2842 99,00 2871 2794 50 1,00
   1 2 2839 98,80 2873 2794 50 1,20 0,00 0,00 0,00 97
   1 3 2868 99,72 2876 2794 50 0,28
   2 4 2817 98,17 2869 2794 50 1,81 0,01 0,01 0,00 93
   2 5 2813 98,16 2866 2794 50 1,82
   3 6 2832 98,61 2872 2794 50 1,39 0,00 0,00 0,00 88
   3 7 2841 98,95 2871 2794 50 1,05
Núcleo CPU Média_MHz% Ocupado Bzy_MHz TSC_MHz CPU SMI%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
   - - 2172 98,67 2202 2793 0 1,33 0,00 0,00 0,00 95 95 0,00 0,00 0,00 0,00 34,06 26,79 0,00
   0 0 2171 97,75 2221 2793 60 2,25 0,00 0,00 0,00 93 95 0,00 0,00 0,00 0,00 34,06 26,79 0,00
   0 1 2156 98,42 2190 2793 60 1,57
   1 2 2175 98,74 2202 2793 60 1,26 0,00 0,00 0,00 95
   1 3 2180 99,24 2197 2793 60 0,76
   2 4 2173 98,73 2201 2793 60 1,27 0,00 0,00 0,00 93
   2 5 2161 98,52 2194 2794 60 1,48
   3 6 2181 98,88 2206 2794 60 1,12 0,00 0,00 0,00 87
   3 7 2180 99,08 2200 2794 60 0,92
Núcleo CPU Média_MHz% Ocupado Bzy_MHz TSC_MHz CPU SMI%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
   - - 2415 98,38 2455 2793 0 1,61 0,00 0,00 0,01 70 70 0,00 0,00 0,00 0,00 38,87 31,59 0,00
   0 0 2377 97,24 2444 2793 54 2,73 0,00 0,00 0,03 68 70 0,00 0,00 0,00 0,00 38,87 31,59 0,00
   0 1 2392 97,66 2449 2793 54 2,31
   1 2 2449 99,32 2466 2793 54 0,68 0,00 0,00 0,00 70
   1 3 2418 98,61 2452 2793 54 1,39
   2 4 2437 99,00 2462 2793 54 1,00 0,00 0,00 0,00 66
   2 5 2393 97,79 2447 2793 54 2,21
   3 6 2426 98,58 2461 2793 54 1,42 0,00 0,00 0,00 68
   3 7 2430 98,82 2459 2793 54 1,18
Núcleo CPU Média_MHz% Ocupado Bzy_MHz TSC_MHz CPU SMI%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
   - - 1626 98,64 1648 2794 0 1,36 0,00 0,00 0,00 66 66 0,00 0,00 0,00 0,00 24,97 18,61 0,00
   0 0 1628 98,45 1654 2794 41 1,55 0,00 0,00 0,00 63 66 0,00 0,00 0,00 0,00 24,97 18,61 0,00
   0 1 1648 99,49 1656 2794 41 0,51
   1 2 1630 98,82 1650 2794 41 1,18 0,00 0,00 0,00 66
   1 3 1607 98,05 1639 2794 41 1,95
   2 4 1637 98,85 1656 2794 41 1,15 0,00 0,00 0,00 63
   2 5 1638 99,18 1652 2794 41 0,82
   3 6 1645 99,25 1657 2794 41 0,75 0,00 0,00 0,00 64
   3 7 1571 97,01 1620 2794 41 2,99
Núcleo CPU Média_MHz% Ocupado Bzy_MHz TSC_MHz CPU SMI%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
   - - 594 99,29 598 2794 0 0,71 0,00 0,00 0,00 63 63 0,00 0,00 0,00 0,00 7,26 2,11 0,00
   0 0 600 98,85 607 2794 9 1,15 0,00 0,00 0,00 61 63 0,00 0,00 0,00 0,00 7,26 2,11 0,00
   0 1 585 99,28 590 2794 9 0,72
   1 2 604 99,58 607 2794 9 0,42 0,00 0,00 0,00 63
   1 3 582 98,72 590 2794 9 1,28
   2 4 605 99,71 607 2794 9 0,29 0,00 0,00 0,00 60
   2 5 589 99,86 590 2794 9 0,14
   3 6 598 98,49 607 2794 9 1,51 0,00 0,00 0,00 59
   3 7 589 99,87 589 2794 9 0,13
Núcleo CPU Média_MHz% Ocupado Bzy_MHz TSC_MHz CPU SMI%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
   - - 368 61,51 598 2794 0 3,20 0,26 1,62 33,41 58 58 25,93 0,00 0,00 0,00 5,52 1,30 0,00
   0 0 369 60,85 607 2794 9 0,78 0,28 2,22 35,86 58 58 25,93 0,00 0,00 0,00 5,52 1,30 0,00
   0 1 349 59,17 590 2794 9 2,46
   1 2 365 60,08 607 2794 9 3,01 0,60 0,16 36,15 58
   1 3 359 60,87 590 2794 9 2,21
   2 4 376 61,97 607 2794 9 2,48 0,09 4,07 31,40 56
   2 5 351 59,60 590 2794 9 4,84
   3 6 376 61,86 607 2794 9 7,83 0,07 0,02 30,23 56
   3 7 398 67,65 589 2794 9 2,03
Núcleo CPU Média_MHz% Ocupado Bzy_MHz TSC_MHz CPU SMI%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
   - - 7 1,11 603 2794 0 1,28 0,02 0,02 97,57 54 56 91,75 0,00 0,00 0,00 2,43 0,03 0,00
   0 0 17 2,77 609 2794 9 0,49 0,05 0,03 96,65 54 56 91,75 0,00 0,00 0,00 2,43 0,03 0,00
   0 1 1 0,20 640 2794 9 3,07
   1 2 6 0,95 615 2794 9 3,56 0,02 0,03 95,45 54
   1 3 20 3,39 585 2794 9 1,11
   2 4 1 0,22 659 2794 9 0,31 0,00 0,00 99,47 53
   2 5 1 0,21 634 2794 9 0,32
   3 6 2 0,29 628 2794 9 1,01 0,00 0,00 98,70 54
   3 7 5 0,89 604 2794 9 0,41
Núcleo CPU Média_MHz% Ocupado Bzy_MHz TSC_MHz CPU SMI%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
   - - 8 1,38 602 2794 0 1,68 0,02 0,01 96,92 53 55 89,75 0,00 0,00 0,00 2,45 0,03 0,00
   0 0 9 1,49 613 2794 9 0,55 0,05 0,00 97,90 53 55 89,75 0,00 0,00 0,00 2,45 0,03 0,00
   0 1 1 0,16 650 2794 9 1,89
   1 2 13 2,14 609 2794 9 3,66 0,02 0,00 94,19 52
   1 3 20 3,42 584 2794 9 2,37
   2 4 8 1,30 612 2794 9 0,52 0,00 0,03 98,14 51
   2 5 2 0,25 627 2794 9 1,58
   3 6 2 0,35 635 2794 9 2,21 0,01 0,00 97,44 52
   3 7 11 1,92 597 2794 9 0,64
Núcleo CPU Média_MHz% Ocupado Bzy_MHz TSC_MHz CPU SMI%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
   - - 8 1,26 601 2794 0 1,45 0,02 0,01 97,26 52 54 90,61 0,00 0,00 0,00 2,40 0,03 0,00
   0 0 6 0,93 622 2794 9 0,37 0,01 0,00 98,69 52 54 90,61 0,00 0,00 0,00 2,40 0,03 0,00
   0 1 1 0,15 653 2794 9 1,16
   1 2 8 1,23 611 2794 9 4,54 0,00 0,01 94,21 51
   1 3 26 4,41 584 2794 9 1,37
   2 4 11 1,76 611 2794 9 0,48 0,03 0,05 97,68 50
   2 5 2 0,30 621 2794 9 1,94
   3 6 2 0,30 642 2794 9 1,23 0,02 0,00 98,45 50
   3 7 6 1,04 602 2794 9 0,50

Algumas informações extras (após executar uma tarefa intensiva):

10:00:26 /sys/class/térmica
$ sudo grep -r. *
resfriamento_device0/tipo:Processador
dispositivo_de_resfriamento0/potência/controle:auto
resfriamento_device0/power/async: desativado
resfriamento_device0/power/runtime_enabled:desativado
resfriamento_device0/power/runtime_active_kids:0
dispositivo_de_resfriamento0/power/runtime_active_time:0
grep:cooling_device0/power/autosuspend_delay_ms: erro de entrada/saída
resfriamento_device0/power/runtime_status:não suportado
resfriamento_device0/power/runtime_usage:0
resfriamento_device0/power/runtime_suspended_time:0
dispositivo_de_resfriamento0/cur_state:0
dispositivo_de_resfriamento0/max_state:10
dispositivo_de_resfriamento1/tipo:Processador
dispositivo_de_resfriamento1/potência/controle:auto
resfriamento_device1/power/async: desativado
resfriamento_device1/power/runtime_enabled:desativado
resfriamento_device1/power/runtime_active_kids:0
dispositivo_de_resfriamento1/power/runtime_active_time:0
grep:cooling_device1/power/autosuspend_delay_ms: erro de entrada/saída
resfriamento_device1/power/runtime_status:não suportado
dispositivo_de_resfriamento1/power/runtime_usage:0
dispositivo_de_resfriamento1/power/runtime_suspended_time:0
dispositivo_de_resfriamento1/cur_state:0
dispositivo_de_resfriamento1/max_state:10
resfriamento_device2/tipo:Processador
dispositivo_de_resfriamento2/potência/controle:auto
resfriamento_device2/power/async: desativado
resfriamento_device2/power/runtime_enabled:desativado
resfriamento_device2/power/runtime_active_kids:0
dispositivo_de_resfriamento2/power/runtime_active_time:0
grep:cooling_device2/power/autosuspend_delay_ms: erro de entrada/saída
resfriamento_device2/power/runtime_status:não suportado
dispositivo_de_resfriamento2/power/runtime_usage:0
dispositivo_de_resfriamento2/power/runtime_suspended_time:0
dispositivo_de_resfriamento2/cur_state:0
dispositivo_de_resfriamento2/max_state:10
dispositivo_de_resfriamento3/tipo:Processador
dispositivo_de_resfriamento3/potência/controle:auto
resfriamento_device3/power/async: desativado
resfriamento_device3/power/runtime_enabled:desativado
resfriamento_device3/power/runtime_active_kids:0
dispositivo_de_resfriamento3/power/runtime_active_time:0
grep:cooling_device3/power/autosuspend_delay_ms: erro de entrada/saída
resfriamento_device3/power/runtime_status:não suportado
dispositivo_de_resfriamento3/power/runtime_usage:0
dispositivo_de_resfriamento3/power/runtime_suspended_time:0
dispositivo_de_resfriamento3/cur_state:0
dispositivo_de_resfriamento3/max_state:10
dispositivo_de_resfriamento4/tipo:Processador
dispositivo_de_resfriamento4/potência/controle:auto
resfriamento_device4/power/async: desativado
resfriamento_device4/power/runtime_enabled:desativado
resfriamento_device4/power/runtime_active_kids:0
dispositivo_de_resfriamento4/power/runtime_active_time:0
grep:cooling_device4/power/autosuspend_delay_ms: Erro de entrada/saída
resfriamento_device4/power/runtime_status:não suportado
dispositivo_de_resfriamento4/power/runtime_usage:0
dispositivo_de_resfriamento4/power/runtime_suspended_time:0
dispositivo_de_resfriamento4/cur_state:0
dispositivo_de_resfriamento4/max_state:10
dispositivo_de_resfriamento5/tipo:Processador
dispositivo_de_resfriamento5/potência/controle:auto
resfriamento_device5/power/async: desativado
resfriamento_device5/power/runtime_enabled:desativado
resfriamento_device5/power/runtime_active_kids:0
dispositivo_de_resfriamento5/power/runtime_active_time:0
grep:cooling_device5/power/autosuspend_delay_ms: erro de entrada/saída
resfriamento_device5/power/runtime_status:não suportado
dispositivo_de_resfriamento5/power/runtime_usage:0
dispositivo_de_resfriamento5/power/runtime_suspended_time:0
dispositivo_de_resfriamento5/cur_state:0
dispositivo_de_resfriamento5/max_state:10
resfriamento_device6/tipo:Processador
dispositivo_de_resfriamento6/potência/controle:auto
resfriamento_device6/power/async: desativado
resfriamento_device6/power/runtime_enabled:desativado
resfriamento_device6/power/runtime_active_kids:0
dispositivo_de_resfriamento6/power/runtime_active_time:0
grep:cooling_device6/power/autosuspend_delay_ms: erro de entrada/saída
resfriamento_device6/power/runtime_status:não suportado
resfriamento_device6/power/runtime_usage:0
resfriamento_device6/power/runtime_suspended_time:0
dispositivo_de_resfriamento6/cur_state:0
dispositivo_de_resfriamento6/max_state:10
resfriamento_device7/tipo:Processador
dispositivo_de_resfriamento7/potência/controle:auto
resfriamento_device7/power/async: desativado
resfriamento_device7/power/runtime_enabled:desativado
resfriamento_device7/power/runtime_active_kids:0
dispositivo_de_resfriamento7/power/runtime_active_time:0
grep:cooling_device7/power/autosuspend_delay_ms: erro de entrada/saída
resfriamento_device7/power/runtime_status:não suportado
resfriamento_device7/power/runtime_usage:0
resfriamento_device7/power/runtime_suspended_time:0
dispositivo_de_resfriamento7/cur_state:0
dispositivo_de_resfriamento7/max_state:10
dispositivo_de_resfriamento8/tipo:LCD
dispositivo_de_resfriamento8/potência/controle:auto
resfriamento_device8/power/async: desativado
resfriamento_device8/power/runtime_enabled:desativado
resfriamento_device8/power/runtime_active_kids:0
dispositivo_de_resfriamento8/power/runtime_active_time:0
grep:cooling_device8/power/autosuspend_delay_ms: erro de entrada/saída
resfriamento_device8/power/runtime_status:não suportado
resfriamento_device8/power/runtime_usage:0
resfriamento_device8/power/runtime_suspended_time:0
dispositivo_de_resfriamento8/cur_state:0
dispositivo_de_resfriamento8/max_state:100
resfriamento_device9/tipo:intel_powerclamp
dispositivo_de_resfriamento9/potência/controle:auto
resfriamento_device9/power/async: desativado
resfriamento_device9/power/runtime_enabled:desativado
resfriamento_device9/power/runtime_active_kids:0
dispositivo_de_resfriamento9/power/runtime_active_time:0
grep:cooling_device9/power/autosuspend_delay_ms: Erro de entrada/saída
resfriamento_device9/power/runtime_status:não suportado
resfriamento_device9/power/runtime_usage:0
resfriamento_device9/power/runtime_suspended_time:0
dispositivo_de_resfriamento9/cur_state:-1
dispositivo_de_resfriamento9/max_state:50
zona_térmica0/modo: ativado
zona_térmica0/temp:83000
zona_térmica0/tipo:acpitz
zona_térmica0/potência/controle:auto
Thermal_zone0/power/async: desativado
Thermal_zone0/power/runtime_enabled:desabilitado
zona_térmica0/power/runtime_active_kids:0
zona_térmica0/power/runtime_active_time:0
grep: Thermal_zone0/power/autosuspend_delay_ms: erro de entrada/saída
Thermal_zone0/power/runtime_status:não suportado
zona_térmica0/power/runtime_usage:0
zona_térmica0/power/runtime_suspended_time:0
grep: Thermal_zone0/emul_temp: Permissão negada
zona_térmica0/ponto_de_viagem_0_temp:102000
zona_térmica0/ponto_de_viagem_0_type:crítico
zona_térmica0/política:step_wise
zona_térmica0/passivo:0
zona_térmica1/temp:51000
zona_térmica1/tipo:x86_pkg_temp
zona_térmica1/potência/controle:auto
Thermal_zone1/power/async: desativado
Thermal_zone1/power/runtime_enabled:desabilitado
zona_térmica1/power/runtime_active_kids:0
zona_térmica1/power/runtime_active_time:0
grep: Thermal_zone1/power/autosuspend_delay_ms: erro de entrada/saída
Thermal_zone1/power/runtime_status:não suportado
zona_térmica1/power/runtime_usage:0
zona_térmica1/power/runtime_suspended_time:0
grep: Thermal_zone1/emul_temp: Permissão negada
zona_térmica1/ponto_de_viagem_0_temp:0
zona_térmica1/ponto_de_viagem_0_type:passivo
zona_térmica1/ponto_de_viagem_1_temp:0
zona_térmica1/ponto_de_viagem_1_tipo:passivo
zona_térmica1/política:step_wise

E a saída deturbostat -d sleep 10

$ sudo ~/dls/turbostat -d dormir 10
turbostato versão 4.7 17 de junho de 2015 - Len Brown
CPUID(0): Níveis de CPUID GenuínoIntel 13; família:modelo:pisando 0x6:3c:3 (6:60:3)
CPUID(6): APERF, DTS, PTM, EPB
RAPL: 5578 seg. Alcance do contador Joule, a 47 Watts
CPU5: MSR_NHM_PLATFORM_INFO: 0x80838f3011c00
8*100 = frequência de eficiência máxima de 800 MHz
28 * 100 = frequência base de 2.800 MHz
cpu5: MSR_IA32_POWER_CTL: 0x0004005d (promoção automática C1E: DESativada)
CPU5: MSR_TURBO_RATIO_LIMIT: 0x24242526
36 * 100 = 3600 MHz máximo turbo 4 núcleos ativos
36 * 100 = 3600 MHz máximo turbo 3 núcleos ativos
37 * 100 = 3700 MHz máximo turbo 2 núcleos ativos
38 * 100 = 3800 MHz máximo turbo 1 núcleos ativos
cpu5: MSR_CONFIG_TDP_NOMINAL: 0x0000001c (proporção_base = 12)
CPU5: MSR_CONFIG_TDP_LEVEL_1: 0x00000000 ()
CPU5: MSR_CONFIG_TDP_LEVEL_2: 0x00000000 ()
cpu5: MSR_CONFIG_TDP_CONTROL: 0x80000000 (bloqueio = 1)
cpu5: MSR_TURBO_ACTIVATION_RATIO: 0x00000000 (MAX_NON_TURBO_RATIO=0 bloqueio=0)
cpu5: MSR_NHM_SNB_PKG_CST_CFG_CTL: 0x1e008405 (UNdemote-C3, UNdemote-C1, rebaixamento-C3, rebaixamento-C1, bloqueado: pkg-cstate-limit=5: pc7s)
cpu0: MSR_IA32_ENERGY_PERF_BIAS: 0x00000006 (balanceado)
cpu0: MSR_CORE_PERF_LIMIT_REASONS, 0x38210000 (Ativo:) (Registrado: Transições, MultiCoreTurbo, PkgPwrL2, Auto-HWP, PROCHOT,)
cpu0: MSR_GFX_PERF_LIMIT_REASONS, 0x00000000 (Ativo:) (Registrado:)
cpu0: MSR_RING_PERF_LIMIT_REASONS, 0x0c000000 (Ativo:) (Registrado: PkgPwrL1, PkgPwrL2,)
cpu0: MSR_RAPL_POWER_UNIT: 0x000a0e03 (0,125000 Watts, 0,000061 Joules, 0,000977 seg.)
cpu0: MSR_PKG_POWER_INFO: 0x00000178 (47 W TDP, RAPL 0 - 0 W, 0,000000 seg.)
cpu0: MSR_PKG_POWER_LIMIT: 0x4281d600dc8178 (desbloqueado)
cpu0: Limite PKG nº 1: Habilitado (47,000000 Watts, 28,000000 seg, grampo DESabilitado)
cpu0: Limite PKG nº 2: Habilitado (58,750000 Watts, 0,002441* seg, grampo DESabilitado)
cpu0: MSR_PP0_POLICY: 0
cpu0: MSR_PP0_POWER_LIMIT: 0x00000000 (desbloqueado)
cpu0: Limite de núcleos: DESativado (0,000000 Watts, 0,000977 seg., clamp DESativado)
cpu0: MSR_PP1_POLICY: 0
cpu0: MSR_PP1_POWER_LIMIT: 0x00000000 (desbloqueado)
cpu0: Limite GFX: DESativado (0,000000 Watts, 0,000977 seg, grampo DESativado)
cpu0: MSR_IA32_TEMPERATURE_TARGET: 0x00641000 (100 C)
cpu0: MSR_IA32_PACKAGE_THERM_STATUS: 0x88310808 (51 C)
cpu0: MSR_IA32_THERM_STATUS: 0x88310808 (51 C +/- 1)
cpu2: MSR_IA32_THERM_STATUS: 0x88340808 (48 C +/- 1)
cpu4: MSR_IA32_THERM_STATUS: 0x88340808 (48 C +/- 1)
cpu6: MSR_IA32_THERM_STATUS: 0x88330808 (49 C +/- 1)
    Núcleo CPU Média_MHz% Ocupado Bzy_MHz TSC_MHz CPU SMI%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt
       - - 4 0,72 612 2794 0 1,10 0,02 0,01 98,16 51 53 93,95 0,00 0,00 0,00 2,26 0,02 0,00
       0 0 8 1,23 617 2794 18 1,48 0,03 0,01 97,26 51 53 93,95 0,00 0,00 0,00 2,26 0,02 0,00
       0 1 3 0,55 602 2794 18 2,16
       1 2 12 1,93 609 2794 18 0,76 0,05 0,02 97,24 49
       1 3 5 0,84 598 2794 18 1,85
       2 4 2 0,32 637 2794 18 0,87 0,00 0,00 98,81 49
       2 5 2 0,26 616 2794 18 0,92
       3 6 3 0,42 628 2794 18 0,25 0,00 0,00 99,32 50
       3 7 1 0,19 630 2794 18 0,49
10,003772 segundos

Saída sudo rdmsr -a 0x19aantes de executar a tarefa intensiva:

$ sudo rdmsr -a 0x19a
0
0
0
0
0
0
0
0

Depois:

$ sudo rdmsr -a 0x19a
1c
1c
1c
1c
1c
1c
1c
1c

Não há nada kern.logsobre temperaturas

Responder1

Gostaria de tentar ajudá-lo com seu problema.
Gostaria que você tentasse me ajudar a entender melhor seu problema específico.

A condição em que um processador Intel relativamente recente trava em torno de 600 MHz, onde o pstate mínimo para o pacote é 800 MHz, foi observada muitas vezes. No entanto, só estou ciente da condição que ocorre após a retomada da suspensão para o aríete. Além disso, a condição (de cerca de 75% do que foi solicitado, não o bloqueio nessa frequência) foi (correta ou incorretamente) atribuída a um problema de BIOS, especialmente no Dell E6320.

EDIT: Teoria: Com a versão atual do driver intel_pstate, qualquer envolvimento de aceleração térmica via modulação de clock resultará no bloqueio da frequência relatada da CPU em alguma frequência muito baixa.
O driver acpi-cpufreq não sofre desse problema. Observe que um conjunto de patches proposto para o driver intel_pstate também não sofre desse problema.
Além dos dados desejados do turbostato, um registro MSR adicional ajudará a confirmar ou negar esta teoria.

Você estaria disposto a fazer esses testes e editar os resultados em sua pergunta:

. Depois de desacelerar. Faça seu time python3 -c "for i in range(10000000): pass"teste. Faça cerca de 10 ou 100 vezes mais tempo e, enquanto estiver em execução, faça grep MHz /proc/cpuinfo. Todas as CPUs estão presas em torno de 600 MHz? (na sua postagem original não está claro, para mim, se os 600 MHz foram apenas porque estavam ociosos ou se estão presos lá.)

. Após uma nova inicialização e antes de qualquer tarefa intensiva, seu pequeno teste é executado mais rápido que 0,2 segundos (talvez use 10 ou 100 vezes mais para extrair dígitos mais significativos)? E quais frequências de CPU você obtém? IE eram os 2.800 MHz que você já listou, cerca de 0,75 X 3.800 MHz. ou a CPU realmente irá para 3800 MHz (dependendo da atividade em outras CPUs e se o turbo estiver ativado).

. Para evitar o bloqueio de frequência, um patch foi adicionado ao driver intel_pstate a partir da série 4.2RC (release candidate). Se o resultado do teste 1 acima for que a frequência está bloqueada, você estaria disposto a tentar o kernel4.3RC4. Pode não ser desbloqueado no seu caso, porque o problema (diferente do problema do BIOS) estava relacionado à suspensão.

. Se o resultado do teste 1 acima for que a frequência está bloqueada, isso a desbloqueia?:

$ echo "50" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct
50

aguarde 5 segundos para garantir que cada CPU esteja alternada. Pode levar até 4 segundos para que uma CPU ociosa execute uma passagem pelo driver intel_pstate.

$ echo "100" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct
100

E se for desbloqueado, ele permanece cerca de 0,75 vezes o que deveria ser?

Verifique também as configurações do BIOS. No entanto, não sei o que você estaria procurando.

Por favor, revise também seu /var/log/kern.logarquivo para quaisquer mensagens relacionadas a questões térmicas.

Será útil fornecer o resultado antes e depois da desaceleração de:

sudo turbostat -d sleep 10

ou, para versões mais antigas do turbostato, ainda pode ser:

sudo turbostat -v sleep 10

Também é necessário outro registro MSR (precisa sudo modprobe msrprimeiro de uma vez por inicialização):

sudo rdmsr -a 0x19a

Também é necessária a saída de:

cd /sys/class/thermal
grep -r . *

Pode ser necessário instalar o linux-toolspacote para obter o turbostat e, se essa versão do turbostat não for nova o suficiente, talvez seja necessário fazer um sudo modprobe msrprimeiro.

Pelos seus testes, o problema raiz parece ser que o processador está superaquecendo e diminuindo a escala sozinho para se proteger. No entanto, parece travar nesta condição e não se recuperar. Eu gostaria muito de entender o porquê, e os testes do turbostato mencionados acima fornecerão algumas dicas. Em particular (eu acho) estamos interessados ​​em compreender e decodificar a MSR_IA32_PACKAGE_THERM_STATUSlinha para as diferentes condições e diferentes condutores. Também estamos interessados ​​em compreender e decodificar o MSR IA32_CLOCK_MODULATION (0x19A).

A partir dos seus testes, parece que o problema está presente apenas com o driver de escalonamento de frequência intel_pstate e não com o driver de escalonamento de frequência acpi cpufreq. Eu pensei que o driver intel_pstate já era usado por padrão há algum tempo.

Se você quiser apenas continuar, você pode desabilitar o uso do driver de escalonamento de frequência intel_pstate. Edite o arquivo /etc/default/grub, talvez fazendo uma cópia primeiro, e adicione intel_pstate=disableà GRUB_CMDLINE_LINUX_DEFAULTlinha. Aqui está um exemplo de um dos meus computadores:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 intel_pstate=disable net.ifnames=1 biosdevname=0 crashkernel=384M-:128M"

Você terá que fazer a edição como sudo e sudo update-grubdepois executar e reinicializar.

No entanto, ficaria muito grato se, quando o tempo permitir, você continuasse a ajudar a investigar o problema com o driver intel_pstate, já que nenhum computador ao qual tenho acesso apresenta o problema.

Se você estiver tendo problemas com o pacote linux-tools, existe um turbostato no meu site que deve funcionar. duplo você duplo você duplo você ponto smythies ponto com /~doug/linux/intel_pstate/energy/turbostat. Ele também está incluído no código-fonte do kernel, bastando compilá-lo.

EDIT: Observações das 14 amostras do turbostato:

As 14 amostras do turbostato mostram problemas térmicos. A temperatura ociosa parece um pouco alta, assim como a frequência do clock ocioso da CPU. Parece haver algum grau variável de estrangulamento térmico antes do estado bloqueado. Resumo das 14 amostras:

Sample CPU Avg_MHz   %Busy Bzy_MHz TSC_MHz  CPU%c7  PkgTmp PkgWatt CorWatt Throttled  Comment
   1     -       9    0.57    1662    2793   98.53      48    2.35    0.06  no        High idle temp and Bzy clock
   2     -    2142   60.38    3547    2794   34.64      89   36.95   30.53  no
   3     -    3548   98.89    3588    2794    0.00      91   56.62   47.73  no
   4     -    3565   99.30    3590    2794    0.00      95   56.53   47.58  no        Very high Temp
   5     -    2861   98.83    2895    2794    0.00      93   46.17   38.07  yes X 29
   6     -    2834   98.72    2871    2794    0.00      97   46.45   38.38  yes X 29
   7     -    2172   98.67    2202    2793    0.00      95   34.06   26.79  yes X 22  More Thermal throttling
   8     -    2415   98.38    2455    2793    0.01      70   38.87   31.59  yes X 25  Less Thermal throttling
   9     -    1626   98.64    1648    2794    0.00      66   24.97   18.61  yes X 16  More Thermel throttling
  10     -     594   99.29     598    2794    0.00      63    7.26    2.11  yes X 6   Locked up state
  11     -     368   61.51     598    2794    3.41      58    5.52    1.30  yes X 6
  12     -       7    1.11     603    2794    7.57      56    2.43    0.03  yes X 6   
  13     -       8    1.38     602    2794    6.92      55    2.45    0.03  yes X 6
  14     -       8    1.26     601    2794   97.26      54    2.40    0.03  yes X 6   High idle temperature 

Responder2

O BIOS do seu sistema está usando a modulação do relógio como um método para se proteger contra sobrecarga térmica. Embora se pretenda reduzir o desempenho do sistema num pequeno montante, 75% do máximo nominal, o desempenho está, na verdade, a ser restringido a 75% do mínimo. Além disso, parece que, uma vez ativada a modulação do relógio, ela nunca é reiniciada. Em sua forma atual, o driver de escalonamento de frequência da CPU intel_pstate é fundamentalmente incompatível com a modulação de clock e sempre levará o pstate alvo ao mínimo, independentemente da carga real. No entanto, o driver de escalonamento de CPU acpi-cpufreq funciona bem com Clock Modulation e é o driver recomendado para você.

Essa é a história toda? Não. A partir do Kernel 4.5, eu acho, o driver intel_pstate tem algumas mudanças baseadas no ID da CPU, de modo que alguns processadores serão controlados por algoritmos baseados em carga, que são compatíveis com modulação de clock, e alguns processadores serão controlados por algoritmos baseados em desempenho. , que não são compatíveis com modulação de relógio. Seu processador, ID=0X3C, ainda será baseado no desempenho.

informação relacionada