logo

Select Sidearea

Populate the sidearea with useful widgets. It’s simple to add images, categories, latest post, social media icon links, tag clouds, and more.
hello@youremail.com
+1234567890

Производительность 1С на Intel Xeon Gold 6254

Производительность 1С на Intel Xeon Gold 6254

В статье приведены результаты тестирования производительности сервера на базе 2 процессоров Intel Xeon Gold 6254. В качестве тома, на котором располагается база данных, выступал раздел на массиве RAID 10 из 12 SSD Intel D3-S4610 Series, кроме теста локальной файловой БД в Windows. В этом случае база находилась на системном томе из двух SSD Samsung 970 EVO Plus Series на интерфейсах M2. Подробнее о сервере можно прочитать здесь. В качестве теста приметен ТРС от Гилева, предназначенный для тестирования производительности платформы на определенном оборудовании. Этот интегральный тест выбран, так как наиболее точно удовлетворяет требованию — проверить скорость работы оборудования при работе на нем платформы 1С, без учета параллельности и профилей нагрузок. Среди прочего, стоит отметить, что во время тестирования хост был полностью свободен от других потребителей вычислительных мощьностей, а каждый из тестов в статье воспроизводился по 3-5 раз, поэтому приведенные результаты — не случайность. Подробнее о тесте ТРС можно прочитать здесь.

Тест не учитывает особенности параллельной работы и другие нюансы, а тестирует именно скорость работы платформы 1С. Задачей исследования является выяснение влияния виртуализации на производительность 1С на различных системах.

Для тестирования применялись Windows Server 2016, Ubuntu 18, MSSQL 2017, Postgres 10.5-24.1C, 1C 8.3.15.1565 и 1C 8.3.14.1854. В настройках виртуальных машин в качестве типа процессора везде был применен kvm64, включен NUMA и отключен Balooning Device для памяти.

В начале рассмотрим результаты тестирования на физической машине с включенными функциями энергосбережения в BIOS. В качестве системы использован Ubuntu + Postgres + 1C 8.3.15. Для Postgres устанавливались параметры памяти, в соответствиями с рекомендациями от 1.

Результат составил 25.

После отключения функций энергосбережения результат заметно изменился в большую сторону:

Результат составил 45,05.

Можно сделать вывод, что для повышения производительности 1С имеет смысл отключать энергосбережение на сервере. Следует отметить, что в данном случае на материнской плате SuperMicro X11DPH-T-O, как и в большинстве других, энергосбережение по умолчанию включено.

Рассмотрим результаты для Windows Server 2016 + MS SQL 2017 + 1C 8.3.15.1565 на физической машине:

Результат составил 40.

Результат для файловой базы данных на той же машине:

Результат составил 67,57.

На основании полученных результатов можно сделать вывод, что не смотря на использование протокола Shared memory MS SQL Server, на данной машине производительность с Postgres, установленном на Ubuntu 18 немного выше.

Самая высокая производительность у файловой базы, что ожидаемо — в этом случае пропадают весомые посредники в виде сервера 1С и самостоятельной СУБД, но масштабируемость подобного решения достаточно низкая в связи с технологическими особенностями работы 1С в файловом режиме.

Производительность на виртуальных машинах

Далее на этот же сервер был установлен Proxmox 6, на нем развернуты машины на базе Windows Server 2016 и, в связи с рядом обстоятельств, Debian 10. В качестве СУБД применены MSSQL 2017 и Postgres 10.5-24.1C соответственно. Также в связи с рядом обстоятельств применена платформа 8.3.14.1854

Тестирование на Windows + MSSQL:

Результат составил 25,38.

Локальная файловая база на этой же машине:

Результат составил 42,02.

Для Debian и Postgres результат получился снова немного выше, чем для MSSQL:

Результат составил 32,05.

Если разместить СУБД и 1С на разных машинах?

Часто встречаются конфигурации систем, в которых сервер 1С и сервер СУБД представляют собой 2 различные машины. В этом случае в работу включается еще стек TCP/IP со всем своим подмножеством протоколов. Если СУБД и 1С находятся на одном узле, в зависимости от типа ОС, будет использоваться протокол SharedMemory или сокеты.

Для Windows + MSSQL + 1C, при условии, что 1С и SQL находятся на разных виртуальных машинах одного физического узла:

Результат 12,22 Это значительно ниже, чем любой из ранее полученных результатов.

Для Debian и Postgres выполнение теста завершилось несколько лучше:

Результат 28,74

Взаимодействие между 1С и СУБД по через стек сетевых протоколов может значительно снизить производительность, пусть даже при отсутствии физического сетевого соединения как такового. Следовательно, если есть возможность держать СУБД и 1С на одном узле, имеет смысл делать это именно так.СохранениеВзаимодействие между 1С и СУБД по через стек сетевых протоколов может значительно снизить производительность, пусть даже при отсутствии физического сетевого соединения как такового. Следовательно, если есть возможность держать СУБД и 1С на одном узле, имеет смысл делать это именно так.

Выводы

Для сравнения полученные результаты необходимо собрать в общей таблице:

ФизическийВиртуальныйЗамедление
Win+MSSQL4025,3836,55% (по сравнению с физическим)
Win+FileLocal67,5742,0237,81% (по сравнению с физическим)
Linux+Postgres45,0532,0528,86% (по сравнению с физическим)
Win+MSSQL (2 nodes)12,2251,85% (по сравнению с виртуальным)
Linux+Postgres (2 nodes)28,7410,32% (по сравнению с виртуальным)

На основании полученных результатов можно сделать два вывода справедливых, по крайней мере, для данного оборудования:

  • При выполнении, по крайней мере, некоторых операций, связка Linux + PostgreSQL будет работать с немного большей производительностью, чем Windows+MSSQL
  • Потери от виртуализации Linux + Postgres + 1C ниже почти на 10 %, чем при виртуализации Windows + MSSQL + 1C. В обоих случаях на виртуальные машины были установлены последние актуальный драйверы для паравиртуальных устройств.
  • Платформа не сильно теряет в производительности при разнесении СУБД и 1С на разные узлы, в случае использования PostgreSQL, однако, все будет зависеть от объема передаваемых во время данных

Наличие замедления по сравнению с файловой БД вызвано присутствием двух сложных механизмов — сервера 1С и СУБД, которые показывают свое преимущество во время параллельной работы большого количества пользователей, реализуя механизмы для параллельной работы.

roox
No Comments

Post a Comment

Comment
Name
Email
Website