Изучение производительности сервера может быть очень полезно, особенно если вы работаете с ресурсоемкими приложениями. Одним из способов повышения производительности является настройка параметров BIOS. В этой статье мы попытаемся ответить на вопрос, действительно ли DAPC выгоднее BIOS default performance.

Наша компания — хостер, и это во многом определяет специфику рабочих задач отдела DevOps и Support. Однако относительно недавно обычную рутину нашей работы прервала внезапная задача: нужно было определить, позволяет ли использование Performance per Watt (DAPC) на практике снизить энергопотребление процессоров и, как следствие, нагрузку на систему охлаждения в ЦОДе. 

DAPC (Dynamic Application Power Management) — функция BIOS, позволяющая автоматически регулировать потребляемую мощность в зависимости от нагрузки. То есть, когда вы не используете сервер, он будет потреблять меньше энергии, что может привести к значительной экономии электроэнергии. Кроме того, DAPC может повысить производительность сервера в режиме низкой нагрузки, поскольку процессор будет работать на более высокой частоте.

BIOS default performance — настройка BIOS, которая устанавливает процессор на максимальную частоту, независимо от нагрузки. Это может привести к повышению производительности в режиме высокой нагрузки, но также увеличить потребление энергии и температуру компьютера.

Различия между профилями питания подробно описаны в технической документации Dell.

Теоретически выбор между DAPC и BIOS default performance зависит от ваших потребностей. Если вы хотите сэкономить энергию и повысить производительность в режиме низкой нагрузки, выберите DAPC. Если вам нужна максимальная производительность в режиме высокой нагрузки, вам подойдет BIOS default performance. 

Что ж, проверим, как это работает на практике.

Для тестирования нами были использованы тесты stress-ng и AIDA64.

Тестовая среда

Платформа

Dell PowerEdge R720 12xLFF

Процессор

2xXeon 2xE5-2680v2 2.8GHz (10 cores)

Оперативная память

8x16 Gb DDR3 REG

Жесткий диск

1x960Gb SSD

Контроллер

1xDell PERC H710 Mini

Материнская плата

DELL PE R720 MB

CPU

Для начала мы провели тестирование процессора:

stress-ng --cpu 40 --cpu-method matrixprod --metrics --timeout 60

В тесте задействованы 40 потоков процессора, продолжительность теста — 60 секунд.

stressor

real time (secs)

sys time (secs)

BIOS default performance

cpu

60

0

BIOS (DAPC)

cpu

60

0

Points scored
Points scored
Points scored
Points scored
Points scored
Points scored

BIOS default performance превзошел DAPC по всем измеряемым параметрам, за исключением общего времени выполнения тестов. Ключевым показателем данного теста является Bogo ops/s (real time), поскольку этот параметр отражает количество выполненных итераций теста в секунду и позволяет судить о производительности процессора во время тестирования.

Комплексное тестирование

В рамках данного теста проводится замер показателей нескольких ключевых подсистем:

stress-ng --cpu 40 --io 4 --vm 1 --vm-bytes 128G --timeout 60s --metrics-brief

stressor

bogo ops (secs)

real time (secs)

usr time (secs)

sys time (secs)

bogo ops/s (real time)

bogo ops/s (usr+sys time

BIOS default performance

cpu

1571925

60

2192.06

0

26197.69

717.1

io

1475056

60

16.21

185.72

24584.24

7304.79

vm

0

10.13

0

0

0

0

BIOS (DAPC)

cpu

1563342

60

2196.55

0

26054.87

711.73

io

1484777

60

16.14

180.61

24746.26

7546.52

vm

10.14

0

0

0

0

  • Стрессор CPU создает нагрузку на процессор, что позволяет оценить, насколько хорошо система справляется с вычислительными задачами. Показатели, связанные со стрессором CPU, могут включать в себя количество операций в секунду, время выполнения и степень использования процессора.

  • Стрессор IO создает нагрузку на дисковую подсистему, что позволяет оценить, насколько хорошо система справляется с операциями ввода-вывода. Показатели, связанные со стрессором IO, могут включать в себя скорость передачи данных, время выполнения операций ввода-вывода и другие метрики, связанные с дисковой подсистемой.

  • Стрессор VM создает нагрузку на виртуальную память, что позволяет оценить, насколько хорошо система справляется с управлением памятью и обработкой страниц памяти. Показатели, связанные со стрессором VM, могут включать в себя количество операций в секунду, время выполнения и степень использования памяти.

Легко заметить, что приведенные результаты тестирования практически не зависят от метода управления питанием.

Сравнение энергопотребления

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

Для наглядности мы провели тесты без установленной политики энергопотребления и с ограничением в 200 Вт.

stress-ng --cpu 40 --io 4 --vm 1 --vm-bytes 128G --timeout 30m

Без установленной политики были получены следующие результаты:

Points scored
Points scored
Points scored
Points scored

Тест показал, что при незначительном снижении энергопотребления (308 против 322 Вт) производительность DAPC значительно (около 10%) меньше по сравнению с BIOS default performance. 

После чего мы применили ограничение в 200 Вт:

Points scored
Points scored

Температуры процессора и его компонентов — важный показатель, поскольку высокие температуры могут привести к перегреву системы и повреждению компонентов, а высокое энергопотребление — к росту расходов на выполнение рабочих задач. 

Показатель пакета процессора (CPU Package) отражает общее энергопотребление процессора. Если значение этого показателя слишком высоко, это может свидетельствовать о том, что процессор работает в условиях повышенной нагрузки или что система нуждается в дополнительной вентиляции. Показатели ядра процессора (CPU IA Core) отображают температуру вычислительных ядер. Эти показатели могут помочь выявить проблемы в работе отдельных ядер процессора, такие, как загруженность, неравномерное использование и т. д. Использование политики Power CAP позволяет значительно снизить нагрузку на ядра процессора (примерно на 40%).

Напряжение ядра процессора (CPU Core Voltages) с заданной политикой Power CAP и без нее отличается примерно на 15% (0.912 и 1.086 соответственно).

Тестирование памяти

stress-ng --sequential 0 --class io --timeout 60s --metrics-brief

stressor

bogo ops (secs)

real time (secs)

usr time (secs)

sys time (secs)

bogo ops/s (real time)

bogo ops/s (usr+sys time)

BIOS default performance

aio

49659629

60

162.1

450.83

827650.72

81020.07

aio

17264.35 async I/O signals per sec (average per stressor)

aiol

430590

60.03

41.57

54.06

7172.47

4502.67

hdd

906920

60.77

32.88

54.83

14923.79

10339.98

rawdev

6077534

60

4.11

53.1

101291.84

106232.02

readahead

1640951

60.03

1.24

54.2

27333.66

29598.68

revio

114781963

60.01

93.32

2294.07

1912803.22

48078.43

seek

0

60.03

492.6

1899.07

0

0

sync-file

533873

60

198.76

473.73

8897.78

793.88

BIOS (DAPC)

aio

41134869

60

327.68

956.54

685563.61

32031.01

aio

13450.88 async I/O signals per sec (average per stressor)

aiol

381309

60.08

97.43

139.59

6347.06

1608.76

hdd

866740

60.61

96.75

131.69

14300.24

3794.17

rawdev

6170726

60

10.73

149.95

102844.59

38403.82

readahead

1730482

60.03

3.95

157.31

28827.11

10731.01

revio

112259151

60.01

91.65

2295.59

1870778.57

47024.66

seek

0

60.04

466.64

1924.64

0

0

sync-file

308244

60

291.02

718.05

5137.27

305.47

Стрессор aio (asynchronous I/O) в stress-ng создает асинхронные операции ввода-вывода для проверки работоспособности системы в условиях высокой нагрузки на ввод-вывод. Среди таких операций —  чтение и запись файлов, отправка и получение сетевых пакетов и другие действия, требующие обращения к вводу-выводу. В проведенном тесте результат BIOS default performance значительно превышает BIOS (DAPC) по каждому из показателей тестирования.

Стрессоры aiol, hdd, rawdev, readahead, revio, seek и sync-file в stress-ng предназначены для создания нагрузки на различные компоненты системы и проверки их работоспособности в условиях высокой нагрузки.

  • Стрессор aiol создает асинхронные операции ввода-вывода для проверки работоспособности системы в условиях высокой нагрузки на ввод-вывод.

  • Стрессор hdd создает нагрузку на жесткий диск, например путем создания случайного доступа к файлам или чтения и записи больших объемов данных на диск.

  • Стрессор rawdev создает нагрузку на устройства ввода-вывода, например на блочные устройства или устройства виртуальной памяти.

  • Стрессор readahead создает нагрузку на подсистему чтения файлов, например путем чтения больших объемов данных из файловой системы.

  • Стрессор revio создает нагрузку на ввод-вывод, используя случайный доступ к файлам и чтение/запись файлов в обратном порядке.

  • Стрессор seek создает нагрузку на подсистему чтения/записи файлов, используя случайный доступ к файлам и перемещение указателя внутри файла.

  • Стрессор sync-file создает нагрузку на файловую систему, путем создания большого количества файлов и их чтения/записи.

Заключение

Проведенное тестирование не позволяет подтвердить тезис производителей платформ DELL о значительной экономии энергии при использовании режима BIOS (DAPC): производительность системы при выборе этого режима снижается, а энергопотребление уменьшается незначительно.

Однако на некоторых серверах Dell использование режима BIOS DAPC может привести к нестабильной работе и сбоям системы. Это связано с тем, что режим BIOS DAPC не всегда может правильно оценить нагрузку на процессор и корректно настроить его частоту и напряжение. В результате процессор может работать с низкой частотой, что приводит к снижению производительности системы.

Вместо BIOS DAPC можно использовать другие технологии управления энергопотреблением, такие как Intel SpeedStep или AMD PowerNow, которые могут обеспечить более стабильную работу системы и оптимизировать энергопотребление процессора. Отметим, что лучше обновить BIOS сервера до последней версии. Это позволит избежать ошибок и проблем совместимости.

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

Комментарии (2)


  1. nobletracer
    03.04.2023 20:17

    Разница заметна при пересчёте в деньги на большом количестве серверов. Плюс вы рассматриваете максимальную утилизацию сервера, а DAPC сделан из рассчёта что сервер не загружен на 100%.


    1. dasgutenberg
      03.04.2023 20:17

      Спасибо за комментарий, мы стремились показать, что DAPC не является универсальным решением. Необходимо не только подбирать технологию, исходя из задач, но и тестировать ее, т.к. заявления разработчиков это одно, а реальная практика может отличаться.