Wie diagnostiziere ich eine plötzliche Verlangsamung

Wie diagnostiziere ich eine plötzliche Verlangsamung

Wenn ich auf meinem Computer (Tecra W50) eine besonders rechenintensive Aufgabe länger als ein paar Sekunden ausführe, wird er sehr langsam. Die Leistung normalisiert sich nicht, nachdem die Aufgabe abgeschlossen ist.

  • Beim Ausführen time python3 -c "for i in range(10000000): pass"von Ausdrucken dauert es 0,2 Sekunden, bevor der Computer langsam wird, aber 2,1 Sekunden danach.

  • Ein Neustart behebt das Problem, bis ich das nächste Mal eine intensive Aufgabe ausführe.

  • dmesgzeigt nichts von in den letzten 2 Stunden

  • htopzeigt eine geringe Ressourcennutzung, sowohl in Bezug auf CPU als auch RAM.

  • Ich habe vor kurzem kein Dist-Upgrade durchgeführt, aber einen neuen Kernel (3.16.0-38-generic) installiert.

Wie sollte ich dieses Problem angehen?

BEARBEITEN:

Basierend auf einem aufschlussreichen Kommentar von Harald habe ich /proc/cpuinfovor und nach dem Ausführen einer rechenintensiven Aufgabe einen Dump durchgeführt. Der Unterschied ist ziemlich aufschlussreich:

@@ -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

(dies wird 8 Mal mit ähnlichen Zahlen wiederholt).

Noch ein paar Daten (aufgenommen, als alles noch schnell lief):

/ $ 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

Und das Aufrufen von Sensoren während der Ausführung der Aufgabe (vor der Verlangsamung) führt zu folgendem Ergebnis:

$ 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)

Nur Sekunden später ist es runter auf 60 und alles ist langsamer.

Ich habe ein paar genauere Zeitangaben gemacht: das kleine Python-Skript oben mit einer zusätzlichen Null ändert sich von

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

bevor Sie etwas Intensives ausführen,

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

nach ein paar Sekunden schwerer Arbeit.

cpuinfo | grep MHzWährend der Schnelltest ausgeführt wird, wird Folgendes angezeigt:

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

und während der langsame Test läuft:

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

Die Zeitangaben scheinen sich danach nicht allzu sehr zu ändern echo "50" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct:

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

Sie ändern sich auch nicht nach echo 100:

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

Das Problem tritt bei 3.13.0-37-generic nicht auf. Die Ausgabe sensorsist immer noch wie oben, aber die Leistung des kleinen Python-Tests ist vor und nach dem Test unverändert. Die Ausgabe cpuinfoist wie folgt:

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

was Sinn macht, da der Test ein Single-Threaded ist. Auf diesem Kernel sind auch einige Dinge anders:

$ 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 

Ich habe auch die Ausgabe von Turbostat kurz vor, während und nach einer rechenintensiven Aufgabe auf dem intel_pstateTreiber erfasst:

Kern 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
   - - 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
Kern 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
   - - 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
Kern 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
   - - 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
Kern 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
   - - 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
Kern 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
   - - 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
Kern 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
   - - 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
Kern 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
   - - 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
Kern 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
   - - 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
Kern 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
   - - 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
Kern 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
   - - 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 0600 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
Kern 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
   - - 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 0369 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
Kern 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
   - - 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
Kern 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
   - - 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
Kern 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
   - - 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

Einige zusätzliche Informationen (nach dem Ausführen einer intensiven Aufgabe):

10:00:26 /sys/klasse/thermisch
$ sudo grep -r . *
Kühlgerät0/Typ:Prozessor
Kühlgerät0/Stromversorgung/Steuerung:auto
Kühlgerät0/Strom/async:deaktiviert
Kühlgerät0/Stromversorgung/Laufzeit_aktiviert:deaktiviert
Kühlgerät0/Stromversorgung/Laufzeit_aktiver_Kinder:0
Kühlgerät0/Strom/Laufzeit_Aktivzeit:0
grep: cooling_device0/power/autosuspend_delay_ms: Eingabe-/Ausgabefehler
Kühlgerät0/Stromversorgung/Laufzeitstatus:nicht unterstützt
Kühlgerät0/Strom/Laufzeitverbrauch:0
Kühlgerät0/Stromversorgung/Laufzeit_Aussetzzeit:0
Kühlgerät0/aktueller_Zustand:0
Kühlgerät0/Maximaler Zustand:10
Kühlgerät1/Typ:Prozessor
Kühlgerät1/Strom/Steuerung:auto
Kühlgerät1/Stromversorgung/async:deaktiviert
Kühlgerät1/Stromversorgung/Laufzeit_aktiviert:deaktiviert
Kühlgerät1/Stromversorgung/Laufzeit_aktiver_Kinder:0
Kühlgerät1/Leistung/Laufzeit_Aktivzeit:0
grep: cooling_device1/power/autosuspend_delay_ms: Eingabe-/Ausgabefehler
Kühlgerät1/Stromversorgung/Laufzeitstatus:nicht unterstützt
Kühlgerät1/Stromversorgung/Laufzeitverbrauch:0
Kühlgerät1/Stromversorgung/Laufzeit_Aussetzzeit:0
Kühlgerät1/aktueller_Zustand:0
Kühlgerät1/Maximaler Zustand:10
Kühlgerät2/Typ:Prozessor
Kühlgerät2/Stromversorgung/Steuerung:auto
Kühlgerät2/Stromversorgung/async:deaktiviert
Kühlgerät2/Stromversorgung/Laufzeit_aktiviert:deaktiviert
Kühlgerät2/Stromversorgung/Laufzeit_aktiver_Kinder:0
Kühlgerät2/Leistung/Laufzeit_Aktivzeit:0
grep: cooling_device2/power/autosuspend_delay_ms: Eingabe-/Ausgabefehler
Kühlgerät2/Stromversorgung/Laufzeitstatus:nicht unterstützt
Kühlgerät2/Stromversorgung/Laufzeitverbrauch:0
Kühlgerät2/Stromversorgung/Laufzeit_Aussetzzeit:0
Kühlgerät2/aktueller_Zustand:0
Kühlgerät2/Maximaler Zustand:10
Kühlgerät3/Typ:Prozessor
Kühlgerät3/Stromversorgung/Steuerung:auto
Kühlgerät3/Stromversorgung/async:deaktiviert
Kühlgerät3/Stromversorgung/Laufzeit_aktiviert:deaktiviert
Kühlgerät3/Stromversorgung/Laufzeit_aktiver_Kinder:0
Kühlgerät3/Leistung/Laufzeit_Aktivzeit:0
grep: cooling_device3/power/autosuspend_delay_ms: Eingabe-/Ausgabefehler
cooling_device3/power/runtime_status:nicht unterstützt
Kühlgerät3/Stromversorgung/Laufzeitverbrauch:0
Kühlgerät3/Stromversorgung/Laufzeit_Aussetzzeit:0
Kühlgerät3/aktueller_Zustand:0
Kühlgerät3/Maximaler Zustand:10
Kühlgerät4/Typ:Prozessor
Kühlgerät4/Stromversorgung/Steuerung:auto
Kühlgerät4/Stromversorgung/async:deaktiviert
Kühlgerät4/Stromversorgung/Laufzeit_aktiviert:deaktiviert
Kühlgerät4/Stromversorgung/Laufzeit_aktiv_Kinder:0
Kühlgerät4/Strom/Laufzeit_Aktivzeit:0
grep: cooling_device4/power/autosuspend_delay_ms: Eingabe-/Ausgabefehler
Kühlgerät4/Stromversorgung/Laufzeitstatus:nicht unterstützt
Kühlgerät4/Stromversorgung/Laufzeitverbrauch:0
Kühlgerät4/Stromversorgung/Laufzeit_Aussetzzeit:0
Kühlgerät4/aktueller_Zustand:0
Kühlgerät4/Maximaler Zustand:10
Kühlgerät5/Typ:Prozessor
Kühlgerät5/Stromversorgung/Steuerung:auto
Kühlgerät5/Stromversorgung/async:deaktiviert
Kühlgerät5/Stromversorgung/Laufzeit_aktiviert:deaktiviert
Kühlgerät5/Leistung/Laufzeit_aktiver_Kinder:0
Kühlgerät5/Leistung/Laufzeit_Aktivzeit:0
grep: cooling_device5/power/autosuspend_delay_ms: Eingabe-/Ausgabefehler
Kühlgerät5/Stromversorgung/Laufzeitstatus:nicht unterstützt
Kühlgerät5/Stromversorgung/Laufzeitverbrauch:0
Kühlgerät5/Stromversorgung/Laufzeit_Aussetzzeit:0
Kühlgerät5/aktueller_Zustand:0
Kühlgerät5/Maximaler Zustand:10
cooling_device6/Typ:Prozessor
Kühlgerät6/Stromversorgung/Steuerung:auto
Kühlgerät6/Stromversorgung/async:deaktiviert
Kühlgerät6/Stromversorgung/Laufzeit_aktiviert:deaktiviert
Kühlgerät6/Stromversorgung/Laufzeit_aktiver_Kinder:0
Kühlgerät6/Leistung/Laufzeit_Aktivzeit:0
grep: cooling_device6/power/autosuspend_delay_ms: Eingabe-/Ausgabefehler
Kühlgerät6/Stromversorgung/Laufzeitstatus:nicht unterstützt
Kühlgerät6/Stromversorgung/Laufzeitverbrauch:0
Kühlgerät6/Stromversorgung/Laufzeit_Aussetzzeit:0
Kühlgerät6/aktueller_Zustand:0
Kühlgerät6/Maximaler Zustand:10
Kühlgerät7/Typ:Prozessor
Kühlgerät7/Stromversorgung/Steuerung:auto
Kühlgerät7/Stromversorgung/async:deaktiviert
Kühlgerät7/Stromversorgung/Laufzeit_aktiviert:deaktiviert
Kühlgerät7/Stromversorgung/Laufzeit_aktiv_Kinder:0
Kühlgerät7/Leistung/Laufzeit_Aktivzeit:0
grep: cooling_device7/power/autosuspend_delay_ms: Eingabe-/Ausgabefehler
Kühlgerät7/Stromversorgung/Laufzeitstatus:nicht unterstützt
Kühlgerät7/Stromversorgung/Laufzeitverbrauch:0
Kühlgerät7/Stromversorgung/Laufzeit_Aussetzzeit:0
Kühlgerät7/aktueller_Zustand:0
Kühlgerät7/Maximaler Zustand:10
Kühlgerät8/Typ:LCD
Kühlgerät8/Leistung/Steuerung:auto
Kühlgerät8/Stromversorgung/async:deaktiviert
Kühlgerät8/Stromversorgung/Laufzeit_aktiviert:deaktiviert
Kühlgerät8/Leistung/Laufzeit_aktiver_Kinder:0
Kühlgerät8/Leistung/Laufzeit_Aktivzeit:0
grep: cooling_device8/power/autosuspend_delay_ms: Eingabe-/Ausgabefehler
Kühlgerät8/Stromversorgung/Laufzeitstatus:nicht unterstützt
Kühlgerät8/Stromversorgung/Laufzeitverbrauch:0
Kühlgerät8/Stromversorgung/Laufzeit_Aussetzzeit:0
Kühlgerät8/aktueller_Zustand:0
Kühlgerät8/Maximaler Zustand:100
Kühlgerät9/Typ:Intel_Powerclamp
Kühlgerät9/Stromversorgung/Steuerung:auto
Kühlgerät9/Stromversorgung/async:deaktiviert
Kühlgerät9/Stromversorgung/Laufzeit_aktiviert:deaktiviert
Kühlgerät9/Stromversorgung/Laufzeit_aktiver_Kinder:0
Kühlgerät9/Leistung/Laufzeit_Aktivzeit:0
grep: cooling_device9/power/autosuspend_delay_ms: Eingabe-/Ausgabefehler
Kühlgerät9/Stromversorgung/Laufzeitstatus:nicht unterstützt
Kühlgerät9/Stromversorgung/Laufzeitverbrauch:0
Kühlgerät9/Stromversorgung/Laufzeit_Aussetzzeit:0
Kühlgerät9/aktueller_Zustand:-1
Kühlgerät9/Maximaler Zustand:50
thermal_zone0/Modus:aktiviert
thermal_zone0/temp:83000
thermal_zone0/Typ:acpitz
thermal_zone0/Leistung/Steuerung:auto
thermal_zone0/power/async:deaktiviert
thermal_zone0/power/runtime_enabled:deaktiviert
thermische_zone0/Leistung/Laufzeit_aktive_Kinder:0
thermal_zone0/Leistung/Laufzeit_Aktivzeit:0
grep: thermal_zone0/power/autosuspend_delay_ms: Eingabe-/Ausgabefehler
thermal_zone0/power/runtime_status:nicht unterstützt
thermische_zone0/Leistung/Laufzeitverbrauch:0
thermal_zone0/power/runtime_suspended_time:0
grep: thermal_zone0/emul_temp: Berechtigung verweigert
thermische_zone0/Auslösepunkt_0_temp:102000
thermal_zone0/trip_point_0_type:kritisch
thermal_zone0/Richtlinie:schrittweise
thermische_zone0/passiv:0
thermische_zone1/temp:51000
thermal_zone1/Typ:x86_pkg_temp
thermal_zone1/Leistung/Steuerung:auto
thermal_zone1/power/async:deaktiviert
thermal_zone1/power/runtime_enabled:deaktiviert
thermische_zone1/Leistung/Laufzeit_aktive_Kinder:0
thermal_zone1/Leistung/Laufzeit_Aktivzeit:0
grep: thermal_zone1/power/autosuspend_delay_ms: Eingabe-/Ausgabefehler
thermal_zone1/power/runtime_status:nicht unterstützt
thermal_zone1/Leistung/Laufzeitverbrauch:0
thermal_zone1/power/runtime_suspended_time:0
grep: thermal_zone1/emul_temp: Berechtigung verweigert
thermische_zone1/Auslösepunkt_0_temp:0
thermische_zone1/Auslösepunkt_0_Typ: passiv
thermische_zone1/Auslösepunkt_1_temp:0
thermische_zone1/Auslösepunkt_1_Typ: passiv
thermische_zone1/richtlinie:schrittweise

Und die Ausgabe vonturbostat -d sleep 10

$ sudo ~/dls/turbostat -d sleep 10
turbostat Version 4.7 17. Juni 2015 - Len Brown
CPUID(0): GenuineIntel 13 CPUID-Ebenen; Familie:Modell:Stepping 0x6:3c:3 (6:60:3)
CPUID(6): APERF, DTS, PTM, EPB
RAPL: 5578 Sek. Joule-Zählerbereich, bei 47 Watt
cpu5: MSR_NHM_PLATFORM_INFO: 0x80838f3011c00
8 * 100 = 800 MHz maximale Effizienzfrequenz
28 * 100 = 2800 MHz Grundfrequenz
cpu5: MSR_IA32_POWER_CTL: 0x0004005d (C1E-Auto-Promotion: DEAKTIVIERT)
cpu5: MSR_TURBO_RATIO_LIMIT: 0x24242526
36 * 100 = 3600 MHz max. Turbo 4 aktive Kerne
36 * 100 = 3600 MHz max. Turbo 3 aktive Kerne
37 * 100 = 3700 MHz max. Turbo 2 aktive Kerne
38 * 100 = 3800 MHz max. Turbo 1 aktive Kerne
cpu5: MSR_CONFIG_TDP_NOMINAL: 0x0000001c (Basisverhältnis=12)
cpu5: MSR_CONFIG_TDP_LEVEL_1: 0x00000000 ()
cpu5: MSR_CONFIG_TDP_LEVEL_2: 0x00000000 ()
cpu5: MSR_CONFIG_TDP_CONTROL: 0x80000000 (Sperre=1)
cpu5: MSR_TURBO_ACTIVATION_RATIO: 0x00000000 (MAX_NON_TURBO_RATIO=0, Sperre=0)
cpu5: MSR_NHM_SNB_PKG_CST_CFG_CTL: 0x1e008405 (UNdemote-C3, UNdemote-C1, demote-C3, demote-C1, gesperrt: pkg-cstate-limit=5: pc7s)
cpu0: MSR_IA32_ENERGY_PERF_BIAS: 0x00000006 (ausgeglichen)
cpu0: MSR_CORE_PERF_LIMIT_REASONS, 0x38210000 (Aktiv: ) (Protokolliert: Übergänge, MultiCoreTurbo, PkgPwrL2, Auto-HWP, PROCHOT, )
cpu0: MSR_GFX_PERF_LIMIT_REASONS, 0x00000000 (Aktiv: ) (Angemeldet: )
cpu0: MSR_RING_PERF_LIMIT_REASONS, 0x0c000000 (Aktiv: ) (Protokolliert: PkgPwrL1, PkgPwrL2, )
cpu0: MSR_RAPL_POWER_UNIT: 0x000a0e03 (0,125000 Watt, 0,000061 Joule, 0,000977 Sek.)
cpu0: MSR_PKG_POWER_INFO: 0x00000178 (47 W TDP, RAPL 0 – 0 W, 0,000000 Sek.)
cpu0: MSR_PKG_POWER_LIMIT: 0x4281d600dc8178 (ENTsperrt)
cpu0: PKG-Limit Nr. 1: Aktiviert (47,000000 Watt, 28,000000 Sek., Klemme DEAKTIVIERT)
cpu0: PKG-Limit Nr. 2: Aktiviert (58,750000 Watt, 0,002441* Sek., Klemme DEAKTIVIERT)
cpu0: MSR_PP0_POLICY: 0
cpu0: MSR_PP0_POWER_LIMIT: 0x00000000 (ENTsperrt)
cpu0: Kerne-Limit: DEAKTIVIERT (0,000000 Watt, 0,000977 Sek., Klemme DEAKTIVIERT)
cpu0: MSR_PP1_POLICY: 0
cpu0: MSR_PP1_POWER_LIMIT: 0x00000000 (ENTsperrt)
cpu0: GFX-Limit: DEAKTIVIERT (0,000000 Watt, 0,000977 Sek., Klemme DEAKTIVIERT)
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)
    Kern 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
       - - 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 Sek.

Ausgabe sudo rdmsr -a 0x19avor dem Ausführen einer intensiven Aufgabe:

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

Nach:

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

Es gibt nichts kern.logüber Temperaturen

Antwort1

Ich möchte versuchen, Ihnen bei Ihrem Problem zu helfen.
Ich möchte, dass Sie versuchen, mir zu helfen, Ihr konkretes Problem besser zu verstehen.

Der Zustand, bei dem ein relativ neuer Intel-Prozessor bei etwa 600 MHz einfriert, obwohl der minimale pstate für das Paket 800 MHz beträgt, wurde schon oft beobachtet. Mir ist jedoch nur bekannt, dass der Zustand nach einer Wiederaufnahme aus einem Suspend in den RAM auftritt. Außerdem wurde der Zustand (von etwa 75 % des gewünschten Werts, nicht die Sperre bei dieser Frequenz) (korrekt oder fälschlicherweise) einem BIOS-Problem zugeschrieben, insbesondere beim Dell E6320.

EDIT: Theorie: Mit der aktuellen Version des intel_pstate-Treibers führt jede Aktivierung der thermischen Drosselung über die Taktmodulation dazu, dass die gemeldete CPU-Frequenz auf eine sehr niedrige Frequenz festgelegt wird.
Der acpi-cpufreq-Treiber hat dieses Problem nicht. Beachten Sie, dass ein vorgeschlagener Patchsatz für den intel_pstate-Treiber ebenfalls nicht von diesem Problem betroffen ist.
Zusätzlich zu den gewünschten Turbostat-Daten hilft ein zusätzliches MSR-Register, diese Theorie zu bestätigen oder zu widerlegen.

Wären Sie bereit, diese Tests durchzuführen und die Ergebnisse in Ihre Frage einzuarbeiten:

. Nach der Verlangsamung. Machen Sie Ihren time python3 -c "for i in range(10000000): pass"Test. Machen Sie es etwa 10 oder 100 Mal länger und machen Sie, während es läuft grep MHz /proc/cpuinfo, . Bleiben alle CPUs bei etwa 600 MHz hängen? (In Ihrem ursprünglichen Beitrag ist mir nicht klar, ob die 600 MHz nur daher rührten, dass sie im Leerlauf waren, oder ob sie dort hängen geblieben sind.)

. Läuft Ihr kleines Testding nach einem Neustart und vor jeder intensiven Aufgabe schneller als 0,2 Sekunden (vielleicht 10 oder 100 Mal länger, um mehr signifikante Ziffern zu extrahieren)? Und welche CPU-Frequenzen erhalten Sie? IE waren die 2800 MHz, die Sie bereits aufgelistet haben, etwa 0,75 x 3800 MHz. Oder wird die CPU tatsächlich auf 3800 MHz gehen (abhängig von der Aktivität anderer CPUs und davon, ob der Turbo aktiviert ist).

. Um eine Frequenzsperre zu verhindern, wurde dem intel_pstate-Treiber ab der 4.2RC-Serie (Release Candidate) ein Patch hinzugefügt. Wenn das Ergebnis von Test 1 oben war, dass die Frequenz gesperrt ist, wären Sie bereit, Kernel zu versuchen?4.3RC4. In Ihrem Fall lässt sich die Entsperrung möglicherweise nicht durchführen, weil das Problem (anders als das BIOS-Problem) mit einem Suspend-Problem zusammenhing.

. Wenn das Ergebnis aus Test 1 oben ist, dass die Frequenz gesperrt ist, wird sie dann hiermit entsperrt?:

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

Warten Sie 5 Sekunden, um sicherzustellen, dass jede CPU umgeschaltet wird. Es kann bis zu 4 Sekunden dauern, bis eine inaktive CPU tatsächlich einen Durchlauf durch den intel_pstate-Treiber durchführt.

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

Und wenn es die Sperre aufhebt, bleibt es bei etwa dem 0,75-fachen des Sollwerts?

Bitte überprüfen Sie auch Ihre BIOS-Einstellungen. Ich weiß jedoch nicht, wonach Sie suchen.

Bitte überprüfen Sie Ihre /var/log/kern.logDatei auch auf thermische Meldungen.

Es ist hilfreich, die Ausgabe vor und nach der Verlangsamung von folgendem Wert bereitzustellen:

sudo turbostat -d sleep 10

oder bei älteren Versionen von Turbostat könnte es immer noch lauten:

sudo turbostat -v sleep 10

Außerdem wird ein weiteres MSR-Register benötigt (muss sudo modprobe msrzunächst einmal pro Bootvorgang erstellt werden):

sudo rdmsr -a 0x19a

Außerdem wird die Ausgabe von: benötigt.

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

Möglicherweise müssen Sie das Paket installieren, linux-toolsum Turbostat zu erhalten, und wenn diese Version von Turbostat nicht neu genug ist, müssen Sie möglicherweise zuerst eins durchführen sudo modprobe msr.

Aus Ihren Tests geht hervor, dass Ihr Hauptproblem darin zu bestehen scheint, dass Ihr Prozessor überhitzt und sich selbst herunterfährt, um sich zu schützen. Allerdings scheint er in diesem Zustand abzustürzen und sich nicht zu erholen. Ich würde sehr gerne verstehen, warum, und die oben erwähnten Turbostat-Tests werden einige Einblicke liefern. Insbesondere (glaube ich) sind wir daran interessiert, die MSR_IA32_PACKAGE_THERM_STATUSZeile für die verschiedenen Bedingungen und die verschiedenen Treiber zu verstehen und zu dekodieren. Wir sind auch daran interessiert, den IA32_CLOCK_MODULATION MSR (0x19A) zu verstehen und zu dekodieren.

Aus Ihren Tests geht hervor, dass das Problem nur beim Frequenzskalierungstreiber intel_pstate und nicht beim Frequenzskalierungstreiber acpi cpufreq auftritt. Ich dachte schon seit einiger Zeit, dass der Treiber intel_pstate standardmäßig verwendet wird.

Wenn Sie einfach weitermachen möchten, können Sie die Verwendung des Frequenzskalierungstreibers intel_pstate deaktivieren. Bearbeiten Sie die Datei /etc/default/grub, erstellen Sie vielleicht zuerst eine Kopie und fügen Sie intel_pstate=disableder GRUB_CMDLINE_LINUX_DEFAULTZeile etwas hinzu. Hier ist ein Beispiel von einem meiner Computer:

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

Sie müssen die Bearbeitung als sudo durchführen und anschließend ausführen und sudo update-grubdann neu starten.

Ich wäre Ihnen jedoch sehr dankbar, wenn Sie mir, sofern es die Zeit erlaubt, weiterhin bei der Untersuchung des Problems mit dem Intel_Pstate-Treiber behilflich sein würden, da dieses Problem bei keinem der Computer auftritt, auf die ich Zugriff habe.

Wenn Sie Probleme mit dem Linux-Tools-Paket haben, gibt es auf meiner Website einen Turbostat, der funktionieren sollte. double u double u double u dot smythies dot com /~doug/linux/intel_pstate/energy/turbostat. Er ist auch in der Kernelquelle enthalten, Sie müssen ihn nur kompilieren.

EDIT: Beobachtungen aus den 14 Turbostatproben:

Die 14 Turbostat-Beispiele zeigen thermische Probleme. Die Leerlauftemperatur scheint etwas hoch zu sein, ebenso wie die Leerlauf-CPU-Taktfrequenz. Es scheint tatsächlich ein unterschiedlich starkes Maß an thermischer Drosselung vor dem Sperrzustand zu geben. Zusammenfassung der 14 Beispiele:

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 

Antwort2

Ihr System-BIOS verwendet die Taktmodulation als Methode, um sich vor thermischer Überlastung zu schützen. Während es die Systemleistung um einen kleinen Betrag, 75 % des nominalen Maximums, reduzieren möchte, wird die Leistung tatsächlich auf 75 % des absoluten Minimums beschränkt. Außerdem scheint es, dass die einmal aktivierte Taktmodulation nie zurückgesetzt wird. In seiner aktuellen Form ist der CPU-Frequenzskalierungstreiber intel_pstate grundsätzlich nicht mit der Taktmodulation kompatibel und wird den Ziel-Pstate unabhängig von der tatsächlichen Belastung immer auf das Minimum bringen. Der CPU-Skalierungstreiber acpi-cpufreq funktioniert jedoch gut mit der Taktmodulation und ist der für Sie empfohlene Treiber.

Ist das die ganze Geschichte? Nein. Ich glaube, ab Kernel 4.5 gibt es einige Änderungen am intel_pstate-Treiber basierend auf der CPU-ID, so dass einige Prozessoren durch lastbasierte Algorithmen gesteuert werden, die mit der Taktmodulation kompatibel sind, und einige Prozessoren durch leistungsbasierte Algorithmen, die nicht mit der Taktmodulation kompatibel sind. Ihr Prozessor mit der ID=0X3C wird weiterhin leistungsbasiert sein.

verwandte Informationen