Сервер 1С съедает всю память: как ограничить потребление RAM в кластере
- Сервер с базами 1С зависает намертво, RDP-подключения отваливаются.
- В Диспетчере задач процессы
rphost.exeиragent.exeутилизируют до 98–100% RAM. - SQL Server начинает аварийно сбрасывать свои кэши на медленный диск из-за давления со стороны процессов 1С.
- Пользователи жалуются на общие «дикие тормоза» программы к середине рабочего дня.
Почему сервер 1С накапливает память
Сервер 1С по своей природе кэширует в оперативной памяти скомпилированные модули, данные сеансов и временные таблицы. Однако из-за некорректных тяжелых запросов пользователей или особенностей сборщика мусора память вовремя не возвращается операционной системе Windows/Linux, что приводит к ее постепенной «утечке».
Пошаговое ограничение аппетитов 1С в Консоли кластера
- Откройте консоль Администрирование серверов 1С:Предприятия.
- Зайдите в Кластеры → нажмите правой кнопкой по вашему кластеру → Свойства.
- Задайте следующие защитные лимиты:
Параметр Оптимальное значение Временно допустимый объем памяти процессов Рассчитайте: Общая память сервера × 0.75(в байтах)Интервал превышения допустимого объема памяти 40 – 60 секОбъем памяти рабочих процессов, до которого сервер считается производительным Рассчитайте: Общая память сервера × 0.60(в байтах)Период перезапуска рабочих процессов 86400 сек(раз в сутки ночью) - Нажмите Применить и ОК.
Как это работает: Как только рабочий процесс разрастается выше нормы, сервер 1С мягко запускает параллельный чистый rphost, переводит новые подключения на него, а старый завершает без потери данных.
Частые вопросы (FAQ)
Не выкинет ли пользователей при перезапуске процесса по расписанию?
Нет, если в свойствах кластера включен режим отказоустойчивости, платформа переносит пользовательские сессии в фоне без разрыва клиентских окон.
Нужно ли ограничивать память для самого MS SQL Server?
Да, обязательно! В свойствах экземпляра SQL Server (Server Properties → Memory) установите «Max Server Memory», чтобы SQL и 1С не дрались за один и тот же объем RAM.
Сколько памяти нужно закладывать на один сеанс пользователя 1С?
В среднем для типовой «Бухгалтерии 3.0» на один активный пользовательский сеанс в тонком клиенте требуется от 300 до 700 МБ оперативной памяти на сервере приложений.
Помогает ли перезагрузка всего сервера по расписанию?
Это грубый метод. Правильная настройка свойств кластера 1С и ограничений SQL Server решает проблему без необходимости перезагружать саму Windows.