Какой процессор выбрать для сервера 1С и PostgreSQL: Xeon E5-2620 или Xeon E5-2623?

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

При проектировании или модернизации серверной инфраструктуры для платформы «1С:Предприятие 8.3», работающей в связке с СУБД PostgreSQL, системные администраторы часто сталкиваются с дилеммой выбора процессора. Особенно остро этот вопрос стоит при ограниченном бюджете, когда приходится выбирать между младшими моделями серверных линеек, такими как Xeon E5-2620 v4 и Xeon E5-2623 v4. С одной стороны, мы имеем большее количество ядер и увеличенный кэш, с другой — повышенную базовую тактовую частоту. Давайте подробно проанализируем обе архитектуры, разберем особенности работы платформы 1С и СУБД под нагрузкой и выясним, какое решение окажется наиболее эффективным в реальной эксплуатации.

Постановка задачи и исходные данные

Рассмотрим классический сценарий средней компании, который обсуждался нашими коллегами на форуме:

  1. Инфраструктура: Клиент-серверный вариант работы 1С 8.3 совместно с СУБД PostgreSQL.
  2. Нагрузка: От 20 до 30 активных тонких клиентов в локальной сети.
  3. Объем данных: Около 30 типовых информационных баз «1С:Бухгалтерия предприятия 3.0» (БП) и «1С:Зарплата и управление персоналом 3.1» (ЗУП).
  4. Характер нагрузки: Интенсивный запуск регламентных заданий (РЗ) в фоновом режиме (полнотекстовый поиск, загрузка классификаторов, оценка рисков, обмен данными, регламентированные отчеты). Пользователи активно используют тяжелые аналитические отчеты.
  5. Текущая проблема: Имеющегося четырехъядерного процессора потребительского класса Core i5-6500 с частотой 3.2 ГГц катастрофически не хватает. Причина — регламентные задания множества баз параллельно утилизируют все доступные вычислительные ресурсы, вызывая лаги у пользователей.

Технические характеристики дуэлянтов

Для того чтобы сделать осознанный выбор, детально сопоставим спецификации процессоров поколения Broadwell-EP (LGA 2011-3):

Intel Xeon E5-2620 v4:

Intel Xeon E5-2623 v4:

На первый взгляд кажется, что Xeon E5-2623 v4 за счет преимущества в частоте на 500 МГц (в базе) должен показать себя лучше в однопоточных задачах 1С, которые исторически «любят гигагерцы». Однако давайте углубимся в детали функционирования процессорных технологий и особенности многопоточной работы систем управления базами данных.

Анализ реальной частоты под нагрузкой (Turbo Boost)

Многие специалисты совершают ошибку, сравнивая только базовые частоты процессоров. В условиях реального сервера функции энергосбережения настраиваются на максимальную производительность (High Performance), а процессоры работают в режиме авторазгона Turbo Boost. Рассмотрим, как ведут себя частоты при нагрузке на все ядра (All-Core Turbo):

Таким образом, под реальной многопоточной нагрузкой разница в частоте между этими процессорами сокращается всего до 300 МГц (около 11%). Согласитесь, это совсем не те 500 МГц разницы, которые декларируются в базовых спецификациях. При этом Xeon E5-2620 v4 предлагает ровно в два раза больше физических ядер и вычислительных потоков.

Влияние объема кэш-памяти L3 на СУБД и 1С

Объем кэша третьего уровня (L3) — один из самых недооцененных параметров при выборе процессора под базы данных. Кэш L3 является общей быстрой памятью для всех ядер процессора. Когда рабочий процесс 1С (rphost) или процесс СУБД выполняет сложный запрос, он постоянно обращается к метаданным конфигурации, индексам таблиц и временным структурам данных.

Рассмотрим физику этого процесса. Если необходимые данные помещаются в кэш процессора, время доступа к ним (latency) составляет около 10–15 наносекунд. Если происходит промах кэша (L3 cache miss), процессор вынужден обращаться к оперативной памяти DDR4, где задержка возрастает до 60–80 наносекунд. То есть обращение к оперативной памяти происходит в 6–8 раз медленнее!

Имея 20 МБ кэша у Xeon E5-2620 v4 против 10 МБ у Xeon E5-2623 v4, сервер с гораздо большей вероятностью будет обрабатывать транзакции внутри кристалла процессора, не простаивая в ожидании ответов от шины оперативной памяти. В условиях одновременной работы 30 различных информационных баз этот фактор становится решающим.

Архитектурная специфика PostgreSQL

Выбор процессора под СУБД PostgreSQL имеет принципиальное отличие от аналогичного выбора под MS SQL Server. Давайте разберем этот механизм подробнее:

MS SQL Server использует собственную внутреннюю среду планирования задач (SQLOS) и работает в рамках единого системного процесса sqlservr.exe, распределяя задачи по потокам. PostgreSQL построен по многопроцессной архитектуре (process-based). Это означает, что на каждое новое подключение к базе данных операционная система Linux или Windows порождает отдельный изолированный процесс СУБД.

В нашем сценарии запущено 30 баз данных. Каждый сеанс пользователя 1С и каждое регламентное задание открывают свои соединения с PostgreSQL. В пиковые моменты на сервере будут запущены десятки независимых процессов СУБД, конкурирующих за процессорное время с рабочими процессами кластера 1С (rphost). Если мы выберем 4-ядерный Xeon E5-2623 v4, операционная система моментально уйдет в глубокий затык из-за накладных расходов на переключение контекста (context switching). Процессор будет тратить больше ресурсов на переключение между задачами, чем на их реальное выполнение.

Оптимизация работы сервера: отключать ли Hyper-Threading?

В среде специалистов по 1С ведутся бесконечные споры о пользе и вреде технологии виртуальных потоков Hyper-Threading (HT). Давайте проанализируем эту ситуацию с точки зрения теории процессорных архитектур.

Технология Hyper-Threading не удваивает физические исполнительные блоки ядра. Она лишь дублирует состояние архитектуры (регистры), позволяя более эффективно загружать конвейер процессора в моменты простоев. Если ядро выполняет сложную математическую задачу или операцию с плавающей точкой, виртуальный поток будет стоять в очереди. Если средняя утилизация физического ядра превышает 50%, включенный Hyper-Threading может приводить к микрозадержкам и росту очередей к планировщику ОС. Для серверов 1С с высокой интерактивной нагрузкой (когда критично мгновенное проведение документа одним пользователем) отключение HT часто дает прирост скорости на 10–15%.

Проанализируем наши процессоры при отключенном HT:

Рекомендованные настройки PostgreSQL под 1С

Для оптимизации распределения ресурсов на выбранном процессоре рекомендуется выполнить тонкую настройку конфигурационного файла postgresql.conf. Разберем основные параметры, которые помогут снизить нагрузку на процессор:


# Пример базовой настройки postgresql.conf для сервера с 32 ГБ ОЗУ и 8-ядерным CPU
max_connections = 150
shared_buffers = 8GB                  # 25% от общего объема ОЗУ
effective_cache_size = 24GB           # 75% от общего объема ОЗУ
maintenance_work_mem = 2GB
work_mem = 64MB                       # Ограничивает память на один запрос, снижает нагрузку на CPU при сортировках
max_worker_processes = 8              # Соответствует числу физических ядер
max_parallel_workers_per_gather = 2   # Ограничивает параллелизм для одного запроса
max_parallel_workers = 6

Как настроить процессы rphost в кластере 1С

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

  1. Установите параметр «Количество информационных баз на один процесс» в значение 1 или 2. Это изолирует тяжелые базы друг от друга в оперативной памяти.
  2. Параметр «Количество рабочих процессов на один процессор» настройте таким образом, чтобы общее число активных процессов rphost не превышало количество физических ядер процессора (в случае с E5-2620 v4 рекомендуется держать не более 4–6 процессов rphost, оставляя остальные ресурсы под PostgreSQL).
  3. Настройте перезапуск рабочих процессов по расписанию или по достижении определенного лимита памяти, чтобы предотвратить деградацию производительности из-за утечек памяти в неоптимально написанном коде конфигураций.

// Пример управления регламентными заданиями программным путем
// Если необходимо временно отключить или перенести регламентное задание во внешней обработке
РегламентноеЗадание = РегламентныеЗадания.НайтиПредопределенное(ПредопределенноеРегламентноеЗаданиеСсылка);
РегламентноеЗадание.Использование = Ложь;
РегламентноеЗадание.Записать();

Результаты тестов производительности (тест Гилева)

Обратимся к накопленной статистике замеров производительности TPC-1C (тест Гилева) для данных конфигураций:

Практический опыт эксплуатации показывает, что стабильность работы системы при пиковых нагрузках гораздо важнее для конечных пользователей, чем абстрактная скорость выполнения одной операции в монопольном режиме. Бухгалтер не заметит разницы, если документ проведется за 0.9 секунды вместо 0.8 секунды, но он обязательно устроит панику, если из-за фонового обновления СПАРК-рисков в соседней базе его сеанс «зависнет» на 10-15 секунд.

Взгляд на перспективу: ограничения платформы LGA 2011-3

Проанализируем ситуацию шире. Оба рассматриваемых процессора относятся к архитектурам прошлых поколений. Их показатель IPC (количество инструкций, выполняемых за один такт) существенно уступает современным решениям. Кроме того, они ограничены использованием медленной памяти DDR4 с частотой до 2133 МГц.

Если перед вами стоит задача покупки исключительно нового оборудования с запасом прочности на 5–7 лет, имеет смысл рассмотреть современные однопроцессорные платформы. Например, процессоры линейки Intel Xeon E-2400 или серверные варианты AMD Ryzen PRO предлагают базовые частоты выше 4.5 ГГц, работу с быстрой памятью DDR5 и современную микроархитектуру. В тестах производительности такие решения с легкостью выдают 80–110 попугаев, что решает любые проблемы с производительностью 1С без сложного тюнинга системы.

Тем не менее, если закупка производится в рамках строгого бюджета и выбор ограничен исключительно моделями E5-2620 v4 и E5-2623 v4, чаша весов однозначно склоняется в пользу первого варианта.

Итоговый вердикт и рекомендации

Подводя итог нашему детальному анализу, сформулируем рекомендации по выбору и настройке оборудования:

  1. Однозначный выбор — Xeon E5-2620 v4. Наличие 8 физических ядер и 20 МБ кэша L3 перевешивает незначительное преимущество соперника в тактовой частоте. Этот процессор обеспечит необходимую многозадачность для обслуживания 30 баз данных и фоновых регламентных заданий.
  2. Обязательно отключите Hyper-Threading в BIOS сервера. Это позволит операционной системе распределять процессы 1С и PostgreSQL по честным физическим ядрам без лишних задержек на планирование виртуальных потоков.
  3. Настройте схему электропитания. В настройках BIOS сервера (режим Performance) и в операционной системе установите профиль «Максимальная производительность». Это заставит процессор всегда работать на максимальной частоте Turbo Boost (2.6 ГГц для всех ядер процессора E5-2620 v4), минуя режимы глубокого энергосбережения.
  4. Разнесите дисковую подсистему. Никакой процессор не спасет систему от тормозов, если базы данных будут лежать на медленных дисках. Используйте производительные SSD-накопители enterprise-класса (желательно NVMe) для размещения баз PostgreSQL и временных файлов (tempdb / temp_tablespaces).
← На главную