Выбор и настройка сервера для 1С и PostgreSQL на 70 пользователей: как устранить тормоза и повысить тест Гилева?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В данной статье мы подробно разберем задачу подбора оборудования для сервера 1С:Предприятие, работающего в связке с PostgreSQL. Мы проанализируем реальную ситуацию, когда текущее оборудование перестало справляться с нагрузкой (70 пользователей, тест Гилева 8-9 баллов), и рассмотрим, какие характеристики железа являются критичными для производительности системы.

Анализ текущей ситуации и узких мест

Рассмотрим исходные данные. Имеется сервер на базе двух процессоров Xeon E5-2620 v2 (2.10GHz), 128 Гб ОЗУ и RAID 10 из SATA SSD. Операционная система Windows 2008R2, СУБД PostgreSQL. Пользователи жалуются на медленное проведение документов и формирование отчетов.

Проанализируем результаты синтетического теста Гилева (TPC-1C). Показатель в 8-9 баллов является критически низким ("Плохо"). Это свидетельствует о том, что система не справляется с однопоточной нагрузкой. Основные причины тормозов в данном случае:

  1. Низкая тактовая частота процессора. Базовая частота 2.1 ГГц недостаточна для современных конфигураций 1С, которые крайне требовательны к скорости одного ядра.
  2. Устаревшая дисковая подсистема. Использование SATA SSD через старый RAID-контроллер создает бутылочное горлышко при работе с базами данных, требующими большого количества операций ввода-вывода (IOPS).
  3. Операционная система. PostgreSQL под Windows работает менее эффективно, чем под Linux, из-за особенностей работы с процессами и файловой системой.

Главный критерий процессора: Ядра или Частота?

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

Архитектура 1С устроена так, что выполнение кода в рамках одной сессии (проведение документа, выполнение запроса) происходит последовательно в одном потоке. Если у вас будет 56 ядер с частотой 2.0 ГГц, один пользовательский процесс все равно будет выполняться медленно, так как он не может "размазаться" по всем ядрам.

Рекомендация: Нам нужны процессоры с максимально высокой базовой частотой (от 3.0 ГГц и выше) и современным техпроцессом (высокий IPC — количество инструкций за такт).

В обсуждении предлагались два варианта:


Вариант 1 (Предпочтительный): 2 процессора Xeon Gold 6334 (8 ядер, 3.6 ГГц).
Вариант 2 (Неподходящий): 2 процессора Xeon Gold 5420+ (28 ядер, 2.0 ГГц).

Первый вариант обеспечит значительно более высокую отзывчивость системы, несмотря на меньшее количество ядер. Для 70 пользователей 16-24 быстрых физических ядер вполне достаточно.

Серверное железо против десктопного ("Бытового")

Существует дискуссия о целесообразности использования топовых десктопных процессоров (например, Intel Core i9 или AMD Ryzen 9) в качестве серверов 1С. Разберем плюсы и минусы.

Плюсы десктопных решений:

Минусы и риски:

Для критически важных систем с 70 пользователями рекомендуется оставаться на серверной архитектуре (Xeon Gold / Platinum) или использовать десктопное железо только при наличии горячего резерва и полной готовности к простоям.

Дисковая подсистема: NVMe vs SATA

Рассмотрим выбор накопителей. SATA SSD (даже в RAID 10) уже не способны обеспечить необходимую скорость отклика для базы данных на 70 активных пользователей. Узким местом становится сам интерфейс SATA (максимум 600 Мб/с и высокие задержки).

Рекомендация: Переход на NVMe SSD обязателен.

Однако здесь есть важный нюанс — выбор между Consumer (бытовыми) и Enterprise (серверными) SSD:

  1. PLP (Power Loss Protection). Бытовые SSD (например, Samsung 980 Pro) используют DRAM-кэш для скорости. При сбое питания или "синем экране" (BSOD) данные из кэша могут не успеть записаться, что приведет к повреждению базы данных PostgreSQL. Серверные SSD имеют конденсаторы для защиты кэша (PLP).
  2. Ресурс записи (TBW). Серверные диски рассчитаны на постоянную запись, тогда как бытовые могут быстро исчерпать ресурс.

Если бюджет ограничен и используются бытовые NVMe, обязательно наличие надежного ИБП и регулярных бэкапов (желательно, транзакционных логов). Организация RAID для NVMe возможна программными средствами (VROC, mdraid в Linux) или средствами ZFS, так как аппаратные контроллеры для NVMe очень дороги.

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

Покупка нового железа — это только половина решения. Без правильной настройки софта прирост может быть незначительным.

1. Операционная система для СУБД

PostgreSQL значительно эффективнее работает в среде Linux. Это связано с:

Разумным решением будет вынести сервер СУБД на отдельную машину (или виртуальную машину) под управлением Linux, оставив сервер приложений 1С на Windows, если это необходимо администраторам, или также перевести его на Linux.

2. Настройка PostgreSQL

Конфигурационный файл postgresql.conf должен быть настроен под имеющееся железо. Стандартные настройки не используют всю доступную память. Обратите внимание на параметры:


shared_buffers = 25% от ОЗУ
effective_cache_size = 50-75% от ОЗУ
work_mem = рассчитывается исходя из кол-ва подключений
random_page_cost = 1.1 (для NVMe дисков)

NUMA-архитектура

Если вы выбираете двухпроцессорный сервер, необходимо помнить про NUMA (Non-Uniform Memory Access). Память разделена между процессорами. Если процесс выполняется на процессоре №1, а обращается к памяти процессора №2, возникают задержки.

Для 1С это критично. Решением может быть виртуализация: создание двух виртуальных серверов 1С на одном физическом, где каждая ВМ жестко привязана к своему процессору и его локальной памяти (CPU affinity). Это позволит избежать задержек межпроцессорной шины.

Итоговая рекомендуемая конфигурация

Для решения проблемы производительности на 70 пользователей и обеспечения надежности, рекомендуем следующую конфигурацию:

  1. Процессоры: Серверные процессоры с высокой базовой частотой (3.0–3.6 ГГц). Например, линейка Xeon Gold (модели заканчивающиеся на 4, 34, 54 и т.д., ориентированные на частоту) или современные AMD EPYC с высокой частотой.
  2. Диски для БД: Enterprise NVMe SSD (например, Samsung PM9a3, Intel/Solidigm серии D7) в зеркале (RAID 1 программный или VROC).
  3. ОЗУ: От 128 Гб DDR4/DDR5 ECC Reg.
  4. Софт: Разнесение ролей. PostgreSQL на Linux (оптимизированная сборка, например, от Postgres Pro или 1С), сервер 1С — по выбору, но с настроенным рабочим процессом.

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

← На главную