Назад | Перейти на главную страницу

масштабирование частоты с помощью debian 8.1 и Intel XEON E5-1650 v3

Я хочу свой сервер с debian 8.1 не использовать масштабирование ЦП, но всегда работать с максимально возможной частотой.

Я установил cpufrequtils

$ dpkg -l | grep cpufreq
ii  cpufrequtils                   008-1                       amd64        ...
ii  libcpufreq0                    008-1                       amd64        ...

Я назначил губернатора performance с участием

$ cat /etc/default/cpufrequtils 

ENABLE="true"
GOVERNOR="performance"
MAX_SPEED="0"
MIN_SPEED="0"

и позвонил /etc/init.d/cpurequtils restart

Когда я перечисляю информацию о своем процессоре с помощью cpufreq-info Я получаю такие результаты:

analyzing CPU 2:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 2
  CPUs which need to have their frequency coordinated by software: 2
  maximum transition latency: 0.97 ms.
  hardware limits: 1.20 GHz - 3.80 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 1.20 GHz and 3.80 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 1.73 GHz (asserted by call to hardware).

Последняя строка показывает, что ЦП не работает на полной скорости. Когда я проверяю значения из / sys, я получаю те же результаты:

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
echo "--"
cat /sys/devices/system/cpu/cpu*/cpufreq/cpuinfo_cur_freq

1198203
1199707
2001015
3048828
1551210
1358847
2953808
1982832
1523867
1200253
1654296
3446132
--
1198203
1199707
2001015
2643730
1772695
1358847
2953808
1982832
1523867
1200253
1654296
3446132

Что меня интересует, так это то, что у меня нет файла с именем scaling_available_frequencies в / sys, который упоминается во многих howtos.

ls -1 /sys/devices/system/cpu/cpu0/cpufreq/
affected_cpus
cpuinfo_cur_freq
cpuinfo_max_freq
cpuinfo_min_freq
cpuinfo_transition_latency
related_cpus
scaling_available_governors
scaling_cur_freq
scaling_driver
scaling_governor
scaling_max_freq
scaling_min_freq
scaling_setspeed

Все подходящие модули ядра загружены:

$ lsmod | grep cpufre
cpufreq_powersave      12454  0 
cpufreq_userspace      12525  0 
cpufreq_conservative    14184  0 
cpufreq_stats          12782  0 

Теперь я устанавливаю scaling_min следующим образом:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

Теперь я получаю информацию, как видит, в которой говорится частота должна быть от 3,80 ГГц до 3,80 ГГц но на самом деле это не так:

analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 0.97 ms.
  hardware limits: 1.20 GHz - 3.80 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 3.80 GHz and 3.80 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 2.84 GHz (asserted by call to hardware).

«Производительность» губернатора, похоже, не работает. Итак, как заставить свои процессоры работать на полной скорости?

Вам пришлось проверить свой BIOS, потому что P-состояния ЦП, похоже, распознаются лишь частично. Если обнаружено, что BIOS многих серверов (в основном DELL) действительно ломается при работе с энергосбережением.

Итак, войдите в свой BIOS и отключите все функции энергосбережения процессора. Единственные, которые я предлагаю вам оставить включенными, касаются состояний C (например, C1E, C6 / E и т. Д.). Если ваш BIOS позволяет выбрать профиль питания, выберите «Максимальная производительность».

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

В более новых ядрах регулятор просто сообщает процессору, что нужно сделать в приоритетном порядке - производительность или энергосбережение - и позволяет ему попытаться получить наилучший результат в зависимости от активности. Он в гораздо лучшем положении.