Изучение производительности сервера может быть очень полезно, особенно если вы работаете с ресурсоемкими приложениями. Одним из способов повышения производительности является настройка параметров 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 |
Для начала мы провели тестирование процессора:
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 |
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
Без установленной политики были получены следующие результаты:
Тест показал, что при незначительном снижении энергопотребления (308 против 322 Вт) производительность DAPC значительно (около 10%) меньше по сравнению с BIOS default performance.
После чего мы применили ограничение в 200 Вт:
Температуры процессора и его компонентов — важный показатель, поскольку высокие температуры могут привести к перегреву системы и повреждению компонентов, а высокое энергопотребление — к росту расходов на выполнение рабочих задач.
Показатель пакета процессора (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 сервера до последней версии. Это позволит избежать ошибок и проблем совместимости.
В целом, выбор технологии управления энергопотреблением на сервере зависит от конкретной модели и конфигурации сервера, а также от требований к производительности и энергоэффективности. Решение о выборе технологии стоит принимать только после изучения рекомендаций производителя и проведения тестирования на конкретной системе.