Изучение производительности сервера может быть очень полезно, особенно если вы работаете с ресурсоемкими приложениями. Одним из способов повышения производительности является настройка параметров 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 |
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 сервера до последней версии. Это позволит избежать ошибок и проблем совместимости.
В целом, выбор технологии управления энергопотреблением на сервере зависит от конкретной модели и конфигурации сервера, а также от требований к производительности и энергоэффективности. Решение о выборе технологии стоит принимать только после изучения рекомендаций производителя и проведения тестирования на конкретной системе.