Почему перезапуск 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)

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

31.08.2026    5513    Tantor    3    

17

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

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

11.08.2026    2883    jul.dolganova    9    

23

Администрирование СУБД Пароли Системный администратор 1С 8.3 1С:Розница 2 1С:Управление производственным предприятием Абонемент ($m)

Пароль пользователя СУБД лежит в 1CV8Clst.lst обратимо: кто читает папку srvinfo - достаёт пароли SQL всех баз кластера, минуя права 1С. Обработка показывает, у каких баз пароль извлекается, помечает слабые и выдаёт план защиты. К СУБД не подключается, ничего не пишет - только читает файл.

10 стартмани

06.08.2026    1620    16    nedomolkov.ivan    0    

7

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

Прогнал набор диагностических скриптов на двух рабочих базах: боевой с 580 сеансами и малонагруженной. Разбираю пять находок: статистика 97-дневной давности, 598 запросов со сканами, журнал транзакций в 73 % от данных, tempdb в один файл и 81 % ожиданий на параллелизме, который чинить не надо. Плюс три грабли, из-за которых самописный диагностический скрипт падает на чужом сервере. Семь рабочих скриптов внутри, копируются в SSMS как есть.

05.08.2026    2141    nedomolkov.ivan    8    

9

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

Журнал регистрации на нагруженной базе перестаёт открываться: файлы растут на гигабайты в день, просмотр виснет, история недоступна. Рассказываю, как мы вынесли журнал трёх продуктивных баз в ClickHouse: 35 млрд событий, поиск всех ошибок за сутки — 0,11 секунды, привычная форма журнала для пользователей и падение числа ошибок в проде в 23 раза за полгода. Архитектура, схема таблицы, грабли интеграции и все цифры с прода.

04.08.2026    2503    nedomolkov.ivan    0    

8

Администрирование СУБД 1С 8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

База 1С:ERP размером 646 Гб, полное маскирование за 5 часов - без создания промежуточной незащищенной копии. Разбираем бесплатный pg_anon на сквозном примере с реального продуктива.

27.07.2026    3729    Tantor    16    

16

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

Если вы работаете с 1С на PostgreSQL и жалуетесь на тормоза — скорее всего, дело в join predicate pushdown, которого в стандартном PostgreSQL нет. В MS SQL Server этот механизм работает «из коробки», и при миграции именно запросы к виртуальным таблицам 1С бьют по производительности сильнее всего. В этой статье — реальный кейс от Postgres Professional с разбором плана выполнения, ручным экспериментом и доработкой планировщика СУБД, которая ускорила запросы от 22 до 54 000 раз.

16.06.2026    10376    postgres_professional    13    

12

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

Вышел релиз СУБД Tantor Postgres 18, и мы хотим рассказать о его новых возможностях для работы с приложениями на платформе "1С:Предприятие". В обзоре разберем улучшения планировщика, по традиции коснемся работы временных таблиц и не обойдем вниманием вспомогательные утилиты, которые упрощают поиск и диагностику проблем в высоконагруженных системах. За каждым пунктом - реальные запросы 1С, реальные рабочие базы и сотни часов тестирования!

16.06.2026    4341    Tantor    7    

10
Для отправки сообщения требуется регистрация/авторизация