ЦП, вызывающий низкую играющую производительность

Хорошо, во-первых, английский язык не является моим родным языком, таким образом, я приношу извинения за любую плохую формулировку.

Во-вторых, я все еще узнаю о Linux, Ubuntu 18.04, чтобы быть более конкретным. Это - первый раз, когда я использую эту ОС, и мое знание о терминале, командах, пакеты являются все еще очень простыми. И вещи, которые I CAN, я не уверен, что понимаю их полностью. Терпение.

Так, к проблеме. Я решил попробовать некоторые игры недавно и к моему удивлению некоторые игры, в которые я мог играть, прежде на W10 неиграемый дуэт к некоторой проблеме производительности. Эти игры запускаются на уровне 35-45 кадр/с и внезапно спадают до 1-15 кадр/с (да, один кадр/с!).

Сначала я думал, что это могло быть что-то связанное с gpu, драйверы, возможно, но не, я получил последние драйверы от некоторого ppa. Смешанный с графическим качеством игр, но я начал замечать, что только больше требования CPU испытывало эти затруднения.

Затем я начал искать способы отслеживать использование CPU. Системный монитор не был достаточно, таким образом, я нашел некоторых watch команды, которые отслеживают скорость ЦП и температуру ЦП. Я должен был установить lm-sensors для температуры.

Наконец, кажется, что тонкость моего ноутбука заставляет его перегреться и затем дроссели CPU, делая эти плачевные падения кадр/с. Я завершил это на основе внезапных падений скорости ЦП, поскольку температуры становились высокими. Но я на самом деле не могу сказать, состояли ли температуры, которые я получил, в том, ЧТО высоко, максимум, который я получил, был вокруг 80°C на ЦП. И также, вентилятор, кажется, работает правильно, это обошло 5 000 об/мин.

Для улучшения этого, я пытался изменить управлять параметр cpufreq от powersave до производительности. Хотя это не зафиксировало отбрасывание производительности, я заметил некоторое улучшение. Скорость ЦП спала до 1 600 МГц вместо 600 МГц. Затем это получило меня задающийся вопросом, должен ли я установить минимальную частоту ЦП или деактивировать масштабирование. Но я боюсь, что это могло ведомый к перегреванию и затем расплавлению его. Я мог также попробовать некоторую более прохладную поддержку, но я не уверен в эффективности тех.

Так, кто-либо может пролить некоторый свет в этом?

sudo lshw -c cpu

   descrição: CPU
   produto: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
   fabricante: Intel Corp.
   ID físico: 36
   informações do barramento: cpu@0
   versão: Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz
   serial: To Be Filled By O.E.M.
   slot: U3E1
   tamanho: 2228MHz
   capacidade: 3100MHz
   largura: 64 bits
   clock: 100MHz

lspci | grep -i VGA

00:02.0 VGA compatible controller: Intel Corporation HD Graphics 620 (rev 02)

lspci | grep -i 3D

01:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 940MX] (rev a2)

xandr | grep connected

eDP-1-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 309mm x 174mm

tomaz@tomaz-Inspiron-7460:~$ stress-ng -t 5m -v --tz -c 4

stress-ng: debug: [15960] 4 processors online, 4 processors configured
stress-ng: info:  [15960] dispatching hogs: 4 cpu
stress-ng: debug: [15960] cache allocate: default cache size: 3072K
stress-ng: debug: [15960] starting stressors
stress-ng: debug: [15961] stress-ng-cpu: started [15961] (instance 0)
stress-ng: debug: [15962] stress-ng-cpu: started [15962] (instance 1)
stress-ng: debug: [15960] 4 stressors spawned
stress-ng: debug: [15961] stress-ng-cpu using method 'all'
stress-ng: debug: [15964] stress-ng-cpu: started [15964] (instance 3)
stress-ng: debug: [15963] stress-ng-cpu: started [15963] (instance 2)
stress-ng: debug: [15964] stress-ng-cpu using method 'all'
stress-ng: debug: [15963] stress-ng-cpu using method 'all'
stress-ng: debug: [15962] stress-ng-cpu using method 'all'
stress-ng: debug: [15961] stress-ng-cpu: exited [15961] (instance 0)
stress-ng: debug: [15960] process [15961] terminated
stress-ng: debug: [15963] stress-ng-cpu: exited [15963] (instance 2)
stress-ng: debug: [15962] stress-ng-cpu: exited [15962] (instance 1)
stress-ng: debug: [15960] process [15962] terminated
stress-ng: debug: [15960] process [15963] terminated
stress-ng: debug: [15964] stress-ng-cpu: exited [15964] (instance 3)
stress-ng: debug: [15960] process [15964] terminated
stress-ng: info:  [15960] successful run completed in 300.05s (5 mins, 0.05 secs)
stress-ng: info:  [15960] cpu:
stress-ng: info:  [15960]          pch_skylake   59.25 °C
stress-ng: info:  [15960]                 B0D4   62.12 °C
stress-ng: info:  [15960]      INT3400 Thermal   48.08 °C
stress-ng: info:  [15960]                 SEN2   50.81 °C
stress-ng: info:  [15960]                 TMEM   50.15 °C
stress-ng: info:  [15960]         x86_pkg_temp   54.88 °C
stress-ng: info:  [15960]               acpitz   50.61 °C
stress-ng: info:  [15960]                 SEN1   50.78 °C
2
задан 4 November 2018 в 23:21

1 ответ

Необходимо смочь ограничить верхнюю частоту ЦП, к, например, 65%, с помощью этой команды:

echo 65 | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct

Вышеупомянутое предполагает использование intel_pstate драйвера частотного масштабирования ЦП которым необходимо быть по умолчанию. Проверять:

doug@s15:~/temp$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate
intel_pstate

Очень хороший инструмент для использования для контроля вещей является турбостатом, который включен в linux-tools-common пакет.

Ниже пример, где мой компьютер в большой степени загружается, и температура корпуса процессора, достиг его самая высокая точка. В другом терминале я затем ограничиваю частоту ЦП (показанный далее вниз), и можно наблюдать частоту, температуру и отбрасывание мощности:

doug@s15:~/temp$ sudo turbostat --quiet --Summary --show Busy%,Bzy_MHz,PkgTmp,PkgWatt --interval 15
Busy%   Bzy_MHz PkgTmp  PkgWatt
100.00  3500    79      63.91
100.00  3500    78      63.91
100.00  3500    78      63.91
100.00  3500    78      63.88
100.00  3500    79      63.89
100.00  3500    79      63.90
100.00  2755    70      45.86
100.00  2500    68      39.42
100.00  2500    67      39.26
100.00  2500    66      39.10
100.00  2500    65      39.07
100.00  2500    65      38.94
100.00  2500    64      38.93
100.00  2500    65      38.92

Что было сделано в другом терминале:

doug@s15:~$ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
100
doug@s15:~$ echo 65 | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct
65
doug@s15:~$ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
65

Примечание: частота ЦП на 2 500 МГц является округленным значением ближайших на 100 МГц (ближайший pstate 25) к 3 800 * 0.65. Но эй, турбостат показал 3 500 МГц прежде. Почему? Поскольку все ядра были заняты, и поэтому максимальная частота ЦП была ограничена 3 500 МГц, внутренними к самому процессору. Эта информация также доступна через турбостат, не используя quiet директива. Пример:

doug@s15:~/temp$ sudo turbostat --Summary --show Busy%,Bzy_MHz,PkgTmp,PkgWatt --interval 15
... [snip]...
cpu4: MSR_PLATFORM_INFO: 0x100070012200
16 * 100.0 = 1600.0 MHz max efficiency frequency
34 * 100.0 = 3400.0 MHz base frequency
cpu4: MSR_IA32_POWER_CTL: 0x0004005d (C1E auto-promotion: DISabled)
cpu4: MSR_TURBO_RATIO_LIMIT: 0x23242526
35 * 100.0 = 3500.0 MHz max turbo 4 active cores
36 * 100.0 = 3600.0 MHz max turbo 3 active cores
37 * 100.0 = 3700.0 MHz max turbo 2 active cores
38 * 100.0 = 3800.0 MHz max turbo 1 active cores
...[snip]...

Существует много способов ограничить температуры ЦП меньше, чем экстремумами автоматически. Каждый с thermald, и у меня есть сценарий конфигурации в качестве примера в другом ответе.

0
ответ дан 2 December 2019 в 06:51

Другие вопросы по тегам:

Похожие вопросы: