갑작스러운 속도 저하를 진단하는 방법

갑작스러운 속도 저하를 진단하는 방법

내 컴퓨터(Tecra W50)에서 특히 컴퓨팅 집약적인 작업을 몇 초 이상 실행하면 속도가 매우 느려집니다. 작업이 완료된 후 성능이 정상으로 돌아오지 않습니다.

  • Running은 time python3 -c "for i in range(10000000): pass"컴퓨터가 느려지기 전에 0.2초를 인쇄하지만 이후에는 2.1초를 인쇄합니다.

  • 다음에 집중적인 작업을 실행할 때까지 재부팅하면 문제가 해결됩니다.

  • dmesg지난 2시간 동안 아무것도 표시되지 않았습니다

  • htopCPU와 RAM 측면에서 모두 리소스 사용량이 낮습니다.

  • 최근에 dist-upgrade를 하지 않았지만 새로운 커널(3.16.0-38-generic)을 설치했습니다.

이 문제에 어떻게 접근해야 합니까?

편집하다:

Harald의 통찰력 있는 의견을 바탕으로 /proc/cpuinfo컴퓨팅 집약적인 작업을 실행하기 전후에 덤프를 했습니다. 차이점은 다음과 같습니다.

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

(비슷한 숫자로 8번 반복됩니다.)

추가 데이터(작업이 여전히 빠르게 진행되는 동안 촬영):

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

작업이 실행되는 동안(속도가 느려지기 전) 센서를 호출하면 다음이 생성됩니다.

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

단 몇 초 후에는 60으로 줄어들고 모든 것이 느려집니다.

나는 좀 더 정확한 타이밍을 만들었습니다. 위의 작은 Python 스크립트는

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

집중적인 작업을 실행하기 전에

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

몇 초의 힘든 작업 끝에.

cpuinfo | grep MHz빠른 테스트가 실행되는 동안 다음과 같은 내용이 표시됩니다.

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

느린 테스트가 실행되는 동안:

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

다음 이후에는 타이밍이 너무 많이 변하지 않는 것 같습니다 echo "50" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct.

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

다음 이후에도 변경되지 않습니다 echo 100.

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

3.13.0-37-generic에서는 문제가 나타나지 않습니다. 의 출력은 sensors여전히 ​​위와 같지만 소규모 Python 테스트의 성능은 테스트 전후에 변경되지 않았습니다. 의 출력은 cpuinfo다음과 같습니다:

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

테스트가 단일 스레드이기 때문에 이는 의미가 있습니다. 해당 커널에서는 몇 가지 사항도 다릅니다.

$ 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 

또한 드라이버에서 컴퓨팅 집약적인 작업을 수행하기 전, 도중, 후에 터보스탯의 출력을 캡처했습니다 intel_pstate.

코어 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
코어 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
코어 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
코어 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
코어 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
코어 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
코어 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
코어 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
코어 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
코어 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 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
코어 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 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
코어 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
코어 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
코어 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

몇 가지 추가 정보(집중적인 작업을 실행한 후):

10:00:26 /sys/클래스/열
$ sudo grep -r . *
Cooling_device0/type:프로세서
냉각_장치0/전원/제어:자동
Cooling_device0/power/async:비활성화
냉각_장치0/전원/런타임_활성화:비활성화
냉각_장치0/전력/런타임_활성_키즈:0
냉각_장치0/전력/런타임_활성_시간:0
grep: Cooling_device0/power/autosun_delay_ms: 입력/출력 오류
Cooling_device0/power/runtime_status:지원되지 않음
냉각_장치0/전원/런타임_사용:0
냉각_장치0/전원/런타임_일시중단_시간:0
냉각_장치0/현재_상태:0
냉각_장치0/최대_상태:10
Cooling_device1/type:프로세서
냉각 장치1/전원/제어:자동
Cooling_device1/power/async:비활성화
냉각_장치1/전원/런타임_활성화:비활성화
냉각_장치1/전력/runtime_active_kids:0
냉각_장치1/전원/런타임_활성_시간:0
grep: Cooling_device1/power/autosun_delay_ms: 입력/출력 오류
Cooling_device1/power/runtime_status:지원되지 않음
냉각_장치1/전원/런타임_사용:0
냉각_장치1/전원/런타임_일시중단_시간:0
냉각_장치1/현재_상태:0
Cooling_device1/max_state:10
Cooling_device2/type:프로세서
Cooling_device2/전원/제어:자동
Cooling_device2/power/async:비활성화
냉각_장치2/전원/런타임_활성화:비활성화
냉각 장치2/전원/런타임_활성_키즈:0
냉각_장치2/전력/런타임_활성_시간:0
grep: Cooling_device2/power/autosun_delay_ms: 입력/출력 오류
Cooling_device2/power/runtime_status:지원되지 않음
냉각_장치2/전원/런타임_사용:0
냉각_장치2/전원/런타임_일시중단_시간:0
냉각_장치2/현재_상태:0
Cooling_device2/max_state:10
Cooling_device3/type:프로세서
Cooling_device3/전원/제어:자동
Cooling_device3/power/async:비활성화
냉각_장치3/전원/런타임_활성화:비활성화
냉각_장치3/전력/런타임_활성_키즈:0
냉각_장치3/전력/런타임_활성_시간:0
grep: Cooling_device3/power/autosun_delay_ms: 입력/출력 오류
Cooling_device3/power/runtime_status:지원되지 않음
냉각_장치3/전원/런타임_사용:0
냉각_장치3/전원/런타임_일시중단_시간:0
냉각 장치3/cur_state:0
Cooling_device3/max_state:10
Cooling_device4/type:프로세서
Cooling_device4/전원/제어:자동
Cooling_device4/power/async:비활성화
냉각_장치4/전원/런타임_활성화:비활성화
냉각 장치4/전력/런타임_활성_키즈:0
냉각_장치4/전력/런타임_활성_시간:0
grep: Cooling_device4/power/autosun_delay_ms: 입력/출력 오류
Cooling_device4/power/runtime_status:지원되지 않음
냉각_장치4/전원/런타임_사용:0
냉각_장치4/전원/런타임_일시중단_시간:0
냉각 장치4/cur_state:0
Cooling_device4/max_state:10
Cooling_device5/type:프로세서
Cooling_device5/전원/제어:자동
Cooling_device5/power/async:비활성화
냉각_장치5/전원/런타임_활성화:비활성화
냉각_장치5/전원/runtime_active_kids:0
냉각_장치5/전력/런타임_활성_시간:0
grep: Cooling_device5/power/autosun_delay_ms: 입력/출력 오류
Cooling_device5/power/runtime_status:지원되지 않음
냉각_장치5/전원/런타임_사용:0
냉각_장치5/전원/런타임_일시중단_시간:0
냉각_장치5/cur_state:0
Cooling_device5/max_state:10
Cooling_device6/type:프로세서
Cooling_device6/전원/제어:자동
Cooling_device6/power/async:비활성화
Cooling_device6/power/runtime_enabled:비활성화
냉각 장치6/전원/런타임_활성_키즈:0
냉각_장치6/전력/런타임_활성_시간:0
grep: Cooling_device6/power/autosun_delay_ms: 입력/출력 오류
Cooling_device6/power/runtime_status:지원되지 않음
냉각_장치6/전원/런타임_사용:0
냉각_장치6/전원/런타임_일시중단_시간:0
냉각 장치6/cur_state:0
Cooling_device6/max_state:10
Cooling_device7/type:프로세서
Cooling_device7/전원/제어:자동
Cooling_device7/power/async:비활성화
Cooling_device7/power/runtime_enabled:비활성화
냉각 장치7/전력/런타임_활성_키즈:0
냉각_장치7/전력/런타임_활성_시간:0
grep: Cooling_device7/power/autosun_delay_ms: 입력/출력 오류
Cooling_device7/power/runtime_status:지원되지 않음
냉각_장치7/전원/런타임_사용:0
냉각_장치7/전원/런타임_일시중단_시간:0
냉각_장치7/cur_state:0
Cooling_device7/max_state:10
냉각_장치8/유형:LCD
Cooling_device8/전원/제어:자동
Cooling_device8/power/async:비활성화
Cooling_device8/power/runtime_enabled:비활성화
냉각 장치8/전력/런타임_활성_키즈:0
냉각_장치8/전력/런타임_활성_시간:0
grep: Cooling_device8/power/autosun_delay_ms: 입력/출력 오류
Cooling_device8/power/runtime_status:지원되지 않음
냉각_장치8/전원/런타임_사용:0
냉각_장치8/전원/런타임_일시중단_시간:0
냉각 장치8/cur_state:0
Cooling_device8/max_state:100
Cooling_device9/type:intel_powerclamp
Cooling_device9/전원/제어:자동
Cooling_device9/power/async:비활성화
Cooling_device9/power/runtime_enabled:비활성화
Cooling_device9/power/runtime_active_kids:0
냉각_장치9/전력/런타임_활성_시간:0
grep: Cooling_device9/power/autosun_delay_ms: 입력/출력 오류
Cooling_device9/power/runtime_status:지원되지 않음
냉각_장치9/전원/런타임_사용:0
냉각_장치9/전원/런타임_일시중단_시간:0
Cooling_device9/cur_state:-1
Cooling_device9/max_state:50
Thermal_zone0/모드:활성화됨
Thermal_zone0/temp:83000
Thermal_zone0/type:acpitz
Thermal_zone0/전력/제어:자동
Thermal_zone0/power/async:비활성화
Thermal_zone0/power/runtime_enabled:비활성화
Thermal_zone0/power/runtime_active_kids:0
Thermal_zone0/전력/runtime_active_time:0
grep: Thermal_zone0/power/autosun_delay_ms: 입력/출력 오류
Thermal_zone0/power/runtime_status:지원되지 않음
열 영역 0/전력/런타임_사용:0
Thermal_zone0/전력/런타임_일시 중단_시간:0
grep: Thermal_zone0/emul_temp: 권한이 거부되었습니다.
Thermal_zone0/trip_point_0_temp:102000
Thermal_zone0/trip_point_0_type:중요
Thermal_zone0/policy:step_wise
Thermal_zone0/수동:0
Thermal_zone1/temp:51000
Thermal_zone1/유형:x86_pkg_temp
Thermal_zone1/전력/제어:자동
Thermal_zone1/power/async:비활성화
Thermal_zone1/power/runtime_enabled:비활성화
Thermal_zone1/power/runtime_active_kids:0
Thermal_zone1/전력/runtime_active_time:0
grep: Thermal_zone1/power/autosun_delay_ms: 입력/출력 오류
Thermal_zone1/power/runtime_status:지원되지 않음
열 영역1/전력/런타임_사용:0
Thermal_zone1/전력/런타임_일시중단_시간:0
grep: Thermal_zone1/emul_temp: 권한이 거부되었습니다.
Thermal_zone1/trip_point_0_temp:0
Thermal_zone1/trip_point_0_type:수동
Thermal_zone1/trip_point_1_temp:0
Thermal_zone1/trip_point_1_type:수동
Thermal_zone1/policy:step_wise

그리고 출력은turbostat -d sleep 10

$ sudo ~/dls/turbostat -d sleep 10
터보스타트 버전 4.7 2015년 6월 17일 - Len Brown
CPUID(0): 정품 Intel 13 CPUID 수준; 패밀리:모델:스테핑 0x6:3c:3(6:60:3)
CPUID(6): APERF, DTS, PTM, EPB
RAPL: 5578초 줄 카운터 범위(47와트)
CPU5: MSR_NHM_PLATFORM_INFO: 0x80838f3011c00
8 * 100 = 800MHz 최대 효율 주파수
28 * 100 = 2800MHz 기본 주파수
cpu5: MSR_IA32_POWER_CTL: 0x0004005d(C1E 자동 승격: 비활성화됨)
CPU5: MSR_TURBO_RATIO_LIMIT: 0x24242526
36 * 100 = 3600MHz 최대 터보 활성 코어 4개
36 * 100 = 3600MHz 최대 터보 활성 코어 3개
37 * 100 = 3700MHz 최대 터보 활성 코어 2개
38 * 100 = 3800MHz 최대 터보 1 활성 코어
CPU5: MSR_CONFIG_TDP_NOMINAL: 0x0000001c(base_ratio=12)
CPU5: MSR_CONFIG_TDP_LEVEL_1: 0x00000000 ()
CPU5: MSR_CONFIG_TDP_LEVEL_2: 0x00000000 ()
cpu5: MSR_CONFIG_TDP_Control: 0x80000000(잠금=1)
cpu5: MSR_TURBO_ACTIVATION_RATIO: 0x00000000 (MAX_NON_TURBO_RATIO=0 잠금=0)
cpu5: MSR_NHM_SNB_PKG_CST_CFG_CTL: 0x1e008405(UNdemote-C3, UNdemote-C1, 강등-C3, 강등-C1, 잠김: pkg-cstate-limit=5: pc7s)
cpu0: MSR_IA32_ENERGY_PERF_BIAS: 0x00000006(균형)
cpu0: MSR_CORE_PERF_LIMIT_REASONS, 0x38210000 (활성: ) (로그됨: 전환, MultiCoreTurbo, PkgPwrL2, Auto-HWP, PROCHOT, )
cpu0: MSR_GFX_PERF_LIMIT_REASONS, 0x00000000 (활성: ) (로그됨: )
cpu0: MSR_RING_PERF_LIMIT_REASONS, 0x0c000000 (활성: ) (로그됨: PkgPwrL1, PkgPwrL2, )
cpu0: MSR_RAPL_POWER_UNIT: 0x000a0e03(0.125000와트, 0.000061줄, 0.000977초)
cpu0: MSR_PKG_POWER_INFO: 0x00000178(47W TDP, RAPL 0~0W, 0.000000초)
cpu0: MSR_PKG_POWER_LIMIT: 0x4281d600dc8178(잠금 해제)
cpu0: PKG 제한 #1: 활성화됨(47.000000와트, 28.000000초, 클램프 비활성화됨)
cpu0: PKG 제한 #2: 활성화됨(58.750000W, 0.002441*초, 클램프 비활성화됨)
CPU0: MSR_PP0_POLICY: 0
cpu0: MSR_PP0_POWER_LIMIT: 0x00000000(잠기지 않음)
cpu0: 코어 제한: 비활성화됨(0.000000와트, 0.000977초, 클램프 비활성화됨)
CPU0: MSR_PP1_POLICY: 0
cpu0: MSR_PP1_POWER_LIMIT: 0x00000000(잠금 해제됨)
cpu0: GFX 제한: 비활성화됨(0.000000와트, 0.000977초, 클램프 비활성화됨)
cpu0: MSR_IA32_TEMPERATURE_TARGET: 0x00641000(100C)
cpu0: MSR_IA32_PACKAGE_THERM_STATUS: 0x88310808(51C)
cpu0: MSR_IA32_THERM_STATUS: 0x88310808(51C +/- 1)
cpu2: MSR_IA32_THERM_STATUS: 0x88340808(48C +/- 1)
CPU4: MSR_IA32_THERM_STATUS: 0x88340808(48C +/- 1)
CPU6: MSR_IA32_THERM_STATUS: 0x88330808(49C +/- 1)
    코어 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초

sudo rdmsr -a 0x19a집중 작업을 실행하기 전의 출력 :

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

후에:

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

kern.log온도에 관한 건 아무것도 없어

답변1

귀하의 문제를 해결하는 데 도움을 드리고 싶습니다.
귀하의 특정 문제를 더 잘 이해할 수 있도록 도와주시기 바랍니다.

상대적으로 최근의 Intel 프로세서가 약 600MHz에서 잠기는 조건(패키지의 최소 pstate는 800MHz)이 여러 번 관찰되었습니다. 그러나 나는 일시 중지에서 램으로 재개한 후에 발생하는 조건만 알고 있습니다. 또한 해당 조건(해당 빈도의 잠금이 아닌 요청된 것의 약 75%)은 특히 Dell E6320의 BIOS 문제로 인해 (정확하게 또는 부정확하게) 발생했습니다.

편집: 이론: intel_pstate 드라이버의 현재 버전에서는 클럭 변조를 통한 열 조절을 사용하면 보고된 CPU 주파수가 매우 낮은 주파수에서 잠기게 됩니다.
acpi-cpufreq 드라이버에는 이 문제가 발생하지 않습니다. intel_pstate 드라이버용으로 제안된 패치 세트에도 이 문제가 발생하지 않습니다.
원하는 터보 스타트 데이터 외에도 추가 MSR 레지스터는 이 이론을 확인하거나 거부하는 데 도움이 됩니다.

이러한 테스트를 수행하고 결과를 질문에 편집하시겠습니까?

. 천천히 한 후. 테스트 를 해보세요 time python3 -c "for i in range(10000000): pass". 10~100배 정도 더 길게 만들고, 실행되는 동안 grep MHz /proc/cpuinfo. 모든 CPU가 약 600MHz에서 멈춰 있습니까? (원본 게시물에서는 600MHz가 단지 유휴 상태였기 때문에 발생한 것인지, 아니면 거기에 갇혀 있는지 명확하지 않습니다.)

. 새로 부팅한 후 집중적인 작업을 수행하기 전에 작은 테스트가 0.2초보다 빠르게 실행됩니까(아마도 더 많은 유효 숫자를 추출하려면 10~100배 더 길게 사용)? 그리고 어떤 CPU 주파수를 얻나요? IE는 이미 나열한 2800MHz였으며 약 0.75 X 3800MHz였습니다. 아니면 CPU가 실제로 3800MHz로 이동합니까(다른 CPU의 활동과 터보가 활성화된 경우에 따라 다름).

. 주파수 잠금을 방지하기 위해 4.2RC(릴리스 후보) 시리즈부터 intel_pstate 드라이버에 패치가 추가되었습니다. 위의 테스트 1의 결과가 주파수가 고정된 것이라면 커널을 사용해 보시겠습니까?4.3RC4. 문제(BIOS 문제와 다름)가 일시 중지와 관련되어 있기 때문에 귀하의 경우에는 잠금이 해제되지 않을 수 있습니다.

. 위 테스트 1의 결과로 주파수가 잠겨 있으면 잠금이 해제됩니까?:

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

모든 CPU가 전환되도록 5초 동안 기다립니다. 유휴 CPU가 실제로 intel_pstate 드라이버를 통과하는 데 최대 4초가 걸릴 수 있습니다.

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

그리고 잠금이 해제되면 원래 값의 약 0.75배로 유지됩니까?

BIOS 설정도 확인하십시오. 그러나 나는 당신이 무엇을 찾고 있는지 모르겠습니다.

/var/log/kern.log열 관련 메시지가 있는지 파일을 검토하시기 바랍니다 .

다음에서 감속 전후 출력을 제공하는 것이 유용합니다.

sudo turbostat -d sleep 10

또는 이전 버전의 Turbostat의 경우 여전히 다음과 같을 수 있습니다.

sudo turbostat -v sleep 10

또 다른 MSR 레지스터도 필요합니다( sudo modprobe msr먼저 부팅할 때마다 한 번씩 필요함).

sudo rdmsr -a 0x19a

또한 다음의 출력도 필요합니다.

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

Turbostat을 얻으려면 패키지를 설치해야 할 수도 linux-tools있으며 해당 버전의 Turbostat이 충분히 새롭지 않은 경우 먼저 설치해야 할 수도 있습니다 sudo modprobe msr.

테스트 결과, 근본 문제는 프로세서가 과열되어 자체 보호를 위해 자체적으로 축소되는 것 같습니다. 하지만 이 상태에서는 lock이 걸리고 복구되지 않는 것 같습니다. 저는 그 이유를 매우 알고 싶습니다. 위에서 언급한 터보스탯 테스트를 통해 어느 정도 통찰력을 얻을 수 있을 것입니다. 특히 (내 생각에는) 우리는 MSR_IA32_PACKAGE_THERM_STATUS다양한 조건과 다양한 운전자에 대한 라인을 이해하고 해독하는 데 관심이 있습니다. 우리는 또한 IA32_CLOCK_MODULATION MSR(0x19A)을 이해하고 디코딩하는 데 관심이 있습니다.

테스트 결과, 문제는 intel_pstate 주파수 스케일링 드라이버에서만 발생하고 acpi cpufreq 주파수 스케일링 드라이버에서는 발생하지 않는 것으로 보입니다. 나는 한동안 intel_pstate 드라이버가 기본적으로 사용되었다고 생각했습니다.

계속해서 작업을 진행하려면 intel_pstate 주파수 스케일링 드라이버 사용을 비활성화할 수 있습니다. 파일을 편집하고 /etc/default/grub아마도 먼저 복사본을 만든 다음 intel_pstate=disable해당 줄에 추가하십시오 GRUB_CMDLINE_LINUX_DEFAULT. 다음은 내 컴퓨터 중 하나의 예입니다.

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

sudo로 편집을 수행해야 하며 sudo update-grub나중에 실행한 다음 재부팅해야 합니다.

그러나 시간이 허락하는 한 계속해서 intel_pstate 드라이버 문제를 조사하는 데 도움을 주시면 감사하겠습니다. 제가 액세스할 수 있는 컴퓨터에는 이 문제가 없기 때문입니다.

linux-tools 패키지에 문제가 있다면 내 웹사이트에 있는 터보스탯(turbostat)이 작동할 것입니다. 더블유 더블유 더블유 도트 smythies dot com /~doug/linux/intel_pstate/energy/turbostat. 이는 커널 소스에도 포함되어 있으므로 컴파일하기만 하면 됩니다.

편집: 14개의 터보 스타트 샘플에서 관찰한 내용:

14개의 터보 스타트 샘플은 열 관련 문제를 보여줍니다. 유휴 CPU 클럭 주파수와 마찬가지로 유휴 온도도 약간 높은 것 같습니다. 잠긴 상태 이전에는 어느 정도 다양한 수준의 열 조절이 있는 것으로 보입니다. 14개 샘플의 요약:

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 

답변2

시스템 BIOS는 열 과부하로부터 자신을 보호하기 위한 방법으로 클럭 변조를 사용하고 있습니다. 시스템 성능을 공칭 최대값의 75%로 약간 줄이려고 하지만 실제로는 성능이 최소값의 75%로 제한됩니다. 또한 일단 클럭 변조가 실행되면 재설정되지 않는 것으로 보입니다. 현재 형식에서 intel_pstate CPU 주파수 스케일링 드라이버는 근본적으로 클럭 변조와 호환되지 않으며 실제 로드에 관계없이 항상 대상 pstate를 최소로 구동합니다. 그러나 acpi-cpufreq CPU 스케일링 드라이버는 클럭 변조와 잘 작동하며 권장되는 드라이버입니다.

그게 전부인가요? 아니요. 커널 4.5부터 intel_pstate 드라이버는 CPU ID를 기반으로 일부 변경 사항이 있습니다. 즉, 일부 프로세서는 클럭 변조와 호환되는 로드 기반 알고리즘에 의해 제어되고 일부 프로세서는 성능 기반 알고리즘에 의해 제어됩니다. , 이는 클록 변조와 호환되지 않습니다. 귀하의 프로세서 ID=0X3C는 여전히 성능 기반입니다.

관련 정보