Как оптимизировать производительность сервера 1С и ускорить работу с хранилищем конфигураций при большом количестве баз?

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

Работа в среде с большим количеством информационных баз (более 100) и активным использованием хранилища конфигураций накладывает специфические требования к настройке серверного оборудования и программного обеспечения. Часто стандартные настройки не справляются, и разработчики сталкиваются с длительными задержками при захвате или помещении объектов. В этой статье мы подробно разберем, как оптимизировать сервер 1С, настроить рабочие процессы и ускорить работу с хранилищем.

Анализ настроек рабочих процессов кластера 1С

Рассмотрим ситуацию, когда на сервере развернуто множество баз, с которыми работают группы разработчиков. Стандартные настройки кластера подразумевают, что один рабочий процесс rphost.exe обслуживает множество информационных баз и соединений. Это может привести к нестабильности и снижению скорости работы из-за конкуренции за ресурсы внутри одного процесса.

Проанализируем ключевые параметры рабочего сервера:

  1. Количество ИБ на процесс: Установим значение равным 1. Это заставит систему запускать отдельный процесс rphost.exe для каждой активной информационной базы. Такой подход обеспечивает изоляцию баз друг от друга. Если одна база вызовет критическую ошибку или утечку памяти, это не затронет разработчиков в других базах.
  2. Количество соединений на процесс: Рекомендуется ограничить это значение в пределах 25–32. Это предотвратит чрезмерное раздувание одного процесса по памяти и позволит серверу более эффективно распределять нагрузку между ядрами процессора.

Выясним причину, почему это помогает: конфигуратор 1С во многих операциях является однопоточным. Разнося базы по разным процессам, мы позволяем операционной системе более гибко распределять эти процессы по разным физическим ядрам процессора.

Оптимизация работы Хранилища конфигураций

Работа с хранилищем часто становится «узким местом». Любая операция (захват, помещение, сравнение) требует интенсивного обмена мелкими пакетами данных и работы с файловой структурой хранилища. Разберем шаги по ускорению этих процессов:

Переход на сетевое хранилище (TCP)

Использование прямого доступа к файлам хранилища через сетевую шару (SMB) крайне неэффективно из-за блокировок и накладных расходов протокола. Необходимо использовать службу crserver.exe (сервер хранилища конфигураций 1С).

Обслуживание базы хранилища

Файлы хранилища со временем фрагментируются и накапливают избыточные данные. Проанализируем инструменты администрирования:

  1. Запустите утилиту администрирования хранилища.
  2. На вкладке обслуживания выполните команду «Оптимизировать». Это сожмет файлы и ускорит чтение метаданных.
  3. Проверьте режим совместимости хранилища. В современных версиях 8.3 лучше выставить его в значение «Не используется», если все разработчики работают на актуальных релизах платформы.

Настройка локального кэша разработчика

Многие забывают, что скорость работы конфигуратора с хранилищем зависит не только от сервера, но и от локальных настроек клиента (даже если клиент запущен в RDP). Выполним настройку использования локальных данных:

В конфигураторе перейдите в меню Конфигурация — Хранилище конфигурации — Настройка.... Увеличьте размер локального кэша данных хранилища. По умолчанию там может стоять 500 Мб, попробуйте увеличить это значение до 2048 Мб (2 Гб) или более. Это позволит 1С реже обращаться к серверу за историей объектов, которые уже были загружены ранее.

Дисковая подсистема и SQL Server

Высокая очередь к дискам (более 2–5) — явный признак того, что дисковая подсистема не справляется. Даже если у вас RAID 10 из HDD, случайное чтение и запись (характерные для SQL и 1С) будут медленными.

Рассмотрим рекомендации по дискам:

Настройка SQL Server (MAXDOP и Shared Memory)

Посмотрим на настройки SQL Server, которые важны для стабильности 1С:

  1. MAXDOP (Maximum Degree of Parallelism): Для серверов 1С рекомендуется устанавливать значение 1. Это запрещает SQL Server пытаться распараллеливать один запрос на несколько ядер, что в архитектуре 1С часто приводит к взаимным блокировкам и деградации производительности.
  2. Протоколы подключения: Если SQL Server и сервер приложений 1С находятся на одной физической машине, убедитесь, что включен протокол Shared Memory. Это позволит им обмениваться данными через оперативную память, минуя сетевой стек, что значительно быстрее.

Аппаратные факторы: частота процессора vs количество ядер

Проанализируем результаты теста Гилева. Если вы получаете около 30–35 единиц при наличии мощных процессоров Xeon, причина чаще всего кроется в низкой тактовой частоте на одно ядро. Для 1С частота важнее количества ядер.

Настройка электропитания в BIOS

Обязательно проверьте настройки BIOS сервера. По умолчанию многие серверы стоят в режиме энергосбережения. Нужно установить режим Maximum Performance (Максимальная производительность). В противном случае процессор будет динамически снижать частоту («засыпать»), и в момент нажатия кнопки в 1С системе потребуется время на «пробуждение» ядра, что воспринимается пользователем как микрофризы.

Мониторинг блокировок

Если сервер не загружен на 100%, но все «висит», значит, имеют место ожидания на блокировках. Разберем пример скрипта для анализа текущих ожиданий в SQL Server:


SELECT
    r.session_id,
    r.start_time,
    r.total_elapsed_time,
    r.wait_type,
    r.wait_time,
    r.last_wait_type,
    t.text AS [QueryText]
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) t
WHERE r.wait_type IS NOT NULL;

Этот запрос покажет, какие процессы в данный момент ждут освобождения ресурсов и какой тип ожидания (wait_type) является преобладающим. Если вы видите типы PAGEIOLATCH_XX, значит, проблема в скорости дисков.

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

← На главную