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

Тесты дисковой подсистемы 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С | 950 Gb | |
| PosgreSQL 17.4 | - | 
Глава 2. Методика тестирования
В рамках данной статьи мы применяем методику анализа, используя абсолютные и относительные значения погрешности.
Описание методики определения погрешностей:
- определяются идеальные условия испытаний. В нашем случае это 
 аппаратные сервера с ролями сервера 1С и СУБД, объединенные в 10GB сеть;
- 
замер значений: - аппаратный сервер 1C (Windows) + аппаратный сервер MS SQL 2022 (Windows), 3 теста (один “прогревочный” для кеширования базы); 
- аппаратный сервер 1C (Windows) + аппаратный сервер PostgreSQL 17.4 (Ubuntu Server 24.04). 3 теста (один “прогревочный” для кеширования базы) 
 
- 
вычисляем значения по формуле абсолютной погрешности и относительной:  Рисунок 3 — Формула оценки абсолютной погрешности. 

Проводим расширенные нагрузочные испытания для понимания предела работы стенда, чтобы избежать наличия “узких” мест:
- задаем субъективно избыточное число пользователей, для данной связки оборудования — 1500 сеансов; 
- уменьшаем число сеансов, до тех пор, пока показатели времени выполнения и APDEX существенно не уменьшатся при дальнейшем сокращении числа сеансов; 
- начиная с 750 сеансов, показатели существенно не уменьшались при дальнейшем уменьшении числа пользователей; 
- для данной связки мы остановились на 500 сеансах 1С. 
Проводим замер целевых значений (конфигурация теста APDEX - 500 пользователей):
- 
выполняем замер тестов APDEX, используя, связки: а) ВМ 1C (Windows) + ВМ MS SQL 2022 (Windows); б) ВМ 1C (Windows) + ВМ PostgreSQL 17.4 (Ubuntu Server) 
- замеряем по одному разу, результаты вносим в таблицу. В таблице указываем два параметра — значение 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

- 
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 
 
Для выполнения операций пользовались документом представленном на официальном сайте:
В данном документе содержится еще много параметров для тюнинга. В рамках нашей задачи хватило тех, что мы описали выше. Досадно, что такого подробного документа нет для Intel систем.
В результате на процессоре AMD получаем фиксированную в 3.8 ГГц частоту по всем 24 ядрам.
Тюнинг процессора 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 сервер
- используем нашу статью для установки MS SQL 2022: 
- используем материалы с сайта ИТС 1С для тюнинга БД. 
Данных инструкций будет достаточно для базовой настройки SQL сервера.
Часть 4. Оптимизации программной части. PostgreSQL сервер
- используем материалы с сайта ИТС 1С для тюнинга БД. 
Опишем основные изменения:
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
Предлагаем сообществу выбрать тему нашего следующего исследования:
- huge pages — тестирование корректировки параметров в демо базе 1C; 
- temp_memory_catalog — тестирование настройки в демо базе 1С и PostgreSQL 17; 
- Proxmox (KVM) — тестирование работы системы на 500 сеансах в демо базе 1С в сравнении с Hyper-V. 
 
           
 
edyatl
Является ли автор статьи или его организация заинтересованной стороной в продвижении импортозамещения? И с каких пор Postgres стал "отечественным"?
fedorro
Если верить соответствующему реестру - ещё с 2016:
Ну и даже если брать обычный Postgres - он опенсорсный, что под импортозамещение ПО, вроде, тоже годится.
edyatl
Postgres отличная опенсорсная СУБД, но в выдавании опенсорсного ПО за "отечественное" чувствуется некоторое передёргивание, или нет?
С реестром конечно не поспоришь, раз в реестре то в реестре. Больше реестров богу реестров.
fedorro
А кто выдает? В статье - нет, в реестре нет, Pro-версия хорошо доработана отечественными разработчиками, которые хорошо пушат и в опенсорсный вариант, и даже к логотипу руку приложили наши дизайнеры. Так что даже передергивание будет не стопроцентным.
edyatl
Разве?
Это как бы намекает. Данное вступление вообще зачем?