Мы продолжаем серию статей по анализу производительности 1С. В прошлых материалах мы изучали производительность платформ 1С, также у нас есть устаревшее исследование сравнение производительности платформ виртуализации, которое мы решили актуализировать в новой статье.
Целью статьи является сравнение в 2021 году производительности 1С:Предприятие на различных платформах виртуализации.
На текущий момент, одними из популярных решений являются – HyperV поколения Windows 2019, ESXI v7.0.1 , KVM и аппаратный сервер с Windows Server 2019 на базе процессоров серии Intel Xeon Gold.
Состав тестового стенда
Аппаратная часть
- Борд: Supermicro X11DPT-PS
- Процессор: Intel Xeon Gold 6143 2.8 – 4.0 GHz 22 MB 16 Core
- Оперативная память: 383 GB DDR4
- Хранилище: RAID 10, Intel DC S3710 SSDSC2BA400G401 400 GB
Программная часть 1C
- Платформа 1С:Предприятие 8.3.18.1208.
- Конфигурации:
- Управление торговлей, редакция 11 (11.3.4.21)
- Бухгалтерия предприятия, редакция 3.0 (3.0.52.39)
- Объемы и типы баз:
11.3.4.21
19 GB
3.0.52.39
5 GB
Программная часть Windows (аппаратный сервер и ВМ)
- Windows Server 2019 Standard
- SQL Server 2019 Enterprise
Программная часть VMware
- ESXI 7.0.1
Программная часть KVM
- CentOS Linux 8.3.2011
- QEMU/KVM 4.2.0
Общая методика тестирования
Тест АПДЕКС
В основе методики АПДЕКС лежит набор инструментов 1С:КИП. В данном случае использовался не весь функционал методологии. В процессе конфигурации теста была выполнена доработка базы клиентов под тестирование, выделены ключевые операции пользователей, такие как проведение поступления, реализации и т.д..
Число пользователей закрепили на уровне 10 ПК, так как наша задача сравнить производительность и оптимизацию систем виртуализации, а не пределы мощности аппаратных компонентов.
Стандартная методология АПДЕКС использует прогрессивную шкалу от 0 до 1, где 1 – это замечательный результат, а 0 – неудовлетворительный. Требуется указать целевое значение параметра производительности той или иной операции, создать сценарии и запустить тест.
Мы же в своем исследовании не используем целевые показатели. В зачет идут только конечные данные тестирования.
Производительность дисковой подсистемы
В данной таблице отчетливо выделяются результаты CentOS.
В связке Centos+KVM мы использовали стандартную файловую систему ОС – XFS.
Настройки
Аппаратный сервер Windows
Перед работой с носителем были произведены настройки BIOS. В данном случае необходимо было вручную выставить режим “Maximum Perfomance” в расширенных настройках CPU. Данные настройки применены для всех участников тестирования:
- Power Technology – Custom
- Power Performance Tuning – здесь нужно выбрать управлять питанием будет BIOS или ОС. Наш опыт с Hyper-V говорит о выборе в сторону OS-control.
- Energy_perf_bias_cfg mode – Maximum Performance.
Остальные параметры T P и C State настраиваются также на максимальную производительность. Настройки BIOS могут отличаться от сервера к серверу.
Не забываем в настройках WIndows в параметрах электропитания указать пункт – высокая производительность.
Результатом наших манипуляций является фиксированная в режиме турбо-буст частота процессора.
С установкой SQL каких либо замечаний нет. Ранее мы готовили инструкцию на эту тему.
Виртуальная машина Windows
Стандартный запуск системы виртуализации Hyper-V. Никаких дополнительных настроек, кроме манипуляций с носителем и электропитанием не производилось.
Виртуальная машина ESXI 7.0.1
В данном тестировании мы установили параметры электропитания в режиме high performance.
Ввиду того, что в рамках наших испытаний мы не сможем полностью загрузить носитель (для этого надо работать с системой в продакшн-среде), остальные настройки, предлагаемые компанией VMware, использовать не стали.
Если же вы используете систему как основную, то советуем обратить внимание на параметры:
- Mem.AllocGuestLargePage – отключение больших страниц памяти.
- Mem.ShareScanGhz – повышение частоты сканирования памяти.
- Mem.ShareScanTime – повышение скорости сканирования памяти.
Данные параметры включены по-умолчанию и за счет увеличения нагрузки на CPU, позволяют уменьшить потребляемое количество ОЗУ виртуальными машинами. В высоконагруженной среде необходимо выбирать компромисс между производительностью и затратами ресурсов.
Виртуальная машина Centos 8.3.2011 (KVM)
При подготовке данного исследования изучались материалы с официального гайда RedHat, в котором описаны основные параметры конфигурации ядер CPU в виртуальных машинах, оптимальный интерфейс подключения дисковой подсистемы и сетевых интерфейсов.
Мы использовали стандартные настройки KVM. Технология NUMA в разрезе нашего теста бессмысленна, так как у нас одна виртуальная машина на носителе.
Технология подключения дисков по интерфейсу Virtio с последующей установкой драйвера в гостевой ОС показала результаты хуже, чем стандартная связка файловой системы XFS и qcow2 (результаты выше на 10-15% по сравнению с рекомендациями RedHat). Это означает лишь то, что система требует глубокого изучения и является темой для отдельной статьи.
Результаты
Итоги тестирования
На текущий момент коммерческие продукты ожидаемо продемонстрировали более высокую производительность системы и минимальную потерю при виртуализации.
Что касается KVM, то средняя потеря производительности этой системы составляет приблизительно 10% от эталонного аппаратного сервера на Windows. При малых нагрузках на систему данное значение практически не повлияет на работу пользователей, но если мы говорим о высоконагруженном сервисе – разница 10% станет чувствительной.
В одном из наших следующих исследований мы попробуем глубже изучить связку Centos/KVM и, возможно, нам удастся повысить показатели.
Так какую систему выбрать?
Если необходимо начать работу с минимальным временем на подготовку структуры, то стоит обратить внимание на коммерческие продукты.
Если в компании есть штатный ИТ-специалист с глубоким знанием Linux-систем, то KVM сможет удовлетворить потребности бизнеса.
На текущий момент мы предлагаем возможность провести бесплатный тест производительности базы 1С в нашем эталонном облаке.