Почему тормозит и зависает 1С:ERP на мощном сервере с процессором AMD Epyc: причины и решения

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

Ситуация, когда на первый взгляд мощное оборудование (например, 32-ядерный AMD Epyc) показывает крайне низкую производительность в 1С, встречается довольно часто. Проблема «зависания» баз, когда конфигуратор открывается по 30–40 минут, а отладка становится невозможной, обычно кроется не в самой платформе 1С, а в комплексных настройках серверной инфраструктуры, виртуализации и распределении ресурсов. Рассмотрим подробно, как диагностировать и устранить эти проблемы.

Анализ архитектуры и ресурсов: почему 40 ГБ RAM — это мало для ERP

Проанализируем ситуацию, описанную в теме: на сервере развернута 1С:ERP и Бухгалтерия КОРП для нужд разработки. Автор указывает объем оперативной памяти в 40 ГБ. Для обычных файловых баз это значительный объем, но для ERP в режиме разработки этого критически мало.

Разберем по шагам, куда уходит память:

  1. Процессы rphost: Каждый сеанс разработчика в тяжелой конфигурации может потреблять от 2 до 8 ГБ оперативной памяти, особенно при выполнении ресурсоемких операций (сравнение/объединение конфигураций, запуск отладки, расчет себестоимости).
  2. Кэширование: Сервер 1С активно использует кэш для ускорения работы. При нехватке физической памяти система начинает использовать Swap (файл подкачки) на диске.
  3. Операционная система: Windows Server 2016 сам по себе требует ресурсов для стабильной работы ролей терминального сервера.

Если на сервере работают 4–7 разработчиков, суммарная потребность в памяти легко превышает 60–80 ГБ. Как только память заканчивается, сервер «впадает в ступор», что пользователи воспринимают как зависание программы. Для точной оценки необходимых ресурсов серверов 1С и СУБД можно использовать калькулятор расчета параметров оборудования.

Особенности работы на процессорах AMD Epyc и архитектура NUMA

Процессоры AMD Epyc имеют многокристальную компоновку. Это означает, что процессор состоит из нескольких чиплетов, и доступ к памяти организован через разные контроллеры. Если виртуальная машина «размазана» по разным узлам NUMA, возникают огромные задержки при обращении к данным в RAM.

Выясним причину тормозов на уровне BIOS и гипервизора:

  1. Проверим настройку Nodes Per Socket (NPS). Для максимальной производительности 1С рекомендуется устанавливать NPS=4. Это позволяет операционной системе лучше понимать топологию памяти.
  2. Отключим функции энергосбережения. В BIOS необходимо выставить режим Static High Performance. Процессоры AMD часто сбрасывают частоту при отсутствии мгновенной нагрузки, а «пробуждение» ядра занимает миллисекунды, что для 1С критично.
  3. В настройках Windows Server выставим план электропитания «Высокая производительность».

Настройка виртуализации VMware для 1С

Если 1С работает внутри виртуальной машины VMware, необходимо исключить влияние механизмов динамического распределения ресурсов гипервизора, которые могут «подрезать» производительность сервера 1С.

Выполним следующие рекомендации:

Сетевые задержки между сервером приложений и SQL

В обсуждаемой теме сервер 1С и сервер SQL разнесены на разные виртуальные машины. Рассмотрим, как это влияет на скорость. 1С генерирует тысячи мелких запросов к базе данных при открытии форм или формировании отчетов. Даже задержка в 1–2 мс на сетевом уровне превращается в минуты ожидания для конечного пользователя.

Проанализируем ситуацию: если между серверами есть сетевой «хоп» или виртуальный коммутатор работает с задержками, 1С будет «висеть» на каждом серверном вызове. Рекомендуется размещать сервер 1С и SQL на одном физическом хосте в рамках одной виртуальной сети или использовать Shared Memory (если они на одной ОС), что даст прирост производительности до 15-20%.

Диагностика через Технологический журнал (ТЖ)

Для того чтобы точно понять, на чем именно «зависает» база, необходимо настроить сбор логов. Рассмотрим пример конфигурационного файла logcfg.xml для поиска длительных операций:


<config xmlns="http://v8.1c.ru/7.4/config/logcfg">
  <dump location="C:\Dumps" create="1" interval="10" />
  <log location="C:\Logs\LongOps" history="24">
    <event>
      <eq property="name" value="SDBL"/>
      <gt property="duration" value="100000"/>
    </event>
    <event>
      <eq property="name" value="CALL"/>
      <gt property="duration" value="500000"/>
    </event>
    <property name="all"/>
  </log>
</config>

В данном примере мы фиксируем все обращения к базе данных (SDBL) длительностью более 0.1 секунды и серверные вызовы (CALL) более 0.5 секунды. Проанализировав эти логи, мы сможем увидеть, что именно происходит в те 30 минут, пока открывается конфигурация. Для автоматизации сбора технологического журнала и анализа узких мест можно применить инструмент замера производительности контура 1С.

Антивирусная защита и исключения

Часто системные администраторы забывают настроить исключения для антивируса (в том числе встроенного Windows Defender). Проанализируем список необходимых исключений:

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

Подводя итог, можно сказать, что «зависание» мощного сервера на базе AMD Epyc при работе с 1С:ERP чаще всего связано с неправильным распределением памяти и настройками виртуализации.

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

  1. Увеличим объем оперативной памяти до минимум 64–128 ГБ для сервера разработки ERP.
  2. Настроим Memory Reservation в VMware, чтобы исключить конкуренцию за RAM.
  3. Выставим режим максимальной производительности в BIOS и ОС.
  4. Проверим сетевые задержки между сервером 1С и SQL (ping должен быть менее 1 мс).
  5. Обновим платформу 1С до актуальных релизов (ветки 8.3.22 и выше), так как в старой версии 8.3.17 наблюдались проблемы с управлением памятью в тяжелых конфигурациях.
← На главную