У меня Ubuntu 19.04 со всеми обновлениями, установленными с процессором Intel i9 9900k и материнской платой Asrock H370M pro4, она обновлена до последней версии BIOS.
Я не могу заставить Turbo Boost работать для однопоточных нагрузок (которых у меня достаточно, и повышение в Ghz было бы очень полезно). Если я запускаю некую загрузку по одному потоку (и могу подтвердить, что загружается только одно ядро), например :
sysbench --threads=1 --time=1000 --test=cpu run
Я вижу, что все ядра скачут до 4,7 ГГц. Я ожидаю, что ядро с нагрузкой ниже 100% должно подскочить до 5,0 ГГц
У меня включено турбонаддув:
$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
0
(если я отключу его, скорость процессора не поднимется выше 3,7)
Я читал, что иногда некоторые инструменты не сообщают точную частоту, и на самом деле может работать турбо-буст - я пробовал множество инструментов, но ни один из них не отличался (все ядра с максимальной скоростью 4.7 при загрузке одного потока ).
turbostat
, например, правильно идентифицирует параметры турбобуста:
cpu1: MSR_IA32_POWER_CTL: 0x003c005d (C1E auto-promotion: DISabled)
cpu1: MSR_TURBO_RATIO_LIMIT: 0x2f2f2f3030313232
47 * 100.0 = 4700.0 MHz max turbo 8 active cores
47 * 100.0 = 4700.0 MHz max turbo 7 active cores
47 * 100.0 = 4700.0 MHz max turbo 6 active cores
48 * 100.0 = 4800.0 MHz max turbo 5 active cores
48 * 100.0 = 4800.0 MHz max turbo 4 active cores
49 * 100.0 = 4900.0 MHz max turbo 3 active cores
50 * 100.0 = 5000.0 MHz max turbo 2 active cores
50 * 100.0 = 5000.0 MHz max turbo 1 active cores
Тем не менее, при однопоточной нагрузке он также показывает, что все ядра имеют частоту 4,7 ГГц, несмотря на то, что загружен только один:
$cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
4815705
4721193
4799105
4772830
4794879
4782198
4891662
4714048
4749921
4737188
4801009
4859085
4734327
4735355
4747906
4826031
В BIOS нет настроек, чтобы все ядра всегда работали на максимальной скорости (без оптимизации ядра или чего-либо, что удаленно связано с ядрами), я попытался поиграть со всеми возможными настройками без изменений.
Я пытался изменить процессор на производительность безрезультатно - только все ядра постоянно заблокированы на уровне 4.7, а не по требованию.
Что интересно, если я отключу ядра с помощью echo 0 | sudo tee /sys/devices/system/cpu/cpu1/online
и оставлю только 2 ядра в сети - они на самом деле достигают 5,0 ГГц, но это определенно не является устойчивым решением.
Посоветуйте, пожалуйста, что еще можно сделать
Заранее спасибо!
Получить самую точную текущую скорость ЦП для каждого базового использования:
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
1367598
1617138
1425100
1719268
1414236
1545359
1295130
1163015
существует три подразумеваемых десятичных разряда так скорость первого ядра, о которой сообщают, поскольку 1367598
действительно 1 367.598 МГц. При использовании этого метода, необходимо видеть ядро при загрузке с верхняя частота, чем остальные.
у меня был незначительный сбой приблизительно в течение года, куда все процессоры будут работать близко к макс. частоте ни при какой загрузке. Затем под видеопотоком они все спали бы приблизительно до 50%-й частоты, и загрузка составит приблизительно 20 - 25%. Этот незначительный сбой сохранялся до прошлой недели, когда я установил ядро 4.14.140
. По крайней мере, теперь кажется, что незначительного сбоя не стало.
Ваш компьютер выполняет настольную версию Ubuntu со всем тем материалом GUI? Проблема - то, что "неактивный" на настольном компьютере на самом деле не и что Вы наблюдаете в своих списках частот ЦП, результат других ядер, просыпающихся, чтобы сделать другие задачи.
Мой основной тестовый компьютер является сервером Ubuntu 16.04 (никакой GUI) с более старым i7-2600K. "неактивный" является лучше, чем для рабочего стола, но все еще большим. Однако, если я отключаю несколько "неактивных" сервисов, становится намного лучше, и мы начинаем наблюдать большое количество времени, проведенное на максимальной одной активной частоте ядра процессора, когда мы впоследствии применяем единственную 100%-ю загрузку (12,5% 1 из 8 центральных процессоров в предельной нагрузке):
cpu5: MSR_IA32_POWER_CTL: 0x0004005d (C1E auto-promotion: DISabled)
cpu5: 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
doug@s15:~/temp$ cat set_cpu_turn_off_services
#! /bin/bash
# Turn off some services to try to get "idle" to be more "idle"
sudo systemctl stop mysql.service
sudo systemctl stop apache2.service
sudo systemctl stop nmbd.service
sudo systemctl stop smbd.service
sudo systemctl stop cron.service
sudo systemctl stop winbind.service
sudo systemctl stop apt-daily.timer
sudo systemctl stop libvirtd.service
doug@s15:~/temp$ sudo ./set_cpu_turn_off_services
doug@s15:~/temp$ sudo turbostat --quiet --Summary --show Busy%,Bzy_MHz,PkgTmp,PkgWatt,GFXWatt,IRQ --interval 15
Busy% Bzy_MHz IRQ PkgTmp PkgWatt GFXWatt
0.03 1600 686 25 3.79 0.12 <<< Check my idle, before applying load
0.02 1600 401 27 3.78 0.12
0.02 1600 395 25 3.78 0.12
0.02 1600 356 26 3.78 0.12
0.02 1600 395 25 3.78 0.12
10.25 3796 12991 42 19.44 0.12 <<< Apply single 100% load
12.51 3800 15777 44 23.12 0.12 <<< max turbo freq for 1 active core.
12.51 3800 15740 45 23.21 0.12
12.51 3800 15769 47 23.31 0.12