
Выполнение особенно ресурсоемкой задачи на моем компьютере (Tecra W50) дольше нескольких секунд приводит к тому, что он становится очень медленным. Производительность не возвращается к норме после завершения задачи.
Запуск
time python3 -c "for i in range(10000000): pass"
печати за 0,2 секунды до того, как компьютер начнет работать медленно, но за 2,1 секунды после этого.Перезагрузка решает проблему, пока я снова не запущу сложную задачу.
dmesg
не показывает ничего за последние 2 часаhtop
показывает низкое использование ресурсов, как ЦП, так и ОЗУ.Я не делал dist-upgrade недавно, но установил новое ядро (3.16.0-38-generic)
Как мне подойти к решению этой проблемы?
РЕДАКТИРОВАТЬ:
На основе проницательного комментария Харальда я сделал дамп /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
:
Ядро ЦП Avg_MHz %Занято Bzy_MHz TSC_MHz SMI ЦП%c1 ЦП%c3 ЦП%c6 ЦП%c7 ЯдроTmp ПакетTmp Пакет%pc2 Пакет%pc3 Пакет%pc6 Пакет%pc7 ПакетWatt 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 Ядро ЦП Avg_MHz %Занято Bzy_MHz TSC_MHz SMI ЦП%c1 ЦП%c3 ЦП%c6 ЦП%c7 ЯдроTmp ПакетTmp Пакет%pc2 Пакет%pc3 Пакет%pc6 Пакет%pc7 ПакетWatt 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 Ядро ЦП Avg_MHz %Занято Bzy_MHz TSC_MHz SMI ЦП%c1 ЦП%c3 ЦП%c6 ЦП%c7 ЯдроTmp ПакетTmp Пакет%pc2 Пакет%pc3 Пакет%pc6 Пакет%pc7 ПакетWatt 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 Ядро ЦП Avg_MHz %Занято Bzy_MHz TSC_MHz SMI ЦП%c1 ЦП%c3 ЦП%c6 ЦП%c7 ЯдроTmp ПакетTmp Пакет%pc2 Пакет%pc3 Пакет%pc6 Пакет%pc7 ПакетWatt 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 Ядро ЦП Avg_MHz %Занято Bzy_MHz TSC_MHz SMI ЦП%c1 ЦП%c3 ЦП%c6 ЦП%c7 ЯдроTmp ПакетTmp Пакет%pc2 Пакет%pc3 Пакет%pc6 Пакет%pc7 ПакетWatt 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 Ядро ЦП Avg_MHz %Занято Bzy_MHz TSC_MHz SMI ЦП%c1 ЦП%c3 ЦП%c6 ЦП%c7 ЯдроTmp ПакетTmp Пакет%pc2 Пакет%pc3 Пакет%pc6 Пакет%pc7 ПакетWatt 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 Ядро ЦП Avg_MHz %Занято Bzy_MHz TSC_MHz SMI ЦП%c1 ЦП%c3 ЦП%c6 ЦП%c7 ЯдроTmp ПакетTmp Пакет%pc2 Пакет%pc3 Пакет%pc6 Пакет%pc7 ПакетWatt 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 Ядро ЦП Avg_MHz %Занято Bzy_MHz TSC_MHz SMI ЦП%c1 ЦП%c3 ЦП%c6 ЦП%c7 ЯдроTmp ПакетTmp Пакет%pc2 Пакет%pc3 Пакет%pc6 Пакет%pc7 ПакетWatt 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 Ядро ЦП Avg_MHz %Занято Bzy_MHz TSC_MHz SMI ЦП%c1 ЦП%c3 ЦП%c6 ЦП%c7 ЯдроTmp ПакетTmp Пакет%pc2 Пакет%pc3 Пакет%pc6 Пакет%pc7 ПакетWatt 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 Ядро ЦП Avg_MHz %Занято Bzy_MHz TSC_MHz SMI ЦП%c1 ЦП%c3 ЦП%c6 ЦП%c7 ЯдроTmp ПакетTmp Пакет%pc2 Пакет%pc3 Пакет%pc6 Пакет%pc7 ПакетWatt 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 Ядро ЦП Avg_MHz %Занято Bzy_MHz TSC_MHz SMI ЦП%c1 ЦП%c3 ЦП%c6 ЦП%c7 ЯдроTmp ПакетTmp Пакет%pc2 Пакет%pc3 Пакет%pc6 Пакет%pc7 ПакетWatt 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 Ядро ЦП Avg_MHz %Занято Bzy_MHz TSC_MHz SMI ЦП%c1 ЦП%c3 ЦП%c6 ЦП%c7 ЯдроTmp ПакетTmp Пакет%pc2 Пакет%pc3 Пакет%pc6 Пакет%pc7 ПакетWatt 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 Ядро ЦП Avg_MHz %Занято Bzy_MHz TSC_MHz SMI ЦП%c1 ЦП%c3 ЦП%c6 ЦП%c7 ЯдроTmp ПакетTmp Пакет%pc2 Пакет%pc3 Пакет%pc6 Пакет%pc7 ПакетWatt 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 Ядро ЦП Avg_MHz %Занято Bzy_MHz TSC_MHz SMI ЦП%c1 ЦП%c3 ЦП%c6 ЦП%c7 ЯдроTmp ПакетTmp Пакет%pc2 Пакет%pc3 Пакет%pc6 Пакет%pc7 ПакетWatt 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:отключено cooling_device0/power/runtime_enabled:отключено охлаждающее_устройство0/питание/время_активных_детей:0 охлаждающее_устройство0/мощность/время_активности_выполнения:0 grep: cooling_device0/power/autosuspend_delay_ms: Ошибка ввода/вывода cooling_device0/power/runtime_status:не поддерживается охлаждение_устройство0/мощность/время_использования:0 охлаждающее_устройство0/питание/время_выполнения_приостановлено:0 охлаждающее_устройство0/текущее_состояние:0 охлаждающее_устройство0/макс_состояние:10 охлаждающее_устройство1/тип:Процессор охлаждающее_устройство1/питание/управление:авто охлаждение_устройство1/питание/асинхронный:отключено охлаждение_устройство1/питание/время_выполнения:отключено охлаждающее_устройство1/питание/время_активных_детей:0 охлаждающее_устройство1/питание/время_активного_выполнения:0 grep: cooling_device1/power/autosuspend_delay_ms: Ошибка ввода/вывода cooling_device1/power/runtime_status:не поддерживается охлаждение_устройство1/мощность/время_использования:0 охлаждающее_устройство1/питание/время_выполнения_приостановки:0 охлаждающее_устройство1/текущее_состояние:0 охлаждающее_устройство1/макс_состояние:10 cooling_device2/type:Процессор охлаждение_устройство2/питание/управление:авто охлаждение_устройство2/питание/асинхронный:отключено охлаждение_устройство2/питание/время_выполнения:отключено охлаждающее_устройство2/питание/время_активных_детей:0 охлаждающее_устройство2/питание/время_активного_выполнения:0 grep: cooling_device2/power/autosuspend_delay_ms: Ошибка ввода/вывода cooling_device2/power/runtime_status:не поддерживается охлаждение_устройство2/мощность/время_использования:0 cooling_device2/power/runtime_suspended_time:0 охлаждающее_устройство2/текущее_состояние:0 охлаждающее_устройство2/макс_состояние:10 cooling_device3/type:Процессор охлаждение_устройство3/питание/управление:авто охлаждение_устройство3/питание/асинхронный:отключено охлаждение_устройство3/питание/время_выполнения:отключено охлаждающее_устройство3/питание/время_активных_детей:0 охлаждающее_устройство3/питание/время_активного_выполнения:0 grep: cooling_device3/power/autosuspend_delay_ms: Ошибка ввода/вывода cooling_device3/power/runtime_status:не поддерживается охлаждение_устройство3/мощность/время_использования:0 cooling_device3/power/runtime_suspended_time:0 охлаждающее_устройство3/текущее_состояние:0 охлаждающее_устройство3/макс_состояние:10 cooling_device4/type:Процессор охлаждение_устройство4/питание/управление:авто охлаждение_устройство4/питание/асинхронный:отключено охлаждение_устройство4/питание/время_выполнения:отключено охлаждающее_устройство4/мощность/время_выполнения_активных_детей:0 охлаждающее_устройство4/питание/время_активного_выполнения:0 grep: cooling_device4/power/autosuspend_delay_ms: Ошибка ввода/вывода cooling_device4/power/runtime_status:не поддерживается охлаждение_устройство4/мощность/время_использования:0 cooling_device4/power/runtime_suspended_time:0 охлаждающее_устройство4/текущее_состояние:0 охлаждающее_устройство4/макс_состояние:10 cooling_device5/type:Процессор охлаждение_устройство5/питание/управление:авто охлаждение_устройство5/питание/асинхронный:отключено cooling_device5/power/runtime_enabled:отключено охлаждающее_устройство5/мощность/время_выполнения_активных_детей:0 охлаждающее_устройство5/мощность/время_активного_выполнения:0 grep: cooling_device5/power/autosuspend_delay_ms: Ошибка ввода/вывода cooling_device5/power/runtime_status:не поддерживается охлаждение_устройство5/мощность/время_использования:0 cooling_device5/power/runtime_suspended_time:0 охлаждающее_устройство5/текущее_состояние:0 охлаждающее_устройство5/макс_состояние:10 cooling_device6/type:Процессор охлаждение_устройство6/питание/управление:авто охлаждение_устройство6/питание/асинхронный:отключено cooling_device6/power/runtime_enabled:отключено охлаждение_устройство6/питание/время_активных_детей:0 cooling_device6/power/время_активного_выполнения:0 grep: cooling_device6/power/autosuspend_delay_ms: Ошибка ввода/вывода cooling_device6/power/runtime_status:не поддерживается охлаждение_устройство6/мощность/время_использования:0 cooling_device6/power/runtime_suspended_time:0 охлаждающее_устройство6/текущее_состояние:0 охлаждающее_устройство6/макс_состояние:10 cooling_device7/type:Процессор охлаждение_устройство7/питание/управление:авто охлаждение_устройство7/питание/асинхронный:отключено cooling_device7/power/runtime_enabled:отключено охлаждение_устройство7/питание/время_активных_детей:0 cooling_device7/power/время_активного_выполнения:0 grep: cooling_device7/power/autosuspend_delay_ms: Ошибка ввода/вывода cooling_device7/power/runtime_status:не поддерживается охлаждение_устройство7/мощность/время_использования:0 cooling_device7/power/runtime_suspended_time:0 охлаждающее_устройство7/текущее_состояние:0 охлаждающее_устройство7/макс_состояние:10 охлаждающее_устройство8/тип:ЖК охлаждение_устройство8/питание/управление:авто охлаждение_устройство8/питание/асинхронный:отключено cooling_device8/power/runtime_enabled:отключено охлаждающее_устройство8/мощность/время_выполнения_активных_детей:0 охлаждающее_устройство8/питание/время_активного_выполнения:0 grep: cooling_device8/power/autosuspend_delay_ms: Ошибка ввода/вывода cooling_device8/power/runtime_status:не поддерживается охлаждение_устройство8/мощность/время_использования:0 cooling_device8/power/runtime_suspended_time:0 охлаждающее_устройство8/текущее_состояние:0 охлаждающее_устройство8/макс_состояние:100 охлаждающее_устройство9/тип:intel_powerclamp охлаждение_устройство9/питание/управление:авто охлаждение_устройство9/питание/асинхронный:отключено cooling_device9/power/runtime_enabled:отключено охлаждающее_устройство9/мощность/время_выполнения_активных_детей:0 охлаждающее_устройство9/питание/время_активного_выполнения:0 grep: cooling_device9/power/autosuspend_delay_ms: Ошибка ввода/вывода cooling_device9/power/runtime_status:не поддерживается охлаждение_устройство9/мощность/время_использования:0 cooling_device9/power/runtime_suspended_time:0 охлаждающее_устройство9/текущее_состояние:-1 охлаждающее_устройство9/макс_состояние:50 thermal_zone0/режим:включено thermal_zone0/темп:83000 thermal_zone0/тип:acpitz thermal_zone0/power/control:авто thermal_zone0/power/async:отключено thermal_zone0/power/runtime_enabled:отключено thermal_zone0/power/runtime_active_kids:0 thermal_zone0/power/runtime_active_time:0 grep: thermal_zone0/power/autosuspend_delay_ms: Ошибка ввода/вывода thermal_zone0/power/runtime_status:не поддерживается thermal_zone0/power/runtime_usage:0 thermal_zone0/power/runtime_suspended_time: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/passive:0 thermal_zone1/темп:51000 thermal_zone1/тип:x86_pkg_temp thermal_zone1/power/control:авто thermal_zone1/power/async:отключено thermal_zone1/power/runtime_enabled:отключено thermal_zone1/power/runtime_active_kids:0 thermal_zone1/power/runtime_active_time:0 grep: thermal_zone1/power/autosuspend_delay_ms: Ошибка ввода/вывода thermal_zone1/power/runtime_status:не поддерживается thermal_zone1/power/runtime_usage:0 thermal_zone1/power/runtime_suspended_time: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 сон 10 турбостат версии 4.7 17 июня 2015 г. - Лен Браун CPUID(0): подлинные уровни CPUID Intel 13; семейство:модель:степпинг 0x6:3c:3 (6:60:3) CPUID(6): APERF, DTS, PTM, EPB RAPL: 5578 сек. Диапазон счетчика джоулей, при 47 Вт cpu5: MSR_NHM_PLATFORM_INFO: 0x80838f3011c00 8 * 100 = 800 МГц максимальная эффективная частота 28 * 100 = 2800 МГц базовая частота cpu5: MSR_IA32_POWER_CTL: 0x0004005d (автоматическое продвижение C1E: ОТКЛЮЧЕНО) cpu5: MSR_TURBO_RATIO_LIMIT: 0x24242526 36 * 100 = 3600 МГц макс турбо 4 активных ядра 36 * 100 = 3600 МГц макс турбо 3 активных ядра 37 * 100 = 3700 МГц макс турбо 2 активных ядра 38 * 100 = 3800 МГц макс турбо 1 активных ядер cpu5: MSR_CONFIG_TDP_NOMINAL: 0x0000001c (базовое_соотношение=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, demote-C3, demote-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 (47 Вт TDP, RAPL 0 - 0 Вт, 0,000000 сек.) cpu0: MSR_PKG_POWER_LIMIT: 0x4281d600dc8178 (разблокирован) cpu0: PKG Limit #1: ВКЛЮЧЕНО (47,000000 Вт, 28,000000 с, зажим ОТКЛЮЧЕН) cpu0: PKG Limit #2: ВКЛЮЧЕНО (58,750000 Вт, 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 Limit: ОТКЛЮЧЕНО (0,000000 Вт, 0,000977 с, зажим ОТКЛЮЧЕН) 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) Ядро ЦП Avg_MHz %Занято Bzy_MHz TSC_MHz SMI ЦП%c1 ЦП%c3 ЦП%c6 ЦП%c7 ЯдроTmp ПакетTmp Пакет%pc2 Пакет%pc3 Пакет%pc6 Пакет%pc7 ПакетWatt 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 1с 1с 1с 1с 1с 1с 1с 1с
Там нет ничего kern.log
о температурах
решение1
Я хотел бы попытаться помочь вам с вашей проблемой.
Я хотел бы, чтобы вы попытались помочь мне лучше понять вашу конкретную проблему.
Состояние, когда относительно новый процессор Intel блокируется на частоте около 600 МГц, тогда как минимальное pstate для пакета составляет 800 МГц, наблюдалось много раз. Однако мне известно только о состоянии, возникшем после возобновления работы из режима ожидания в оперативную память. Более того, состояние (примерно 75% от того, что было запрошено, а не блокировка на этой частоте) (правильно или неправильно) было отнесено к проблеме BIOS, особенно в Dell E6320.
EDIT: Теория: В текущей версии драйвера intel_pstate любое включение теплового дросселирования через Clock Modulation приведет к тому, что сообщаемая частота ЦП будет заблокирована на какой-то очень низкой частоте.
Драйвер acpi-cpufreq не страдает от этой проблемы. Обратите внимание, что предлагаемый набор исправлений для драйвера intel_pstate также не страдает от этой проблемы.
В дополнение к желаемым данным турбостата, дополнительный регистр MSR поможет подтвердить или опровергнуть эту теорию.
Хотели бы вы провести эти тесты и отредактировать результаты в своем вопросе:
. После замедления. Проведите time python3 -c "for i in range(10000000): pass"
тест. Сделайте его примерно в 10 или 100 раз длиннее, и во время его работы сделайте grep MHz /proc/cpuinfo
. Все ли процессоры застряли на частоте около 600 МГц? (из вашего исходного сообщения мне не ясно, были ли 600 МГц просто из-за того, что он простаивал, или он застрял там.)
. После новой загрузки и перед любой интенсивной задачей ваш маленький тестовый файл работает быстрее, чем 0,2 секунды (возможно, используйте в 10 или 100 раз больше, чтобы извлечь больше значащих цифр)? И какие частоты процессора вы получаете? IE был 2800 МГц, которые вы уже перечислили, около 0,75 X 3800 МГц. или процессор фактически перейдет на 3800 МГц (в зависимости от активности других процессоров и включенного турбо).
. Для предотвращения блокировки частоты был добавлен патч к драйверу intel_pstate начиная с серии 4.2RC (релиз-кандидат). Если результатом теста 1 выше было то, что частота заблокирована, вы бы хотели попробовать ядро4.3RC4. В вашем случае он может не разблокироваться, поскольку проблема (в отличие от проблемы с BIOS) была связана с режимом ожидания.
. Если результат теста 1 выше показывает, что частота заблокирована, то разблокирует ли это ее?:
$ echo "50" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct
50
подождите 5 секунд, чтобы убедиться, что все ЦП переключились. Для бездействующего ЦП может потребоваться до 4 секунд, чтобы фактически запустить проход через драйвер intel_pstate.
$ 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 . *
Вам может потребоваться установить linux-tools
пакет, чтобы получить Turbostat, и если эта версия Turbostat недостаточно новая, вам может потребоваться сделать это в sudo modprobe msr
первую очередь.
Из ваших тестов следует, что корень проблемы в том, что ваш процессор перегревается и сам по себе снижает производительность, чтобы защитить себя. Однако, похоже, он блокируется в этом состоянии и не восстанавливается. Мне бы очень хотелось понять, почему, и упомянутые выше тесты турбостата дадут некоторое представление. В частности (я думаю) мы заинтересованы в понимании и расшифровке строки MSR_IA32_PACKAGE_THERM_STATUS
для различных условий и различных драйверов. Мы также заинтересованы в понимании и расшифровке MSR IA32_CLOCK_MODULATION (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, который должен работать. double u double u double u dot smythies dot com /~doug/linux/intel_pstate/energy/turbostat. Он также включен в исходный код ядра, вам просто нужно будет его скомпилировать.
EDIT: Наблюдения по 14 образцам турбостата:
14 образцов турбостата показывают проблемы, связанные с температурой. Температура простоя кажется немного высокой, как и тактовая частота процессора в режиме ожидания. Кажется, что есть некоторая переменная степень теплового дросселирования перед состоянием блокировки. Сводка по 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 принципиально несовместим с модуляцией тактовой частоты и всегда будет устанавливать целевое pstate на минимум независимо от фактической нагрузки. Однако драйвер масштабирования ЦП acpi-cpufreq отлично работает с модуляцией тактовой частоты и является рекомендуемым для вас драйвером.
Это вся история? Нет. По-моему, начиная с Kernel 4.5 драйвер intel_pstate имеет некоторые изменения, основанные на идентификаторе ЦП, так что некоторые процессоры будут управляться алгоритмами на основе нагрузки, которые совместимы с модуляцией тактовой частоты, а некоторые процессоры будут управляться алгоритмами на основе производительности, которые несовместимы с модуляцией тактовой частоты. Ваш процессор, ID=0X3C, по-прежнему будет работать на основе производительности.