← На главную
При переходе с платформ 1С:Предприятие 7.7 или 8.2 на современную 1С:Предприятие 8.3 системные администраторы часто сталкиваются с резким ростом потребления оперативной памяти в терминальных сессиях. Если старые версии на обычном интерфейсе требовали от 30 до 300 Мб на сеанс, то современные конфигурации 1С 8.3 занимают от 600 Мб до 1,5 Гб и более. Выясним причины такого поведения платформы, проанализируем архитектурные особенности файлового режима и рассмотрим практические способы снижения нагрузки на сервер.
Архитектурные причины повышенного расхода памяти в 1С 8.3
Разберем, почему один клиентский процесс 1С 8.3 требует значительно больше ресурсов:
- Совмещение ролей клиента и сервера в файловом режиме. В конфигурациях на управляемых формах (УФ) платформа всегда работает по клиент-серверной модели. При открытии файловой базы процесс
1cv8.exe или 1cv8c.exe запускает внутри себя локальный серверный контекст и хост исполнения серверного кода. Таким образом, в рамках каждого пользовательского сеанса одновременно функционируют клиентская часть, серверный модуль и локальный движок работы с файловой СУБД 1Cv8.1CD.
- Объем метаданных современных конфигураций. Современные типовые конфигурации (1С:Бухгалтерия 3.0, 1С:ЗУП 3.1, 1С:ERP) построены на базе Библиотеки стандартных подсистем (БСП). При старте сеанса выполняется масштабная инициализация: кэшируются структуры метаданных, параметры сеанса, описания прав доступа, предопределенные элементы и модули повторного использования.
- Разрядность клиентского приложения (x86 vs x64). Использование 64-разрядного клиента 1С увеличивает размер адресных указателей и внутренних структур данных, что добавляет от 30% до 50% к общему объему потребляемой памяти по сравнению с 32-разрядным исполняемым файлом.
- Выполнение регламентных и фоновых заданий. В файловом режиме регламентные задания запускаются либо внутри первого активного пользовательского сеанса, либо вызывают фоновые задачи, приводя к временным скачкам потребления RAM.
- Рост системного кэша Windows (Standby Memory). При интенсивных дисковых операциях с файлом
1Cv8.1CD операционная система кэширует страницы файла в области памяти ожидания (Standby List), что может ошибочно восприниматься как дефицит физической памяти.
Для файловых баз на управляемых формах диапазон 0,6–1,5 Гб на один активный пользовательский процесс является нормальным и ожидаемым поведением платформы.
Способ 1. Переход на 32-разрядный тонкий клиент
Проанализируем режим запуска пользователей в терминале. Часто по умолчанию настраивается запуск толстого клиента или 64-битного исполняемого файла, что нерационально для терминального сервера с большим числом сеансов.
- Проверим, какой исполняемый файл запускается у пользователей. Для управляемых конфигураций необходимо использовать Тонкий клиент (
1cv8c.exe).
- Убедимся, что для терминальных пользователей используется 32-разрядная версия (каталог
C:\Program Files (x86)\1cv8\...). Это позволит снизить аппетит каждого процесса на 200–400 Мб без потери производительности.
- В свойствах информационной базы в окне запуска 1С установим параметр Основной режим запуска в значение Тонкий клиент, а Разрядность — в 32 (x86).
Способ 2. Публикация файловой базы на веб-сервере (IIS / Apache)
Рассмотрим один из наиболее эффективных способов оптимизации работы с файловыми базами при ограниченных ресурсах сервера:
- Развернем веб-сервер (Microsoft IIS или Apache HTTP Server) на том же сервере, где расположены базы данных.
- Опубликуем файловую информационную базу через конфигуратор: меню Администрирование → Публикация на веб-сервере....
- Настроим подключение пользователей через тонкий клиент по протоколу HTTP/HTTPS вместо прямого открытия файла по пути на диске.
В чем преимущество данного подхода:
При веб-публикации всю серверную логику и обращения к файлу 1Cv8.1CD обрабатывает рабочий пул процессов веб-сервера. На стороне пользователя в терминале запускается только легковесный интерфейс тонкого клиента, потребляющий минимальное количество памяти (около 100–250 Мб). Кэш метаданных и серверных модулей перестает дублироваться в каждом сеансе.
Способ 3. Оптимизация регламентных заданий и базы данных
Разберем регламентные операции, которые помогут стабилизировать объем занимаемой памяти:
- Отключим неиспользуемые регламентные задания. В режиме «1С:Предприятие» перейдем в раздел Администрирование → Обслуживание → Регламентные и фоновые задания. Отключим неактуальные задачи: автоматическую загрузку классификаторов, фоновую отправку отчетов, полнотекстовый поиск (если он не используется пользователями).
- Выполним тестирование и исправление базы данных. В конфигураторе перейдем в меню Администрирование → Тестирование и исправление... и обязательно отметим пункт Сжатие таблиц информационной базы для уменьшения фрагментации файла
1Cv8.1CD.
- Настроим регулярную очистку пользовательского кэша в каталогах
%LocalAppData%\1C\1Cv8 и %AppData%\1C\1Cv8, чтобы исключить накопление устаревших структур динамического обновления.
- Для решения проблемы с лавинообразным ростом Standby Memory на Windows Server настроим периодический сброс системного кэша через планировщик задач Windows с использованием утилит очистки памяти без необходимости ручного запуска сторонних программ.
Способ 4. Переход на полноценный клиент-серверный вариант (SQL)
Если количество пользователей растет (от 5–7 человек и более) или в организации планируется расширение до десятков рабочих мест, файловый режим становится архитектурным ограничением.
В клиент-серверном варианте (сервер «1С:Предприятия» в связке с СУБД PostgreSQL или Microsoft SQL Server):
- Все тяжелые вычисления, кэши метаданных и обработка запросов изолируются внутри процессов
rphost сервера 1С и процесса СУБД.
- Клиентские сеансы на терминальном сервере потребляют стабильно небольшой объем ресурсов.
- Администратор получает возможность гибко ограничивать память на рабочие процессы, настраивать автоматический перезапуск процессов
rphost при превышении порога памяти и контролировать зависшие сеансы через консоль кластера серверов 1С.