
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.
dmesg
zeigt nichts von in den letzten 2 Stundenhtop
zeigt 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/cpuinfo
vor 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 MHz
Wä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 sensors
ist immer noch wie oben, aber die Leistung des kleinen Python-Tests ist vor und nach dem Test unverändert. Die Ausgabe cpuinfo
ist 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_pstate
Treiber 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 0x19a
vor 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.log
Datei 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 msr
zunä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-tools
um 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_STATUS
Zeile 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=disable
der GRUB_CMDLINE_LINUX_DEFAULT
Zeile 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-grub
dann 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.