Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

1C_RPHOST_MEM_LIMIT 1С:Предприятие и СУБД

Ошибка 1С: Превышен лимит памяти рабочего процесса rphost — Настройка

Обновлено: 25.08.2026 · Официальная документация ↗
  • Процесс rphost внезапно завершается операционной системой или менеджером кластера при формировании тяжелого отчета.
  • В логах технологического журнала событие: Memory limit exceeded.
  • Сервер начинает интенсивно использовать файл подкачки (swapping), вызывая общую деградацию производительности.

1. Настройка параметров кластера через консоль администрирования

В свойствах кластера 1С задайте пороги контроля памяти:

  • Допустимый объем памяти рабочих процессов: задайте значение в байтах (например, 80% от физической RAM сервера). Пример для 64GB RAM: 54975581388 байт.
  • Интервал превышения допустимого объема памяти: 30-60 сек (время, через которое сервер мягко перезапустит разросшийся процесс).
  • Безопасный расход памяти за один вызов: 4294967296 (4 GB) — предотвращает падение всего сервера из-за одного некорректного запроса пользователя.

2. Настройка параметров через утилиту RAC

# Установка лимита памяти на кластере
rac cluster update --cluster=<CLUSTER_ID> \
  --max-memory-size=54975581388 \
  --max-memory-time-limit=60 \
  --security-profile-memory-limit=4294967296

3. Поиск виновника утечки памяти через Технологический Журнал

Настройте сбор событий CALL и MEM с фильтром по длительности и потреблению памяти:

<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="/var/log/1c/mem_leaks" history="12">
    <event>
      <eq property="name" value="MEM"/>
      <gt property="Memory" value="1048576"/>
    </event>
    <property name="all"/>
  </log>
</config>

4. Ограничение потребления памяти на уровне systemd (Linux)

В файле юнита /etc/systemd/system/srv1cv83.service:

[Service]
MemoryAccounting=true
MemoryMax=58G
MemoryHigh=52G
💡 Практика специалистов: Всегда разделяйте сервер СУБД (PostgreSQL/MSSQL) и сервер 1С по разным виртуальным машинам или жестко ограничивайте память СУБД (max_connections, shared_buffers), иначе rphost и СУБД вызовут взаимный OOM Killer.

Частые вопросы (FAQ)

Что происходит с пользователями, когда rphost превышает допустимый объем памяти?

Кластер 1С помечает процесс как 'неактивный' и перестает передавать ему новые вызовы. Новые сеансы открываются в новом свежем rphost, а старый плавно завершается после того, как текущие пользователи закончат свои операции.

Что такое 'Безопасный расход памяти за один вызов'?

Это жесткий лимит для единичного серверного вызова. Если пользователь пытается выгрузить отчет, требующий больше указанного объема (например, 4 ГБ), 1С аварийно прерывает только данный вызов с ошибкой, не роняя весь процесс rphost.

Почему 32-битный rphost падает при достижении ~3.2 GB RAM?

32-разрядная архитектура x86 не способна адресовать более 4 ГБ памяти, из которых часть зарезервирована ядром ОС. При исчерпании непрерывного адресного пространства аллокатор malloc падает.

Влияет ли платформа PostgreSQL / MS SQL на расход памяти rphost?

СУБД потребляет память отдельно от 1С. Однако неоптимальные запросы без фильтров заставляют 1С выгружать миллионы строк в память rphost для постобработки, вызывая взрывной рост RAM.

Полезные материалы
Рекомендуем