В начале 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

1c.postgres.ru

-

Глава 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 сервер

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

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

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

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-тест анализирует тысячи параметров и замеров, выдавая усредненную оценку. В данном случае он показывает, что система работает быстро как в виртуализации, так и на физическом сервере.

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

P.S

Предлагаем сообществу выбрать тему нашего следующего исследования:

  1. huge pages — тестирование корректировки параметров в демо базе 1C;

  2. temp_memory_catalog — тестирование настройки в демо базе 1С и PostgreSQL 17;

  3. Proxmox (KVM) — тестирование работы системы на 500 сеансах в демо базе 1С в сравнении с Hyper-V.

Комментарии (5)


  1. edyatl
    16.06.2025 12:50

    Является ли автор статьи или его организация заинтересованной стороной в продвижении импортозамещения? И с каких пор Postgres стал "отечественным"?


    1. fedorro
      16.06.2025 12:50

      И с каких пор Postgres стал "отечественным"?

      Если верить соответствующему реестру - ещё с 2016:

      Ну и даже если брать обычный Postgres - он опенсорсный, что под импортозамещение ПО, вроде, тоже годится.


      1. edyatl
        16.06.2025 12:50

        Postgres отличная опенсорсная СУБД, но в выдавании опенсорсного ПО за "отечественное" чувствуется некоторое передёргивание, или нет?
        С реестром конечно не поспоришь, раз в реестре то в реестре. Больше реестров богу реестров.


        1. fedorro
          16.06.2025 12:50

          А кто выдает? В статье - нет, в реестре нет, Pro-версия хорошо доработана отечественными разработчиками, которые хорошо пушат и в опенсорсный вариант, и даже к логотипу руку приложили наши дизайнеры. Так что даже передергивание будет не стопроцентным.


          1. edyatl
            16.06.2025 12:50

            А кто выдает? В статье - нет

            Разве?

            Учитывая последние тенденции к импортозамещению, интересно было проверить

            Это как бы намекает. Данное вступление вообще зачем?