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

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 - мгновенный.

а можно пруф? 

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


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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас