Сравнение производительности 1С в СУБД MS SQL 2022 и PostgreSQL 17 на 500 пользователей

17.07.25

База данных - HighLoad оптимизация

Тест 1С: PostgreSQL 17 vs MS SQL 2022 для 500 пользователей. Результаты APDEX и времени выполнения. Анализ виртуализации и standalone. Читайте подробнее в статье.

В начале 2025 года компания 1С обновила свою демо базу ERP. Учитывая последние тенденции к импортозамещению, интересно было проверить:

  • кто быстрее в 2025 году — MS SQL 2022 или PostgreSQL 17.4 в режиме виртуализации и Standalone?

 

Глава 1. Тестовый стенд

 

Аппаратная среда

Сервер 1С

AMD EPYC 74F3 24/48 3.2 - 4.0 Ghz

512 Gb ECC DDR4

1x7.68 Tb NVME SSD Micron MTFDKCC7T6TFR

Сервер СУБД

Intel Xeon Platinum 8260 24/48 2.4 - 3.9 Ghz

256 GB ECC DDR4

1x1.7Tb  NVME SSD Samsung MZQL21T9HCJR-00A07

Сеть 10 Gb

 

 

Тесты дисковой подсистемы AMD

 

Рисунок 1 —  Производительность дисковой подсистемы сервера 1С (AMD).

Рисунок 1 — Производительность дисковой подсистемы сервера 1С (AMD).

 

 

Тесты дисковой подсистемы Intel

 

Рисунок 2 — Производительность дисковой подсистемы сервера СУБД (Intel).

Рисунок 2 — Производительность дисковой подсистемы сервера СУБД (Intel).

 

 

Программная среда

 

 

Виртуальные машины (ВМ)

Standalone серверы

ОС

Ubuntu Server 24.04

Windows Server 2025

Ubuntu Server 24.04

Windows Server 2025

СУБД

PostgreSQL 17.4

MS SQL 2022

PostgreSQL 17.4

MS SQL 2022

Платформа

8.3.27.1507

 

В качестве системы виртуализации использовалась Hyper-V на базе WIndows Server 2025.

 

 

Выделяемые ресурсы для виртуальных машин:

 

  • Application сервер 1С — 46 ядер, 510  ГБ ОЗУ;

  • MS SQL 2022 сервер — 46 ядер, 250 ГБ ОЗУ;

  • PostgreSQL сервер — 46 ядер, 250 ГБ ОЗУ.

 

 

Инструменты тестирования

Название Ссылка  Объем базы
Тест-центр База 1С:ERP 2.5.17.117 от 1С
https://releases.1c.ru/additional_file?nick=EnterpriseERP20&path=Enterprise20%5cExtrafiles%5cE3K_2.5.17.117.dt
950 Gb
PosgreSQL 17.4 https://www.postgresql.org/  -

 

 

Глава 2.  Методика тестирования

В рамках данной статьи применяю методику анализа, используя абсолютные и относительные значения погрешности.

 

Описание методики определения погрешностей:

  1. определяются идеальные условия испытаний. В нашем случае это
    аппаратные сервера с ролями сервера 1С и СУБД, объединенные в 10GB сеть;

  2. замер значений:

    1. аппаратный сервер 1C (Windows) + аппаратный сервер MS SQL 2022 (Windows), 3 теста (один “прогревочный” для кеширования базы);

    2. аппаратный сервер 1C (Windows) +  аппаратный сервер PostgreSQL 17.4 (Ubuntu Server 24.04). 3 теста (один “прогревочный” для кеширования базы)

3. Вычисляем значения по формуле абсолютной погрешности и относительной:

 

Рисунок 3 — Формула оценки абсолютной погрешности.

Рисунок 3 — Формула оценки абсолютной погрешности.

 

Рисунок 4 — Формула оценки относительной погрешности.

Рисунок 4 — Формула оценки относительной погрешности.

 

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

  1. задаем субъективно избыточное число пользователей, для данной связки оборудования — 1500 сеансов;

  2. уменьшаем число сеансов, до тех пор, пока показатели времени выполнения и APDEX существенно не уменьшатся при дальнейшем сокращении числа сеансов;

  3. начиная с 750 сеансов, показатели существенно не уменьшались при дальнейшем уменьшении числа пользователей;

  4. для данной связки я остановился на 500 сеансах 1С.

 

Проводим замер целевых значений (конфигурация теста APDEX - 500 пользователей):

  1. выполняем замер тестов APDEX, используя, связки:

    а) ВМ 1C (Windows) + ВМ  MS SQL 2022 (Windows);

    б) ВМ 1C (Windows) + ВМ PostgreSQL 17.4 (Ubuntu Server)

  2. замеряем по одному разу, результаты вносим в таблицу. В таблице указываем два параметра — значение APDEX и время выполнения.

 

Примечание:

Тест  1C: КИП (APDEX).
В основе методики APDEX лежит набор инструментов 1С КИП. В данном случае использовался весь функционал методологии. Используются стандартная демонстрационная база ERP с сайта 1С.

Стандартная методология APDEX использует прогрессивную шкалу от 0 до 1, где 1 — это замечательный результат, а 0 — неудовлетворительный. Требуется указать целевое значение параметра производительности той или иной операции, создать сценарии и запустить тест. 

 

Шкала оценки APDEX

 

Шкала APDEX

Значение

Оценка

от

до

0.00

0.50

неприемлемо

0.50

0.70

очень плохо

0.70

0.85

плохо

0.85

0.94

хорошо

0.94

1.00

отлично

 

 

Глава 3. Оптимизации

 

Оптимизация аппаратной части

 

 

Тюнинг процессора AMD

 

Рисунок 5 — Оптимизация процессора AMD.

Рисунок 5 — Оптимизация процессора AMD.

 

  • Advanced – CPU Configuration

    • Global C-State Control – Disabled

    • Local Apic Mode – 2x APIC — Рекомендация AMD

  • Advanced – NB Configuration

    • Determinism Control – Manual

    • Determinism Slider – Performance — Аналог Max Performance на платах Intel от Supermicro.

    • APBDIS – 1

    • Fixed SOC P-State – P0
      Два последних параметра переводят AMD Infinity Fabric (шину) и контроллеры памяти в режим полной мощности и устраняет колебания времени ожидания.

    • DF C-States – Disabled — Отключает энергосберегающий режим для CPU

Для выполнения операций пользовались документом представленном на официальном сайте:

https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/tuning-guides/amd-epyc-7003-tg-workload-57011.pdf

В данном документе содержится еще много параметров для тюнинга. В рамках нашей задачи хватило тех, что мы описали выше. Досадно, что такого подробного документа нет для Intel систем.

В результате на процессоре AMD получаем фиксированную в 3.8 ГГц частоту по всем 24 ядрам. 

 

 

Тюнинг процессора Intel

 

 

Рисунок 6 — Оптимизация процессора Intel.

Рисунок 6 — Оптимизация процессора Intel.

 

  • Advanced

    • Extended APIC – Enable
      Для многоядерных CPU настройка обязательна. Иначе при установке роли Hyper-V, число ядер в системе упадет до 1.

  • Advanced - Advanced power management Configuration

    • Power Technology – Custom

    • Power Performance Tuning – Bios Controls EPB

    • Energy_perf_bias_cfg mode – Maximum Performance

    • CPU P-State Control

      • SpeedStep (P-States) — [Enable]

      • Config TDP — [Normal]

      • EIST PSD Function — [HW_ALL]

      • Turbo Mode — [Enable]

    • Hardware PM State Control

      • Hardware P-States — [Disable]

    • CPU C State Control

      • Autonomous Core C-State: [Disable]

      • CPU C6 report: [Disable]

      • Enhanced Halt State (C1E): [Disable]

    • Package C State Control

      • Package C-State  - [C0/C1 state]

    • CPU T-State Control

      • Software Controlled T-States [Enable]
        Не стоит трогать этот режим, если не хотим повредить CPU

В результате на процессоре Intel получаем фиксированную в 3.1 ГГц частоту по всем 24 ядрам.

 

 

Часть 3. Оптимизации программной части. MS SQL сервер

 

  • используем материалы с сайта ИТС 1С для тюнинга БД https://its.1c.ru/db/metod8dev/content/5904/hdoc .

 

Данных инструкций будет достаточно для базовой настройки SQL сервера.

 

Часть 4. Оптимизации программной части. PostgreSQL сервер

 

  • используем материалы с сайта ИТС 1С для тюнинга БД https://its.1c.ru/db/metod8dev#content:5866:hdoc .

 

Опишем основные изменения:

random_page_cost  = 1.1 (для SSD)
effective_io_concurrency = 200
min_wal_size = 4 gb
max_wal_size  = 10 gb

 

Примечание:

  • отсутствуют правки параметра huge_pages. Дело в том, что на ИТС про эти параметры данных нет, а значит настройки специфические.

  • начиная с версии 16.4, 1С добавила в свою сборку Postgres параметр enable_temp_memory_catalog. 

    https://dl03.1c.ru/content/AddCompPostgre/17_2_4_1C/postgreUpdate_ru.htm

    Параметр новый и, при определенных условиях, обещает ускорить работу с временными таблицами. На ИТС про него информации нет и в сборке от 1С настройка не активна.

 

 

Глава 4. Тестирование

 

Пример окна “Настройки запуска”:

 

 

 

 

1. Значение APDEX на эталонных серверах с MS SQL

 

Название

Значение APDEX эталонной структуры MS SQL

Время выполнения 

Количество замеров

Тест 1

0.925

1.927

138 297

Тест 2

0.922

1.955

135 219

Тест 3

0.928

1.942

136 298

Среднее значение

0.927

1.941

-

Относительная погрешность

0.41%

1.79%

-

Абсолютная погрешность

0.004

0.03

-

 

 

 

2. Значение APDEX на эталонных серверах с PostgreSQL

 

Название

Значение APDEX эталонной структуры Postgres

Время выполнения 

Количество замеров

Тест 1

0,946

1,689

139 830

Тест 2

0,948

1,652

137 718

Тест 3

0,946

1,633

135 479

Среднее значение

0.947

1.658

 -

Относительная погрешность

0.15%

4.26%

 -

Абсолютная погрешность

0.001

0.071

 -

 

 

 

3. Значение APDEX на виртуальных машин

 

Название

Значения APDEX виртуальных машин

Время выполнения 

Количество замеров

1C (Windows) + MS SQL 2022 (Windows)

0.913

2.214

125 219

1C (Windows) + Postgres 17.4 (Ubuntu Server)

0.936

2.104

129 515

 

Глава 5. Выводы

 

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

PostgreSQL 17.4 обходит MS SQL по показаниям APDEX и времени выполнения как в режиме виртуализации, так и в Standalone режиме. Причем в Standalone режиме на впечатляющие 17.2%.

 

Таблица сравнения производительности APDEX и времени выполнения, учитывая погрешности метода:

 

 

Разница

APDEX

Время выполнения

ВМ

PostgreSQL быстрее на 2.5%

PostgreSQL быстрее на 5.2%

Физический сервер

PostgreSQL быстрее на 2.2%

PostgreSQL быстрее на 17.2%

 

 

Интерпретация результатов APDEX

 

  • APDEX-тест анализирует тысячи параметров и замеров, выдавая усредненную оценку. В данном случае он показывает, что система работает быстро как в виртуализации, так и на физическом сервере.

  • Если нам не требуется измерять большое число параметров системы, то следует использовать параметр “время выполнения”.

Вступайте в нашу телеграмм-группу Инфостарт

Производительность 1С APDEX PostgreSQL MS SQL

См. также

HighLoad оптимизация Программист 1С v8.3 1C:ERP Бесплатно (free)

Приведем примеры использования различных в динамических списках и посмотрим, почему это плохо.

18.02.2025    5388    ivanov660    39    

59

HighLoad оптимизация Технологический журнал Системный администратор Программист Бесплатно (free)

Обсудим поиск и разбор причин длительных серверных вызовов CALL, SCALL.

24.06.2024    8010    ivanov660    13    

60

HighLoad оптимизация Программист 1С v8.3 Бесплатно (free)

Метод очень медленно работает, когда параметр приемник содержит намного меньше свойств, чем источник.

06.06.2024    13302    Evg-Lylyk    69    

45

HighLoad оптимизация Программист 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Анализ простого плана запроса. Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы.

13.03.2024    6432    spyke    29    

52

HighLoad оптимизация Программист 1С v8.3 Бесплатно (free)

Оказывается, в типовых конфигурациях 1С есть, что улучшить!

13.03.2024    9604    vasilev2015    22    

44

HighLoad оптимизация Инструменты администратора БД Системный администратор Программист 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих запросов на sql, ожиданий, конвертация запроса в 1С и рекомендации, где может тормозить.

5 стартмани

15.02.2024    16055    310    ZAOSTG    100    

121
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. paulwist 18.07.25 08:12 Сейчас в теме
используем материалы с сайта ИТС 1С для тюнинга БД.


Ссылки битые в обоих случаях.
triviumfan; +1 Ответить
4. Metrika42 9 18.07.25 11:09 Сейчас в теме
(1) Добрый день! Спасибо за обратную связь. Из-за особенностей обработки ссылок данной площадкой - заменил на текстовые (также часть информации доступна после авторизации на внешних ресурсов).
2. triviumfan 102 18.07.25 10:42 Сейчас в теме
Ждем товарища Гилёва, думаю, он скоро появится, а сам боюсь комментировать :-)
PS: почему-то прошлую статью автора приняли "в штыки".
3. vde69 931 18.07.25 11:01 Сейчас в теме
почему не расписали на каких файловых системах проводили тесты?

для субд это очень важный показатель.... производительность Postgre на NTFS, FAT32, ext4, JFS будет сильно разная....
6. Metrika42 9 18.07.25 12:52 Сейчас в теме
(3) Добрый день! Тесты проводились на дефолтных ФС: NTFS и ext4 соответственно.
5. 2tvad 74 18.07.25 11:27 Сейчас в теме
Очень странная дисковая подсистема.

Для сервера бд один диск? Думаю, что в тесте все упирается именно в дисковую подсистему.
Оставьте свое сообщение