Перейти к содержимому
Калькуляторы

border на linux. Как убедиться что процессор всегда работает на максимальной частоте? как прибить частоту к максимуму?

Как убедиться что процессор всегда работает на максимальной частоте? как прибить частоту к максимуму?

ядро 4.12.0-1.el6.elrepo.x86_64

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. powertop 

2. google -> cpu governor

3. Ещё важно для максимальной производительности, чтобы не было переключения в C-state'ы >1 (для этого нужно делать processor.max_cstate=1 intel_idle.max_cstate=0 idle=poll)

 

но будет есть больше электричества

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В i7z можно посмотреть частоты ядер. Самый надежный способ прибить частоту - это выключить P-states в настройках BIOS.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 минуту назад, a290 сказал:

В i7z можно посмотреть частоты ядер. Самый надежный способ прибить частоту - это выключить P-states в настройках BIOS.

что такое i7z ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

3 часа назад, a290 сказал:

Самый надежный способ прибить частоту - это выключить P-states в настройках BIOS.

Линуксовому модулю intel_idle(включен по умолчанию везде) пофиг на установки БИОСа, помогает только "processor.max_cstate=1 intel_idle.max_cstate=0".

Частоту и текущие С-state удобно смотреть утилитой i7z.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

55 минут назад, kayot сказал:

Линуксовому модулю intel_idle(включен по умолчанию везде) пофиг на установки БИОСа, помогает только "processor.max_cstate=1 intel_idle.max_cstate=0".

Частоту и текущие С-state удобно смотреть утилитой i7z.

intel_idle   - как посмотреть наличие этого модуля?

ядро грузится с параметрами intel_idle.max_cstate=0 processor.max_cstate=1

 

 

что нужно наблюдать в выводе i7z?

 

 

Cpu speed from cpuinfo 2400.00Mhz
True Frequency (without accounting Turbo) 2400 MHz

Socket [0] - [physical cores=4, logical cores=4, max online cores ever=4]
  CPU Multiplier 18x || Bus clock frequency (BCLK) 133.33 MHz
  TURBO DISABLED on 4 Cores, Hyper Threading OFF
  Max Frequency without considering Turbo 2400.00 MHz (133.33 x [18])
  Max TURBO Multiplier (if Enabled) with 1/2/3/4 cores is  20x/20x/19x/19x
  Real Current Frequency 2400.04 MHz (Max of below)
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %  Temp      VCore
        Core 1 [0]:       2400.03 (18.00x)        10      90       0       0    36      0.0000
        Core 2 [1]:       2400.02 (18.00x)      10.3    89.7       0       0    32      0.0000
        Core 3 [2]:       2400.04 (18.00x)      9.01      91       0       0    32      0.0000
        Core 4 [3]:       2400.02 (18.00x)      9.84    90.2       0       0    37      0.0000

Socket [1] - [physical cores=4, logical cores=4, max online cores ever=4]
  CPU Multiplier 18x || Bus clock frequency (BCLK) 133.33 MHz
  TURBO DISABLED on 4 Cores, Hyper Threading OFF
  Max Frequency without considering Turbo 2400.00 MHz (133.33 x [18])
  Max TURBO Multiplier (if Enabled) with 1/2/3/4 cores is  20x/20x/19x/19x
  Real Current Frequency 2399.06 MHz (Max of below)
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %  Temp      VCore
        Core 1 [4]:       2399.03 (17.99x)      9.16    90.8       0       0    37      0.0000
        Core 2 [5]:       2399.03 (17.99x)      11.8    88.2       0       0    36      0.0000
        Core 3 [6]:       2399.06 (17.99x)      7.89    92.1       0       0    38      0.0000
        Core 4 [7]:       2399.01 (17.99x)      11.7    88.3       0       0    35      0.0000

C0 = Processor running without halting
C1 = Processor running with halts (States >C0 are power saver)
C3 = Cores running with PLL turned off and core cache turned off
C6 = Everything in C3 + core state saved to last level cache
 

 

вот так еще бывает  - появляется  "inf (infx)  "

 

Cpu speed from cpuinfo 2400.00Mhz
True Frequency (without accounting Turbo) 2400 MHz

Socket [0] - [physical cores=4, logical cores=4, max online cores ever=4]
  CPU Multiplier 18x || Bus clock frequency (BCLK) 133.33 MHz
  TURBO DISABLED on 4 Cores, Hyper Threading OFF
  Max Frequency without considering Turbo 2400.00 MHz (133.33 x [18])
  Max TURBO Multiplier (if Enabled) with 1/2/3/4 cores is  20x/20x/19x/19x
  Real Current Frequency 2400.39 MHz (Max of below)
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %  Temp      VCore
        Core 1 [0]:       2400.10 (18.00x)      14.4    85.6       0       0    32      0.0000
        Core 2 [1]:       2400.30 (18.00x)         1    99.8       0       0    30      0.0000
        Core 3 [2]:       2400.39 (18.00x)         1    99.9       0       0    28      0.0000
        Core 4 [3]:       2400.23 (18.00x)         1    99.8       0       0    32      0.0000

Socket [1] - [physical cores=4, logical cores=4, max online cores ever=4]
  CPU Multiplier 18x || Bus clock frequency (BCLK) 133.33 MHz
  TURBO DISABLED on 4 Cores, Hyper Threading OFF
  Max Frequency without considering Turbo 2400.00 MHz (133.33 x [18])
  Max TURBO Multiplier (if Enabled) with 1/2/3/4 cores is  20x/20x/19x/19x
  Real Current Frequency 2400.29 MHz (Max of below)
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %  Temp      VCore
        Core 1 [4]:       2400.24 (18.00x)         1    99.7       0       0    28      0.0000
        Core 2 [5]:       inf (infx)       1       0       0       0    25      0.0000                               <----------------------------!!!!!!!!!!!!!
        Core 3 [6]:       2400.29 (18.00x)         1    99.7       0       0    27      0.0000
        Core 4 [7]:       2400.14 (18.00x)         1    99.7       0       0    26      0.0000

C0 = Processor running without halting
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, QWE сказал:

intel_idle   - как посмотреть наличие этого модуля?

dmesg | grep intel_idle (если dmesg не загажен и начинается с 0)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

10 минут назад, s.lobanov сказал:

dmesg | grep intel_idle (если dmesg не загажен и начинается с 0)

# dmesg | grep intel_idle
Command line: ro root=UUID=c8e5dbbd-8010-4b54-bda6-96a730ffbffe rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet intel_idle.max_cstate=0 processor.max_cstate=1
Kernel command line: ro root=UUID=c8e5dbbd-8010-4b54-bda6-96a730ffbffe rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet intel_idle.max_cstate=0 processor.max_cstate=1
intel_idle: disabled
 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну ок, теперь cpu должен быть постоянно в C0. См. через powertop или тулзу что сказали выше

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@QWE Все у вас красиво.

CPU на максимальной частоте и в основном в C1 - бесплатный по ресурсам и энергоэффективный режим.

Можно добавить idle=poll в параметры ядра, CPU при этом навсегда останется в C0 без каких-либо сберегаек вообще. IMHO в этом нет смысла, выход из состояния C1 HLT - мгновенный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 05.06.2018 в 22:18, kayot сказал:

выход из состояния C1 HLT - мгновенный.

а можно пруф? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 05.06.2018 в 22:18, kayot сказал:

@QWE Все у вас красиво.

CPU на максимальной частоте и в основном в C1 - бесплатный по ресурсам и энергоэффективный режим.

Можно добавить idle=poll в параметры ядра, CPU при этом навсегда останется в C0 без каких-либо сберегаек вообще. IMHO в этом нет смысла, выход из состояния C1 HLT - мгновенный.

 

Столкнулся совсем недавно, при 

nosoftlockup intel_idle.max_cstate=0 processor.max_cstate=1 mce=ignore_ce idle=poll

температура на CPU0 E5-2660 и включённом Turbo Boost взлетала до 80-81°C.

Убрал idle=poll, стало 70-71°C

 

 

В 07.06.2018 в 09:58, s.lobanov сказал:

а можно пруф? 

https://www.nix.ru/computer_hardware_news/hardware_news_viewer.html?id=188056

 

В биосе при этом P0

 

image.png.837dc984316ab53c2e639f40e180504b.png

 

Ну и частота задрана соотвественно

Every 2.0s: grep "cpu MHz" /proc/cpuinfo                                                                                                                                                                                                               Wed Dec  5 18:22:52 2018

cpu MHz         : 2667.000
cpu MHz         : 2667.000
cpu MHz         : 2667.000
cpu MHz         : 2667.000
cpu MHz         : 2667.000
cpu MHz         : 2667.000

 

https://wiki.archlinux.org/index.php/CPU_frequency_scaling в эту же тему.

 

tuning_HP.pdf

Изменено пользователем hsvt

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

C1 (Halt)- состояние, когда процессор не исполняет инструкции, но готов мгновенно ( с задержкой примерно 10нс) приступить к их исполнению, при этом его энергопотребление составляет примерно 30% от нормы.

 

получается что в этом режиме самое то находиться

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

for CPUFREQ in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do [ -f $CPUFREQ ] || continue; echo -n performance > $CPUFREQ; done

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Или так
 

 grep CPU_FREQ /boot/config
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_STAT=m
# CONFIG_CPU_FREQ_STAT_DETAILS is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

for state in /sys/devices/system/cpu/cpu*/cpuidle/state[2-9]*/disable ; do echo 1 > $state ; done

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.