Как ускорить работу многопользовательской файловой базы 1С в терминальном режиме?

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

Работа с файловой информационной базой (формат .1CD) в многопользовательском режиме через удаленный рабочий стол (RDP) часто приводит к резкому падению производительности. Пользователи начинают жаловаться на долгое открытие программы, задержки интерфейса и длительное проведение документов (по 30–50 секунд), даже если процессор и оперативная память сервера загружены незначительно. Разберем по шагам причины такого поведения платформы «1С:Предприятие 8.3» и рассмотрим проверенные способы устранения узких мест.

Диагностика дисковой подсистемы и выявление узких мест

Проанализируем ситуацию: невысокая загрузка центрального процессора (до 15–20%) и наличие свободной оперативной памяти при явных зависаниях программы однозначно указывают на проблемы ввода-вывода (I/O). В файловом режиме все сеансы пользователей обращаются напрямую к единому файлу базы данных и к своим локальным каталогам кэша.

Для быстрой оценки состояния диска выполним следующие действия:

  1. Откроем монитор ресурсов Windows: нажмем комбинацию клавиш Win + R, введем команду resmon.exe и нажмем клавишу Enter.
  2. Перейдем на вкладку Диск.
  3. Обратим внимание на блок Диски и показатель % активного времени. Если этот показатель регулярно достигает 100%, дисковая подсистема не справляется с потоком случайных операций чтения и записи.
  4. Развернем список Процессы с дисковой активностью и отсортируем процессы 1cv8c.exe и 1cv8.exe по столбцу Всего (байт/с). Так мы увидим, к каким именно файлам операционная система обращается интенсивнее всего.

Классические жесткие диски со скоростью вращения шпинделя 5400 или 7200 об/мин (особенно серии со сниженным энергопотреблением вроде WD Green) обеспечивают крайне низкую скорость работы со случайными блоками — не более 70–100 IOPS. При одновременной работе 8–10 пользователей очередь диска мгновенно переполняется.

Очистка и перенос пользовательского кэша платформы

Одной из главных причин длительного запуска программы и медленной прорисовки управляемых форм является разрастание и повреждение локального кэша сеансов. При запуске каждый клиентский процесс обращается к профилю пользователя Windows, создавая множество мелких временных файлов.

Рассмотрим, как правильно выполнить очистку кэша:

  1. Завершим все активные пользовательские сеансы 1cv8c.exe на сервере.
  2. Перейдем в каталог профиля пользователя по пути C:\Users\[ИмяПользователя]\AppData\Local\1C\1cv8\, а также в каталог C:\Users\[ИмяПользователя]\AppData\Roaming\1C\1cv8\.
  3. Удалим все каталоги с длинными буквенно-цифровыми идентификаторами (GUID-именами). Не трогаем файлы настроек с расширением .pfl и список информационных баз ibases.v8i.
  4. Если профили пользователей расположены на медленном магнитном диске, перенесем каталоги временных файлов или весь каталог профилей на скоростной твердотельный накопитель (SSD). Это исключит конкуренцию сеансов за чтение локальных кэшированных форм.

Перенос базы данных на SSD и настройка дисковой подсистемы

Замена классического HDD на твердотельный накопитель дает максимальный прирост скорости для файловых баз. База размером от 1.5 ГБ выполняет сотни разрозненных операций чтения и записи в единый файл при каждом проведении документа. Накопитель SSD обеспечивает тысячи IOPS, сводя время ожидания транзакций к минимуму.

При выборе накопителя и переносе данных учтем важные правила надежности:

  1. Для терминального сервера с постоянной записью предпочтительно использовать накопители серверного сегмента (Enterprise) с высоким ресурсом записи (TBW/DWPD) и защитой от потери питания (Power Loss Protection).
  2. Ни в коем случае не храним резервные копии на том же физическом SSD, где лежит рабочая база. Внезапный выход из строя контроллера флеш-памяти приводит к полной потере информации без возможности простого восстановления.
  3. Обязательно настроим ежедневное автоматическое создание копий файла 1Cv8.1CD на отдельный физический HDD или в сетевое хранилище.

Регламентное обслуживание файловой информационной базы

В отличие от клиент-серверного варианта, файловая СУБД 1С не выполняет автоматическую дефрагментацию таблиц и пересчет служебных итогов в фоновом режиме. Со временем накапливаются фрагментированные страницы и устаревшие индексы регистров.

Разберем процедуру профилактического обслуживания:

  1. Создадим резервную копию базы данных (простым копированием файла 1Cv8.1CD при закрытых сеансах или через меню конфигуратора Администрирование → Выгрузить информационную базу).
  2. Запустим утилиту физической проверки целостности chdbfl.exe, которая находится в каталоге bin установленной платформы 1С. Укажем путь к файлу базы, установим флажок «Исправлять обнаруженные ошибки» и запустим проверку.
  3. Откроем базу в режиме Конфигуратор монопольно.
  4. Перейдем в меню Администрирование → Тестирование и исправление...
  5. Отметим флажками пункты: Реиндексация таблиц информационной базы, Пересчет итогов, а также Сжатие таблиц информационной базы.
  6. Выполним операцию. Сжатие освободит пустое неиспользуемое пространство внутри файла .1CD, уменьшив его размер, а пересчет итогов существенно ускорит проведение документов по регистрам накопления.

Оптимизация журнала регистрации

Файл журнала регистрации (расположенный в папке 1Cv8Log внутри каталога информационной базы) при интенсивной работе может разрастаться до нескольких гигабайт. В файловом режиме одновременная запись событий всеми сеансами в один файл создает взаимные блокировки ввода-вывода.

Для ускорения системы применим следующие настройки:

  1. В режиме конфигуратора откроем меню Администрирование → Настройка журнала регистрации.
  2. Снизим уровень детализации: вместо «Регистрировать все события» выберем «Регистрировать ошибки, предупреждения» или ограничим фиксацию незначительных действий пользователей.
  3. При необходимости выполним сокращение журнала, удалив устаревшие записи за прошлые периоды с предварительным сохранением архива.

Архитектурная альтернатива: отказ от RDP через веб-сервер

Если серверное оборудование ограничено по ресурсам (например, слабый процессор и всего 8 ГБ RAM), использование терминального сервера на 10 и более пользователей приводит к скрытому исчерпанию оперативной памяти и постоянному свопингу (файлу подкачки). Графические оболочки сеансов Windows потребляют значительную часть ресурсов.

Эффективным решением является публикация файловой информационной базы на веб-сервере (Apache или IIS):

  1. Установим и настроим веб-сервер на локальной машине с базой.
  2. Выполним публикацию базы через меню конфигуратора Администрирование → Публикация на веб-сервере...
  3. Пользователи подключаются к базе через тонкий клиент «1С:Предприятия» по протоколу HTTP/HTTPS прямо со своих рабочих мест.

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

← На главную