Почему перезапуск rphost по памяти в 1С приводит к обрыву фонового задания без ошибки в журнале

25.09.26

База данных - Администрирование СУБД

Scope: параметры кластера, связанные с лимитом памяти рабочего процесса (SafeMemoryUsageBuffer, MemoryLimit, RestartProcessAtMemoryExcess), ограничения учёта памяти в Windows и Linux, зависимости от числа информационных баз на одном rphost и от фоновых заданий с большим кэшем. Описаны признаки срабатывания перезапуска, граничные случаи и команды проверки без правки конфигурации 1С.
  • Объект настройки: рабочий процесс rphost в составе кластера 1С:Предприятие 8.3, не отдельный сервер СУБД.
  • Параметры кластера: SafeMemoryUsageBuffer, MemoryLimit, RestartProcessAtMemoryExcess, количество рабочих процессов на узле.
  • Ограничения: учёт памяти ОС, лимит на процесс, поведение при превышении без аварийного дампа платформы.
  • Зависимости: число ИБ на rphost, длительные фоновые задания, размер кэша метаданных и временных таблиц запроса.
  • Контроль: журнал кластера, счётчики процесса, события перезапуска rphost, состояние регламентного задания в базе «УправлениеТорговлей_КопияОбмен» (пример имени).

Пользователь уверен, что ночной обмен с WMS обрывается из-за «сети или блокировок в SQL», потому что в журнале регистрации нет текста исключения, а на сервере приложений память «ещё не кончилась».

На практике менеджер кластера rmngr может завершить конкретный rphost по внутреннему лимиту памяти раньше, чем администратор увидит нехватку RAM на хосте. Сеанс фонового задания обрывается, платформа не всегда успевает записать привычное сообщение об ошибке в журнал регистрации той базы, где шло задание.

 

Параметры

Настройки задаются на уровне кластера и рабочего сервера в консоли администрирования серверов 1С или через утилиту rac/ras. Значения по умолчанию зависят от версии платформы; ниже приведены типовые имена полей, которые проверяют в первую очередь.

  • SafeMemoryUsageBuffer: порог «мягкой» защиты, килобайты рабочей памяти процесса rphost. При стабильном превышении rmngr инициирует перезапуск этого процесса, сеансы переподключаются к другим rphost или поднимаются заново.
  • MemoryLimit: жёсткий предел памяти рабочего процесса (если поле доступно в вашей консоли). Срабатывание ближе к аварийному завершению, чем у буфера.
  • RestartProcessAtMemoryExcess: признак, разрешён ли автоматический перезапуск по превышению памяти (на части стендов включён по умолчанию).
  • Количество рабочих процессов на узле: при малом числе rphost перезапуск одного экземпляра задевает больше информационных баз, смонтированных на этот процесс.
  • Интервал перезапуска по числу вызовов (отдельный механизм): не путать с памятью; при совместной настройке ночной простой может совпасть с двумя причинами перезапуска.

Где смотреть текущие значения: свойства кластера, затем рабочий сервер, затем список рабочих процессов; для скриптов эксплуатации дублируют вывод rac cluster info и rac process list.

Пример ориентира для стенда с 32 ГБ RAM на узле приложений: один rphost и SafeMemoryUsageBuffer около 4 ГБ (в kilobytes в API rac, например 4194304) часто даёт ночной запас под регламент, но не спасает при двух тяжёлых базах на одном pid. Число приведено как иллюстрация порядка величины, не как норматив.

Поле Единица в консоли Что фиксировать при инциденте
SafeMemoryUsageBuffer КБ Значение до изменения и время изменения
MemoryLimit КБ или выкл. Сработал ли жёсткий предел
pid rphost число Менялся ли pid в окно обрыва регламента

Параметры памяти rphost и где их смотреть

Параметры памяти rphost и где их смотреть

 

Ограничения

Лимит памяти rphost считает не «свободную память сервера», а память конкретного процесса в модели платформы. Диспетчер задач Windows или free на Linux показывают картину хоста целиком, поэтому визуальное «ещё 12 ГБ свободно» не отменяет перезапуск одного rphost.

  • Перезапуск процесса не равен перезапуску службы агента кластера: ragent продолжает работать, меняется только pid rphost.
  • Журнал регистрации 1С не является журналом кластера: событие перезапуска ищут в каталоге логов агента (путь задаётся при установке службы) и в технологическом журнале при включённых фильтрах по процессу.
  • Фоновое задание, выполнявшееся в оборванном сеансе, может остаться в состоянии «выполняется» до таймаута планировщика или ручной отмены, если регламент не обрабатывает обрыв.
  • Увеличение SafeMemoryUsageBuffer без добавления rphost отодвигает проблему и увеличивает длительность простоя при последующем перезапуске того же pid.
  • На одном rphost несколько тяжёлых ИБ делят один и тот же потолок памяти: лимит задаётся на процесс, не на базу.
  • Командная строка запуска rphost наследует лимиты кластера: локальные правки без rac не переживают пересоздание процесса менеджером.

 

Зависимости

Частота срабатывания лимита растёт, когда на одном рабочем процессе совмещают интерактивную нагрузку и длительные регламенты с большими выборками.

  • Монтирование ИБ: чем больше информационных баз назначено на один rphost, тем выше базовое потребление памяти из-за кэшей и сеансов.
  • Фоновые задания с отчётами и обменами через временные таблицы: пик памяти может приходиться на 02:00-04:00, когда интерактивных пользователей нет, но rphost уже на пределе буфера.
  • Разрядность и версия платформы: профиль памяти 32-разрядного rphost принципиально уже; на таких узлах лимит срабатывает при меньших абсолютных числах.
  • СУБД на том же хосте: конкуренция за RAM усиливает давление на ОС, но решение «разнести SQL» не отменяет перезапуск rphost по SafeMemoryUsageBuffer.
  • Резервное копирование средствами 1С в сеансе сервера: кратковременные пики памяти могут совпасть с регламентом обмена.
  • Веб-сервисы и HTTP-сервисы на том же rphost: внешние вызовы добавляют одновременные сеансы и ускоряют рост рабочего набора.
# Список кластеров (порт агента 1540 или 1545 уточните на стенде)
rac cluster list localhost:1545

# Свойства кластера: ищите safe-memory-usage-buffer, memory-limit
rac cluster info --cluster=<uuid> localhost:1545

# Процессы: pid, использование памяти в выводе rac
rac process list --cluster=<uuid> localhost:1545

# Пример изменения буфера (4194304 КБ = 4 ГБ, проверьте единицы)
rac cluster update --cluster=<uuid> --safe-memory-usage-buffer=4194304 localhost:1545

# Технологический журнал: фрагмент logcfg.xml (имена событий уточняйте по документации)
<log location="D:\1cv8\logs" history="24">
  <event>PROC</event>
  <property name="all"/>
</log>

 

Частные случаи

Ниже перечень ситуаций, когда перезапуск по памяти выглядит «без причины». У каждого пункта указано следствие для эксплуатации.

  1. На rphost смонтированы «ОбменОстатками» и «ОтчётностьЦентр», ночью параллельно стартуют два регламента с большими временными таблицами. Следствие: падает только одно задание, второе может успеть завершиться; в журнале регистрации пусто, в списке фоновых висит «выполняется».
  2. SafeMemoryUsageBuffer оставлен по умолчанию, а на сервере 64 ГБ RAM и один rphost на все базы филиалов. Следствие: перезапуски редки днём и регулярны ночью; администратор SQL не видит блокировок.
  3. После обновления платформы включён RestartProcessAtMemoryExcess, раньше процесс мог работать на большем рабочем наборе. Следствие: «новая» нестабильность обмена без изменений в конфигурации 1С.
  4. Интерактивный пик (утро понедельника) совпал с регламентом «ПересчётСебестоимости» на том же rphost. Следствие: обрываются интерактивные сеансы пользователей склада с сообщением о потере связи, фоновое задание отменяется платформой.
  5. Администратор поднял буфер до 8 ГБ, но MemoryLimit на уровне ОС или политики ниже. Следствие: процесс завершает ОС или служба мониторинга раньше, чем сработает «мягкий» перезапуск rmngr; в логах другая формулировка события.
  6. На узле два rphost, базы распределены неравномерно: «ТяжёлаяИБ_ERP» одна на первом процессе. Следствие: перезапуски цикличны только у pid первого rphost, второй не затрагивается; ошибочно подозревают «битую базу».

 

Контроль

Выполните проверку в порядке от кластера к регламенту в базе. Фиксируйте время UTC и локальное, если фоновые задания привязаны к часовому поясу сеанса.

  • Сопоставьте время обрыва задания «ВыгрузкаНоменклатурыВСкладскуюСистему» с событием перезапуска rphost в логах кластера (не в журнале регистрации).
  • Снимите rac process list до и после ночного окна: изменился pid у rphost, на котором смонтирована проблемная ИБ.
  • На Windows проверьте счётчик Private Bytes и Working Set для rphost.exe в момент регламента; на Linux смотрите RSS процесса rphost в цикле каждые 60 секунд, например через pidstat.
  • В консоли кластера откройте список сеансов и фоновых заданий проблемной базы: после перезапуска возможен «висящий» сеанс с пустым пользователем.
  • Зафиксируйте текущие SafeMemoryUsageBuffer и число rphost; повторите замер после изменения только одного параметра.
  • Убедитесь, что регламентное задание идемпотентно: повторный запуск после обрыва не создаёт дублей документов «ПеремещениеТоваров».
  • Сравните нагрузку по базам: rac session list по проблемной ИБ в окно регламента покажет, оставались ли параллельные сеансы пользователей.

Если перезапуски участились после релиза отчёта с запросом на 200000 строк, сначала разнесите регламент на отдельный rphost или уменьшите параллелизм заданий, затем корректируйте буфер памяти.

После разнесения баз по двум rphost повторите ночной прогон регламента три дня подряд и сохраните график RSS: стабильный pid и отсутствие скачка к порогу подтверждают, что причина была в совмещении нагрузок, а не в «случайной сети».

План изменений зафиксируйте в регламенте эксплуатации: кто меняет SafeMemoryUsageBuffer, кто проверяет pid после ночи, какой порог RSS считается нормой для вашего узла. Без этой фиксации следующий администратор снова увеличит буфер «на глаз» и вернёт длинные простои при перезапуске.

При обращении в поддержку платформы приложите вывод rac cluster info, два снимка rac process list с разным pid и фрагмент лога ragent за пять минут до обрыва: этого достаточно, чтобы отделить перезапуск по памяти от обрыва соединения с PostgreSQL или MS SQL.

 

Команды для копирования

# Список кластеров на агенте
rac cluster list localhost:1545

# Свойства кластера
rac cluster info --cluster=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX localhost:1545

# Процессы кластера
rac process list --cluster=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX localhost:1545

# Сеансы информационной базы
rac session list --cluster=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX --infobase=<uuid> localhost:1545

# Информационные базы и привязка к рабочим процессам
rac infobase summary list --cluster=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX localhost:1545

# Linux: RSS rphost раз в минуту (пример pid 12345)
while sleep 60; do ps -o pid,rss,cmd -p 12345; done

# Linux: pidstat по процессу rphost
pidstat -r -p 12345 60

# Windows: счётчики процесса (PowerShell)
Get-Process rphost | Select-Object Id,WorkingSet64,PrivateMemorySize64

Вступайте в нашу телеграмм-группу Инфостарт

1С:Предприятие кластер серверов rphost rmngr администрирование память фоновые задания SafeMemoryUsageBuffer перезапуск рабочего процесса 1С память кластера фоновое задание обрыв rac process list

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

HighLoad оптимизация Администрирование СУБД Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 Бухгалтерский учет Бесплатно (free)

После миграции с MS SQL на PostgreSQL закрытие месяца в 1С:ERP стало идти 8 часов вместо 12 минут. Рассказываем, как мы нашли причину в оценке Hash Join, которую планировщик завышал в миллионы раз, и как исправили её так, что проблемный запрос теперь выполняется за 18 секунд вместо часа.

19.10.2026    956    Tantor    0    

10

Администрирование СУБД HighLoad оптимизация Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 Россия Бесплатно (free)

Большинство материалов о компрессии в PostgreSQL отвечают на вопрос «во сколько раз удалось уменьшить базу». Мы предлагаем посмотреть на проблему с другой стороны — какой ценой достигается эта экономия? В статье разбираем архитектурные компромиссы различных подходов к компрессии страниц, объясняем, почему при разработке CSM в Tantor Postgres отказались от погони за максимальным коэффициентом сжатия, и показываем результаты нагрузочных испытаний на реальных базах 1С.

01.10.2026    1443    Tantor    6    

17

DevOps и автоматизация разработки Администрирование СУБД Групповая разработка (Git, хранилище) Разработчик 1С 8.3 Абонемент ($m)

В корпоративных инсталляциях «1С:Предприятие 8.3» под управлением PostgreSQL всё чаще проявляются архитектурные пределы масштабирования: рост числа пользователей, обязательная маркировка, плотный поток API-интеграций и высокая стоимость простоя. Вводная часть цикла разбирает ключевые факторы современной эксплуатационной нагрузки и формирует инженерную методологию эволюционной модернизации без остановки продуктивного контура. Материал основан на практическом кейсе «Торговый контур» и показывает, как определить целевые метрики (p95, MTTR, APDEX), выстроить наблюдаемость, стабилизировать работу кластера и подготовить инфраструктуру к дальнейшему масштабированию. Публикация задаёт фундамент для последующих частей, посвящённых телеметрии, оптимизации PostgreSQL, CI/CD и архитектурному росту.

1 стартмани

10.09.2026    1521    Ninel_S    0    

6

HighLoad оптимизация Администрирование СУБД Разработчик 1С:Предприятие 8 1С:ERP Управление предприятием 2 Бесплатно (free)

В рамках 18 релиза СУБД Tantor Postgres мы рассказывали об оптимизациях, которые помогают планировщику сделать более точный выбор между Nested Loop и Hash Join. В следующем релизе у нас планируются оптимизации, которые позволят ускорить выполнение как Nested Loop, так и Hash Join. Сегодня мы расскажем об одном из таких методов - фильтре Блума.

31.08.2026    6117    Tantor    3    

18

Администрирование СУБД Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Мы подготовили для сообщества Infostart.ru практическое занятие, в котором каждый желающий сможет: научиться собирать реальные данные о процессах кластера 1С; выявлять «перестарков» — процессы старше периода и без соединений; выполнять безопасный перезапуск (с dry-run и подтверждением); настраивать автоматическую проверку через systemd на Linux; отправлять уведомления (Telegram, почта) при обнаружении проблем; работать с логами, ротацией, профилями кластеров и конфигурацией; развернуть полноценный учебный проект AdminClusterMonitor у себя в тестовой среде.

30.08.2026    1728    Ninel_S    2    

6

Администрирование СУБД Системный администратор 1С:Предприятие 8 Бесплатно (free)

На infostart.ru вышел разбор Ивана Недомолкова «Сервер 1С падает: настройка сбора дампов (logcfg.xml), лимиты памяти и передача дампа в поддержку» - это хорошая инструкция, как ловить и разбирать падение rphost постфактум: logcfg.xml, procdump, анализ дампа. Но там нет ответа на вопрос «а почему кластер вообще прибил процесс сам, ещё до всякого краша». Мы дополняем разбор тремя сводными таблицами лимитов памяти и автомасштабирования кластера - и заодно фиксируем, чем в этой части лицензия ПРОФ урезана относительно КОРП.

12.08.2026    2371    Ninel_S    5    

6

Администрирование СУБД Системный администратор Разработчик Бесплатно (free)

5,5 тысячи пользователей в единой базе 1С, розница в режиме 24/7 и SLA 99,98% – в таких условиях любая авария быстро превращается в очереди на кассах, потерю денег и давление со стороны бизнеса. Показываем, как выстроить процесс аварийно-восстановительных работ: от первых алертов и базового скрининга системы до подключения команды, проверки гипотез и дебрифа после инцидента. Разбираем, как метрики, дашборды, техжурнал, Zabbix, Prometheus, Grafana, Telegram-боты и скрипты помогают не гадать, а быстро находить причину проблемы. На реальных авариях объясняем, почему «быстро» не должно означать «рискованно», как работа над ошибками снижает панику и почему каждая авария может сделать систему надежнее.

11.08.2026    3405    jul.dolganova    9    

24
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. nedomolkov.ivan 497 30.09.26 11:14 Сейчас в теме
Полей SafeMemoryUsageBuffer, MemoryLimit и RestartProcessAtMemoryExcess в консоли кластера 8.3 я не встречал. Мягкий порог там называется "Объём памяти рабочих процессов, до превышения которого сервер считается производительным". Жёсткий потолок это "Максимальный объём памяти рабочих процессов", плюс "Безопасный расход памяти за один вызов". Разбирал тут: https://infostart.ru/1c/articles/2766794/
Для отправки сообщения требуется регистрация/авторизация