Почему 1С 8.3 потребляет от 0,6 до 1,5 Гб оперативной памяти на пользователя и как оптимизировать нагрузку?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При переходе с платформ 1С:Предприятие 7.7 или 8.2 на современную 1С:Предприятие 8.3 системные администраторы часто сталкиваются с резким ростом потребления оперативной памяти в терминальных сессиях. Если старые версии на обычном интерфейсе требовали от 30 до 300 Мб на сеанс, то современные конфигурации 1С 8.3 занимают от 600 Мб до 1,5 Гб и более. Выясним причины такого поведения платформы, проанализируем архитектурные особенности файлового режима и рассмотрим практические способы снижения нагрузки на сервер.

Архитектурные причины повышенного расхода памяти в 1С 8.3

Разберем, почему один клиентский процесс 1С 8.3 требует значительно больше ресурсов:

  1. Совмещение ролей клиента и сервера в файловом режиме. В конфигурациях на управляемых формах (УФ) платформа всегда работает по клиент-серверной модели. При открытии файловой базы процесс 1cv8.exe или 1cv8c.exe запускает внутри себя локальный серверный контекст и хост исполнения серверного кода. Таким образом, в рамках каждого пользовательского сеанса одновременно функционируют клиентская часть, серверный модуль и локальный движок работы с файловой СУБД 1Cv8.1CD.
  2. Объем метаданных современных конфигураций. Современные типовые конфигурации (1С:Бухгалтерия 3.0, 1С:ЗУП 3.1, 1С:ERP) построены на базе Библиотеки стандартных подсистем (БСП). При старте сеанса выполняется масштабная инициализация: кэшируются структуры метаданных, параметры сеанса, описания прав доступа, предопределенные элементы и модули повторного использования.
  3. Разрядность клиентского приложения (x86 vs x64). Использование 64-разрядного клиента 1С увеличивает размер адресных указателей и внутренних структур данных, что добавляет от 30% до 50% к общему объему потребляемой памяти по сравнению с 32-разрядным исполняемым файлом.
  4. Выполнение регламентных и фоновых заданий. В файловом режиме регламентные задания запускаются либо внутри первого активного пользовательского сеанса, либо вызывают фоновые задачи, приводя к временным скачкам потребления RAM.
  5. Рост системного кэша Windows (Standby Memory). При интенсивных дисковых операциях с файлом 1Cv8.1CD операционная система кэширует страницы файла в области памяти ожидания (Standby List), что может ошибочно восприниматься как дефицит физической памяти.

Для файловых баз на управляемых формах диапазон 0,6–1,5 Гб на один активный пользовательский процесс является нормальным и ожидаемым поведением платформы.

Способ 1. Переход на 32-разрядный тонкий клиент

Проанализируем режим запуска пользователей в терминале. Часто по умолчанию настраивается запуск толстого клиента или 64-битного исполняемого файла, что нерационально для терминального сервера с большим числом сеансов.

  1. Проверим, какой исполняемый файл запускается у пользователей. Для управляемых конфигураций необходимо использовать Тонкий клиент (1cv8c.exe).
  2. Убедимся, что для терминальных пользователей используется 32-разрядная версия (каталог C:\Program Files (x86)\1cv8\...). Это позволит снизить аппетит каждого процесса на 200–400 Мб без потери производительности.
  3. В свойствах информационной базы в окне запуска 1С установим параметр Основной режим запуска в значение Тонкий клиент, а Разрядность — в 32 (x86).

Способ 2. Публикация файловой базы на веб-сервере (IIS / Apache)

Рассмотрим один из наиболее эффективных способов оптимизации работы с файловыми базами при ограниченных ресурсах сервера:

  1. Развернем веб-сервер (Microsoft IIS или Apache HTTP Server) на том же сервере, где расположены базы данных.
  2. Опубликуем файловую информационную базу через конфигуратор: меню Администрирование → Публикация на веб-сервере....
  3. Настроим подключение пользователей через тонкий клиент по протоколу HTTP/HTTPS вместо прямого открытия файла по пути на диске.

В чем преимущество данного подхода:

При веб-публикации всю серверную логику и обращения к файлу 1Cv8.1CD обрабатывает рабочий пул процессов веб-сервера. На стороне пользователя в терминале запускается только легковесный интерфейс тонкого клиента, потребляющий минимальное количество памяти (около 100–250 Мб). Кэш метаданных и серверных модулей перестает дублироваться в каждом сеансе.

Способ 3. Оптимизация регламентных заданий и базы данных

Разберем регламентные операции, которые помогут стабилизировать объем занимаемой памяти:

  1. Отключим неиспользуемые регламентные задания. В режиме «1С:Предприятие» перейдем в раздел Администрирование → Обслуживание → Регламентные и фоновые задания. Отключим неактуальные задачи: автоматическую загрузку классификаторов, фоновую отправку отчетов, полнотекстовый поиск (если он не используется пользователями).
  2. Выполним тестирование и исправление базы данных. В конфигураторе перейдем в меню Администрирование → Тестирование и исправление... и обязательно отметим пункт Сжатие таблиц информационной базы для уменьшения фрагментации файла 1Cv8.1CD.
  3. Настроим регулярную очистку пользовательского кэша в каталогах %LocalAppData%\1C\1Cv8 и %AppData%\1C\1Cv8, чтобы исключить накопление устаревших структур динамического обновления.
  4. Для решения проблемы с лавинообразным ростом Standby Memory на Windows Server настроим периодический сброс системного кэша через планировщик задач Windows с использованием утилит очистки памяти без необходимости ручного запуска сторонних программ.

Способ 4. Переход на полноценный клиент-серверный вариант (SQL)

Если количество пользователей растет (от 5–7 человек и более) или в организации планируется расширение до десятков рабочих мест, файловый режим становится архитектурным ограничением.

В клиент-серверном варианте (сервер «1С:Предприятия» в связке с СУБД PostgreSQL или Microsoft SQL Server):

  1. Все тяжелые вычисления, кэши метаданных и обработка запросов изолируются внутри процессов rphost сервера 1С и процесса СУБД.
  2. Клиентские сеансы на терминальном сервере потребляют стабильно небольшой объем ресурсов.
  3. Администратор получает возможность гибко ограничивать память на рабочие процессы, настраивать автоматический перезапуск процессов rphost при превышении порога памяти и контролировать зависшие сеансы через консоль кластера серверов 1С.
← На главную