Команда EFSOL Oblako продолжает серию тестов производительности 1С. Подобные тесты мы проводим уже несколько лет и на этот раз решили сравнить актуальные СУБД для работы с 1С:Предприятие 8.3, включая продукт российского разработчика - Tantor СУБД.
В данном исследовании для проведения нагрузочных тестов в связке с 1С использовались не только разные СУБД, но и разные операционные системы, подробнее о тестовом стенде ниже.
Тестовый стенд
Сервер СУБД | Материнская плата: Supermicro : X8DTT-H Процессор: Intel(R) Xeon(R) CPU X5687 (3.60GHz, ядер: 4, логических процессоров: 8) Оперативная память : Объем памяти 60GB, частота памяти 800 Диски: Raid 1 SSD INTEL 447GB |
Сервер 1С | Материнская плата: Supermicro : X8DTT-H Процессор: Intel(R) Xeon(R) CPU X5687 (3.60GHz, ядер: 4, логических процессоров: 8) Оперативная память : Объем памяти 48GB, Частота памяти 800 Диски: Raid 1 SSD INTEL 447GB |
Программная среда
ОС | Centos 7 | Astra Linux 1.7.3 (Смоленск) | Ubuntu 20/04 | Windows Server 2019 |
СУБД | Postgres 1С | Tantor Special Edition 1C database server 15 | Postgres Pro 1С 14 database server | MS SQL 2019 |
Платформа 1С | 8.3.22.2106 | 8.3.22.2106 | 8.3.22.2106 | 8.3.22.2106 |
Инструменты тестирования
Тест-центр База 1С:ERP от 1С | |
Многопоточный тест производительности 1С Fragster | |
Нагрузочный тест TPC-1C - Тест Гилева |
Методика тестирования
Стенды развернуты на одинаковых аппаратных ресурсах:
Сервер 1С и Сервер СУБД располагаются на разных серверах.
Проводится замер (5 тестов) Тест-центр + База 1С:ERP от 1С с числом пользователей 30, тремя итерациями по 10 пользователей.
Проводится замер Fragster (5 тестов), берется усредненное значение.
Проводится замер (5 тестов) Гилева, берется усредненное значение.
Описание теста №1 (Тест-центр + База 1С:ERP от 1С)
Тест использует показатель APDEX (широко распространенный международным стандарт оценки производительности информационных систем) для оценки числа пользователей системы 1C:ERP,которые могут комфортно сосуществовать в единой базе, выполняя действия описанные в сценарии (обычно схожие с их должностными обязанностями при работе в программе 1С).
Сценарий для тестирования - полный.
![Шкала оценки APDEX Шкала оценки APDEX](https://habrastorage.org/getpro/habr/upload_files/40b/89f/034/40b89f034660b925f4c02b6250facacb.png)
Описание градаций самих пользователей
Когда мы подбираем сервер, мы должны учитывать особенности пользователей, которые будут на нем работать.
Приведем пример. На сервере работает много бухгалтеров и они проводят массовые перепроведения. Если сервер на это не рассчитан, поэтому работа всех остальных пользователей, даже делающих простые операции, значительно замедлится. И в итоге пойдут жалобы, что "всё тормозит".
Нужно учитывать, что, как правило, на одном и том же сервере, работают разные категории пользователей с разным поведением, связанным со спецификой работы. Как решение - для тех, кто выполняет ресурсоемкие задачи, нужно выделять отдельный сервер.
Можем выделить следующие категории пользователей 1С:
Легкие - заполнение первички, производят несложные операции в базе 1С.
Средние - легкие отчёты, используют чуть более сложный функционал по документам.
Тяжелые - используют закрытие месяца, групповое перепроведение, объемные отчеты.
Таблица по категориям пользователей, в сумме 30 пользователей:
Роль | Пользователь | Количество | Критерий операций нагружающий систему |
Таможенная декларация | Бухгалтер | 1 | Тяжелый пользователь |
Взаиморасчеты | Взаиморасчеты документы | 4 | Тяжелый пользователь |
Взаиморасчеты сервис | Взаиморасчеты сервис | 1 | Тяжелый пользователь |
Регламентные задания | Взаиморасчеты сервис | 1 | Тяжелый пользователь |
Главный диспетчер производства | Главный диспетчер производства | 1 | Средний пользователь |
Локальный диспетчер производства | Локальный диспетчер производства | 1 | Средний пользователь |
Менеджер по обеспечению потребное | Менеджер по обеспечению потребное | 1 | Средний пользователь |
Кладовщик (подпитка) | Кладовщик документы | 1 | Легкий пользователь |
Кладовщик (упрощенная схема) | Кладовщик документы | 1 | Легкий пользователь |
Кладовщик (распоряжения) | Кладовщик документы | 2 | Легкий пользователь |
Кладовщик (подотчетник) | Кладовщик документы | 1 | Легкий пользователь |
Кладовщик (сервис) | Кладовщик сервис | 1 | Легкий пользователь |
Закупка | Менеджер по закупкам | 1 | Легкий пользователь |
Закупка (импорт) | Менеджер по закупкам | 1 | Легкий пользователь |
Закупка (комиссия) | Менеджер по закупкам | 1 | Легкий пользователь |
Закупка (передача на комиссию) | Менеджер по закупкам | 1 | Легкий пользователь |
Закупка (подотчет) | Менеджер по закупкам | 1 | Легкий пользователь |
Закупка (подпитка) | Менеджер по закупкам | 1 | Легкий пользователь |
Закупка (упрощенная схема) | Менеджер по закупкам | 1 | Легкий пользователь |
Закупка (сервис) | Менеджер по закупкам | 1 | Легкий пользователь |
Отгрузка | Менеджер по продажам | 5 | Легкий пользователь |
Отгрузка сервис | Отгрузка сервис | 1 | Легкий пользователь |
Описание теста №2 (многопоточный тест производительности 1С Fragster)
Тест создает множество фоновых сеансов и выполняет ими одинаковые действия, например, создание элементов справочников или запись наборов записей регистров. Он позволяет оценить, насколько производительна данная связка 1С - СУБД, а также насколько она масштабируема, т.е. количество активных пользователей, при котором система еще будет работать.
Полный тест выполняется от получаса до часа на стандартных настройках, примерно в 2 раза меньше на быстрых и в 2 раза дольше на точных. Естественно, если проводить не все тесты, то время пропорционально уменьшится.
Описание теста №3 (нагрузочный тест TPC-1C - Тест Гилева)
Производительность сервера определяется не загруженностью и очередями к процессору, а способностью выполнить количество операций в единицу времени.
Факт конкурирования за такие ресурсы как процессорное время, снижает скорость выполнения операций (время отклика = время операции + время ожидания оборудования + время логических ожиданий вроде блокировок), но ключевой характеристикой является скорость операции.
Примечание. Для процессора наиболее значимой характеристикой является частота процессора, а не загруженность. Чтобы оценить скорость в целом, можно использовать этот тест.
Тест дает оценку системы для работы с 1С (плохо, удовлетворительно, хорошо, замечательно) и позволяет сравнить ее с другими системами на основе накопленной статистики. Определяет примерное число пользователей 1С, работающих онлайн.
Результаты теста №1 (Тест-центр + База 1С:ERP от 1С)
Тест производился со следующими настройками:
![Настройки теста №1 Настройки теста №1](https://habrastorage.org/getpro/habr/upload_files/e7c/b73/5f7/e7cb735f7ed0ac3c6ede61e58c75f40a.png)
Ограничения выбираем из колонки X2:
TIMEOUT | X1 | X2 |
Наименование | Значение | Значение |
Общее количество одновременно запускаемых ВРМ | 0 | 0 |
кол-во одновременно запускаемых ВРМ агента | 10 | 10 |
Таймаут опроса агентов (с) | 20 | 40 |
Таймаут запуска клиентов (с) | 60 | 120 |
Число попыток запуска клиентов | 3 | 6 |
Таймаут опроса клиента (с) | 60 | 120 |
Таймаут загрузки сценария с клиентом (с) | 300 | 600 |
Таймаут подготовки (с) | 600 | 1 200 |
Таймаут инициализации (с) | 600 | 1 200 |
Таймаут выполнения (с) | 2 400 | 4 800 |
Таймаут записи результатов (с) | 600 | 1 200 |
Таймаут удаления данных (с) | 600 | 1 200 |
Пауза после запуска ВП | снята галка | снята галка |
Результаты теста (Тест-центр + База 1С:ERP от 1С) с таймаутами X2 с разделением по ОС/СУБД:
Astra Linux 1.7.3 (Смоленск) + Tantor Special Edition 1C database server 15
Номер итерации | Длительность(c) | Количество операций | APDEX |
1 | 4686 | 276 | 0,835 |
2 | 4681 | 21436 | 0,773 |
3 | 2064 | 10296 | 0,656 |
Centos 7 + Postgres 1С
Номер итерации | Длительность(c) | Количество операций | APDEX |
1 | 4687 | 279 | 0.817 |
2 | 4683 | 18402 | 0.733 |
3 | 2189 | 9193 | 0.600 |
Ubuntu 20.04 + Postgres Pro 1С 14 database server
Номер итерации | Длительность(c) | Количество операций | APDEX |
1 | 4686 | 256 | 0.830 |
2 | 4682 | 19568 | 0.765 |
3 | 1916 | 8766 | 0.643 |
Windows 2019 + MSSQL 2019
Номер итерации | Длительность(c) | Количество операций | APDEX |
1 | 4686 | 264 | 0.841 |
2 | 4681 | 16808 | 0.781 |
3 | 1804 | 1804 | 0.663 |
Итоговая таблица теста №1 (Тест-центр + База 1С:ERP от 1С):
ERP | Timeout X2 | |||
Количество ВРМ | ASTRA, TANTOR +тюнинг | Centos, Postgres 1С, +тюнинг | UBUNTU, PostgresPro, +тюнинг | Windows Server 2019, MS SQL 2019+тюнинг |
10 | 0,835 | 0,817 | 0,830 | 0,841 |
20 | 0,773 | 0,733 | 0,765 | 0,781 |
30 | 0,656 | 0,600 | 0,643 | 0,663 |
Результаты теста №2 (многопоточный тест производительности 1С Fragster)
Шкала Fragster | ||
Значение ОТ | Значение ДО | Результат |
<500 | Неприемлемо | |
500,00 | 749,00 | Плохо |
750,00 | 1000,00 | Удовлетворительно |
1001,00 | 1500,00 | Хорошо |
> 1500 | Замечательно |
Работа с Временными таблицами:
FRAGSTER | ASTRA, Tantor+тюнинг | Centos, Postgres 1С+тюнинг | Ubuntu, Postgres Pro+тюнинг | Windows Server 2019, MS SQL 2019+тюнинг |
Количество потоков | Результат на поток | Результат на поток | Результат на поток | Результат на поток |
Временные таблицы | ||||
1 | 5 489,00 | 5 016,00 | 6 120,00 | 7 419,00 |
2 | 4 556,50 | 5 249,50 | 4 904,00 | 8 046,00 |
4 | 4 346,75 | 3 797,75 | 3 643,00 | 5 871,50 |
8 | 2 636,75 | 2 744,38 | 2 863,63 | 4 729,88 |
16 | 1 494,25 | 1 782,44 | 1 861,69 | 3 243,31 |
32 | 826,72 | 911,28 | 1 057,09 | 1 753,94 |
48 | 529,46 | 661,35 | 663,40 | 1 313,85 |
64 | 386,78 | 467,58 | 475,97 | 1 023,86 |
80 | 306,10 | 385,23 | 414,19 | 798,21 |
96 | 249,22 | 329,57 | 339,24 | 657,21 |
Работа со Справочниками:
FRAGSTER | ASTRA, Tantor+тюнинг | Centos, Postgres 1С+тюнинг | Ubuntu, Postgres Pro+тюнинг | Windows Server 2019, MS SQL 2019+тюнинг |
Справочники | ||||
1 | 1 926,00 | 2 013,00 | 1 933,00 | 1 256,00 |
2 | 1 910,50 | 1 880,00 | 1 633,00 | 1 205,00 |
4 | 1 592,50 | 1 472,25 | 1 500,00 | 859,25 |
8 | 1 061,63 | 1 211,50 | 1 127,75 | 704,50 |
16 | 737,63 | 768,38 | 765,25 | 471,31 |
32 | 452,91 | 478,88 | 479,78 | 338,66 |
48 | 327,88 | 343,63 | 347,04 | 256,02 |
64 | 256,08 | 269,11 | 262,13 | 170,28 |
80 | 192,90 | 217,79 | 229,23 | 153,20 |
96 | 165,42 | 186,67 | 190,69 | 129,66 |
Работа с Регистром сведений:
FRAGSTER | ASTRA, Tantor+тюнинг | Centos, Postgres 1С+тюнинг | Ubuntu, Postgres Pro+тюнинг | Windows Server 2019, MS SQL 2019+тюнинг |
Регистры сведений | ||||
1 | 1 444,00 | 1 340,00 | 1 383,00 | 1 117,00 |
2 | 1 328,50 | 1 297,50 | 1 344,50 | 989,50 |
4 | 1 077,50 | 1 112,25 | 1 159,25 | 691,00 |
8 | 768,50 | 832,88 | 805,38 | 532,50 |
16 | 543,13 | 546,44 | 530,06 | 389,19 |
32 | 322,28 | 311,84 | 339,13 | 260,84 |
48 | 221,04 | 247,81 | 243,60 | 174,67 |
64 | 171,58 | 187,66 | 182,00 | 142,39 |
80 | 139,25 | 152,19 | 151,26 | 118,28 |
96 | 111,26 | 133,23 | 130,38 | 99,19 |
Работа с Регистром накоплений:
FRAGSTER | ASTRA, Tantor+тюнинг | Centos, Postgres 1С+тюнинг | Ubuntu, Postgres Pro+тюнинг | Windows Server 2019, MS SQL 2019+тюнинг |
Регистры накопления | ||||
1 | 1 285,00 | 1 212,00 | 1 295,00 | 949,00 |
2 | 1 225,00 | 1 137,50 | 1 251,50 | 766,00 |
4 | 980,00 | 995,00 | 1 051,25 | 682,00 |
8 | 722,75 | 758,38 | 743,00 | 488,25 |
16 | 491,06 | 501,63 | 517,63 | 362,19 |
32 | 278,81 | 313,38 | 297,16 | 236,53 |
48 | 190,38 | 211,54 | 217,75 | 174,94 |
64 | 143,42 | 169,33 | 171,00 | 133,28 |
80 | 103,39 | 120,24 | 136,71 | 109,30 |
96 | 79,32 | 111,77 | 117,24 | 93,71 |
Работа с Регистрами бухгалтерии:
FRAGSTER | ASTRA, Tantor+тюнинг | Centos, Postgres 1С+тюнинг | Ubuntu, Postgres Pro+тюнинг | Windows Server 2019, MS SQL 2019+тюнинг |
Регистры бухгалтерии | ||||
1 | 1 349,00 | 1 320,00 | 1 355,00 | 938,00 |
2 | 1 159,00 | 1 215,50 | 1 263,00 | 825,50 |
4 | 1 009,00 | 1 043,25 | 1 046,00 | 717,25 |
8 | 725,38 | 792,38 | 768,25 | 595,63 |
16 | 503,44 | 528,88 | 550,69 | 361,44 |
32 | 288,13 | 330,25 | 311,56 | 256,91 |
48 | 212,79 | 233,60 | 221,71 | 180,52 |
64 | 158,14 | 182,78 | 177,58 | 143,69 |
80 | 127,23 | 144,98 | 147,05 | 112,46 |
96 | 106,06 | 121,65 | 124,81 | 102,98 |
Номер потока, где результат заканчивается на уровне ХОРОШО (чем более высокое кол-во, с тем лучше работает СУБД):
ASTRA, Tantor+тюнинг | Centos, Postgres 1С+тюнинг | Ubuntu, Postgres Pro+тюнинг | Windows Server 2019, MS SQL 2019+тюнинг | |
Временные таблицы | 16 | 16 | 32 | 64 |
Справочники | 8 | 8 | 8 | 2 |
Регистры сведений | 4 | 4 | 4 | 1 |
Регистры накоплений | 2 | 2 | 4 | 1 |
Регистры бухгалтерии | 4 | 4 | 4 | 0 |
Занимаемое место по более высоким показателям результата среди количества потоков и более высоким значением на одном уровне (1 - лучший результат, 4 - худший):
С чем лучше работает СУБД? | ASTRA, Tantor+тюнинг | Centos, Postgres 1С+тюнинг | Ubuntu, Postgres Pro+тюнинг | Windows Server 2019, MS SQL 2019+тюнинг |
Временные таблицы | 4 | 3 | 2 | 1 |
Справочники | 3 | 1 | 2 | 4 |
Регистры сведений | 3 | 2 | 1 | 4 |
Регистры накоплений | 2 | 3 | 1 | 4 |
Регистры бухгалтерии | 2 | 1 | 1 | 3 |
Результаты теста №3 (нагрузочный тест TPC-1C - Тест Гилева)
Справочные таблицы:
Результат теста | Оценка |
10 | Плохо |
15 | Удовлетворительно |
35 | Хорошо |
60 | Замечательно |
Многопоточная запись на диски | Оценка |
< 21 МБ/сек | Плохо |
22-43 МБ/сек | Удовлетворительно |
44-59 МБ/сек | Хорошо |
> 60 МБ/сек | Замечательно |
Результаты теста Гилева:
![Astra Linux 1.7.3 (Смоленск) + Tantor Special Edition 1C database server 15 Astra Linux 1.7.3 (Смоленск) + Tantor Special Edition 1C database server 15](https://habrastorage.org/getpro/habr/upload_files/180/1e4/748/1801e47481fc9f22129f9d2f8b08b48a.png)
![Centos 7 + Postgres 1С Centos 7 + Postgres 1С](https://habrastorage.org/getpro/habr/upload_files/c92/058/6ad/c920586adb0235c60cbc5df1d972a311.png)
![Ubuntu 20/04 + Postgres Pro 1С 14 database server Ubuntu 20/04 + Postgres Pro 1С 14 database server](https://habrastorage.org/getpro/habr/upload_files/530/520/93d/53052093da0990f4d7fa555ec1373400.png)
![Windows Server 2019 + MS SQL 2019 Windows Server 2019 + MS SQL 2019](https://habrastorage.org/getpro/habr/upload_files/1de/3be/78f/1de3be78fca7dc4ccaec2eb044c46974.png)
Сравнение показателей различных СУБД в тесте Гилева:
ASTRA, Tantor+тюнинг | Centos, Postgres 1С+тюнинг | Ubuntu, Postgres Pro+тюнинг | Windows Server 2019, MS SQL 2019+тюнинг | |
Текущий тест | 17,54 | 15,77 | 18,52 | 17,92 |
Размер строки | 976 | 1 568 | 1 712 | 480 |
Макс скорость на 1 поток (КБ/сек) | 98 945 | 52 472 | 61 439 | 39 800 |
Многопоточный тест дисков на запись | Замечательно ( > 60 МБ/сек) | Хорошо (44-59 МБ/сек) | Замечательно ( > 60 МБ/сек) | Удовлетворительно(22-43 МБ/сек) |
Рекомендуемое количество пользователей (Примерно) | 91 | 140 | 119 | 77 |
Макс скорость на (КБ/сек) | 340 623 | 265 515 | 271 636 | 109 600 |
СУБД для 1С и импортозамещение
Помимо прочего, стоит сказать, что многим компаниям сейчас уже требуется использовать ПО, входящее в Реестр российского программного обеспечения. Если для вашей компании такое требование обязательное, то стоит обратить внимание на СУБД из списка ниже:
Более детальный список ПО, замещающего MS SQL ниже:
https://catalog.arppsoft.ru/replacement/6090293
Также большинство СУБД требует денежных затрат для его использования, подробнее можно посмотреть в таблице ниже:
Наименование СУБД | Входит в Реестр | Использование лицензий |
Postgres 1С | Нет | Свободное |
Postgres Pro 1С | Да | Коммерческое |
Tantor Special Edition 1C | Да | Коммерческое |
MS SQL Server | Нет | Коммерческое |
Выводы
Мы протестировали 4 СУБД в связке с 1С. Подводя итоги, стоит еще раз взглянуть на следующие показатели:
Тест 1 (Тест-центр + База 1С:ERP от 1С, показатель APDEX):
ERP | Timeout X2 | |||
Количество ВРМ | ASTRA, Tantor+тюнинг | Centos, Postgres 1С+тюнинг | Ubuntu, Postgres Pro+тюнинг | Windows Server 2019, MS SQL 2019+тюнинг |
10 | 0,835 | 0,817 | 0,830 | 0,841 |
20 | 0,773 | 0,733 | 0,765 | 0,781 |
30 | 0,656 | 0,600 | 0,643 | 0,663 |
Результаты теста 1 распределили места следующим образом (от лучшего к худшему):
Windows Server 2019 + MS SQL 2019.
Astra Linux + TANTOR.
UBUNTU + PostgresPro.
Centos+Postgresql 1С.
Тест 2 (FRAGSTER, Многопоточный нагрузочный тест):
С чем лучше работает СУБД? | ASTRA, Tantor+тюнинг | Centos, Postgres 1С+тюнинг | Ubuntu, Postgres Pro+тюнинг | Windows Server 2019, MS SQL 2019+тюнинг |
Временные таблицы | 4 | 3 | 2 | 1 |
Справочники | 3 | 1 | 2 | 4 |
Регистры сведений | 3 | 2 | 1 | 4 |
Регистры накоплений | 2 | 3 | 1 | 4 |
Регистры бухгалтерии | 2 | 1 | 1 | 3 |
Результаты теста 2 позволяют сделать выводы:
Windows Server 2019 + MS SQL 2019 - связка лучше всех в работе с временными таблицами.
Ubuntu + Postgres Pro - лучше всего результаты с Регистрами сведений, накоплений, бухгалтерии.
Centos + PostgreSQL 1С - связка хорошо себя показывает в работе со Справочниками и Регистрами бухгалтерии.
Astra Linux + TANTOR - связка показывает средние места во всём, кроме Временных таблиц.
Тест 3 (Нагрузочный тест Гилева):
ASTRA, Tantor+тюнинг | Centos, Postgres 1С+тюнинг | Ubuntu, Postgres Pro+тюнинг | Windows Server 2019, MS SQL 2019+тюнинг | |
Текущий тест | 17,54 | 15,77 | 18,52 | 17,92 |
Размер строки | 976 | 1 568 | 1 712 | 480 |
Макс скорость на 1 поток (КБ/сек) | 98 945 | 52 472 | 61 439 | 39 800 |
Многопоточный тест дисков на запись | Замечательно ( > 60 МБ/сек) | Хорошо (44-59 МБ/сек) | Замечательно ( > 60 МБ/сек) | Удовлетворительно(22-43 МБ/сек) |
Рекомендуемое количество пользователей (Примерно) | 91 | 140 | 119 | 77 |
Макс скорость на (КБ/сек) | 340 623 | 265 515 | 271 636 | 109 600 |
Результаты теста 3 позволяют сделать выводы о следующем:
Ubuntu + Postgres Pro - лучшая связка в однопоточном тесте.
Astra Linux + TANTOR - связка показывает лучшие показатели в многопоточном тесте дисков на запись.
Centos + PostgreSQL 1С - самое большое количество примерно рекомендуемых пользователей.
Windows Server 2019 + MS SQL 2019 - связка показала не лучшие результаты в данном тесте.
При выборе СУБД для работы с 1С:Предприятие стоит учесть: особенности имеющейся серверной инфраструктуры, характеристики железа, наличие уже существующего ПО, квалификацию персонала поддержки, который будет обслуживать эту инфраструктуру, и, конечно же, бюджет. Поэтому конечный выбор остается за конкретной компанией, но подобные тесты тоже стоит принять во внимание.