Как устранить быстрый рост использования оперативной памяти процессом rphost в 1С 8.3.13?

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

Ситуация, когда рабочий процесс 1С (rphost) начинает неконтролируемо потреблять оперативную память, является критической для стабильности всей системы. Особенно остро эта проблема проявляется на платформе версии 8.3.13, где механизмы управления ресурсами претерпели значительные изменения. В данной статье мы подробно разберем, почему сервер может игнорировать установленные лимиты, как правильно настроить кластер и какие системные параметры ОС влияют на стабильность работы.

Анализ лицензионных ограничений: ПРОФ против КОРП

Первым делом проанализируем ситуацию с лицензированием. Начиная с версий 8.3.12–8.3.14, компания 1С жестко разграничила функционал уровней ПРОФ и КОРП. Многие администраторы сталкиваются с тем, что настройки ограничения памяти в консоли администрирования (например, "Безопасный расход памяти за один вызов" или "Максимальный объем памяти рабочих процессов") просто не применяются.

Важный момент: если у вас используются лицензии уровня ПРОФ, то расширенные функции управления ресурсами в кластере (например, блокировка сеансов по расписанию) будут игнорироваться сервером. Процесс rphost будет потреблять память до тех пор, пока не исчерпает физические ресурсы или не вызовет сбой ОС. Если вы видите, что установленный лимит в 32 ГБ игнорируется и процесс вырастает до 70 ГБ, скорее всего, ваша лицензия не позволяет использовать данные ограничения.

Настройка параметров рабочего сервера и кластера

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

  1. Интервал перезапуска рабочих процессов: В сообщениях темы часто встречается значение 3600 секунд (1 час). Это слишком агрессивный интервал, который может приводить к обрыву активных сессий пользователей. Рекомендуем установить значение 86400 (24 часа), чтобы процессы обновлялись раз в сутки в период наименьшей нагрузки.
  2. Допустимый объем памяти: Этот параметр определяет порог, после которого процесс считается "раздутым". Для сервера с 128 ГБ ОЗУ разумно ограничить один процесс rphost значением около 30–40 ГБ (в байтах).
  3. Интервал превышения допустимого объема памяти: Если этот параметр равен 0, сервер не будет предпринимать попыток остановить процесс при превышении лимита. Установите значение 60 или 120 секунд. Это даст системе время понять, что рост памяти не является кратковременным всплеском, и инициировать штатное завершение процесса с переносом соединений на новый rphost.
  4. Выключенные процессы: Установите "Останавливать через" в значение 300 секунд. Это позволит старому процессу, который превысил лимит, спокойно завершить текущие операции и закрыться.

Оптимизация регламентных заданий и сеансов

Выясним причину взрывного роста памяти. Часто это связано с тяжелыми отчетами или некорректно работающими регламентными заданиями. Проанализируем список активных соединений:

Проверьте наличие "зависших" или дублирующихся сеансов. Бывают ситуации, когда пользователь не дожидается открытия программы и запускает её несколько раз подряд. Каждый такой запуск в момент формирования тяжелых данных создает колоссальную нагрузку на rphost.

Рассмотрим работу регламентных заданий. В конфигурациях типа "Управление торговлей 10.3" многие процессы (расчет себестоимости, закрытие месяца, обновление индексов полнотекстового поиска) могут запускаться автоматически. Если программисты внесли изменения в код этих заданий без оптимизации запросов, они могут вызывать утечку памяти. Рекомендуется временно отключить необязательные задания и включать их по одному, отслеживая динамику потребления ресурсов.

Использование Технологического журнала (ТЖ) для диагностики

Для глубокого расследования причин инцидента нам потребуется настроить Технологический журнал. Это позволит точно определить, какой именно программный код вызывает рост памяти. Создадим файл logcfg.xml в каталоге настроек сервера 1С со следующим содержанием:


<config xmlns="http://v8.1c.ru/7.4/get/logcfg">
  <log location="C:\LOGS\MEMORY" history="24">
    <event>
      <eq property="Name" value="MEM"/>
    </event>
    <event>
      <eq property="Name" value="LEAK"/>
    </event>
    <property name="All"/>
  </log>
</config>

Событие MEM фиксирует значительные изменения в распределении памяти, а LEAK помогает выявить фрагментацию и утечки. Проанализировав логи в момент скачка до 70 ГБ, вы увидите контекст выполнения (имя процедуры, пользователя и метаданные объекта), что позволит передать конкретную задачу разработчикам на оптимизацию.

Настройка сетевого стека и операционной системы

Иногда проблема кроется не в самой 1С, а в том, как ОС Windows обрабатывает большое количество соединений. Проанализируем настройки реестра, которые рекомендуют специалисты для высоконагруженных серверов. Рассмотрим внесение изменений в ветку HKLM\System\CurrentControlSet\Services\Tcpip\Parameters:

Также важно настроить параметры AFD (Ancillary Function Driver for WinSock) в ветке HKLM\System\CurrentControlSet\Services\AFD\Parameters:


EnableDynamicBacklog = 1
MinimumDynamicBacklog = 20
MaximumDynamicBacklog = 20000
DynamicBacklogGrowthDelta = 10

Эти настройки помогут серверу быстрее освобождать порты и эффективнее обрабатывать очередь подключений, что косвенно снижает нагрузку на менеджер памяти рабочих процессов 1С.

Обновление платформы: мифы и реальность

Существует заблуждение, что старые конфигурации (например, УТ 10.3) нельзя запускать на новых версиях платформы. На самом деле, платформа 1С обладает отличной обратной совместимостью. Версия 8.3.13 имела ряд известных проблем с управлением памятью, которые были исправлены в более поздних релизах (например, в ветках 8.3.18, 8.3.22 и выше).

Рекомендация: попробуйте обновить только саму платформу (движок) до актуального стабильного релиза. Это не потребует изменения кода вашей конфигурации, но позволит использовать обновленный менеджер памяти и механизмы сборки "мусора", которые работают значительно эффективнее. Перед обновлением обязательно сделайте резервную копию баз данных и проверьте работу в тестовой среде.

Работа с файлом подкачки и антивирусом

При наличии 128 ГБ оперативной памяти возникает соблазн отключить файл подкачки (pagefile.sys). Однако для сервера 1С это может стать фатальным. Когда rphost запрашивает выделение большого блока адресного пространства, Windows использует механизм виртуальной памяти. Если файла подкачки нет или он слишком мал, система может "зависнуть" в попытках перераспределить физические страницы памяти. Установите фиксированный размер файла подкачки (например, 20–30 ГБ) на быстром SSD-диске.

Также проверим настройки антивирусного ПО. Убедитесь, что каталоги с временными файлами 1С (папка srvinfo и системные temp) добавлены в исключения. Если антивирус начинает сканировать временные файлы сеансов в момент их активного роста, это создает каскадный эффект торможения, который пользователи воспринимают как "зависание" сервера на 30–40 минут.

← На главную