К статье
Практический материал

Администрирование · 10 мин

Как ускорить 1С на сервере: пошаговое руководство

Конкретные способы ускорить серверную 1С: настройка СУБД, кластера 1С, дисковой подсистемы, регламентных заданий и диагностика узких мест.

Медленная работа серверной 1С почти всегда объясняется не «слабым железом вообще», а конкретным узким местом: перегруженными дисками, неоптимальными настройками СУБД, неправильными параметрами кластера 1С или тяжёлыми запросами в конфигурации. Ускорение начинается с диагностики — без неё любые изменения настроек превращаются в гадание и могут ухудшить ситуацию.

Основные направления оптимизации: дисковая подсистема и оперативная память сервера СУБД, настройки PostgreSQL или MS SQL Server, параметры рабочих процессов кластера 1С, регламентные и фоновые задания, а также типовые механизмы самой базы (итоги, индексы, версионирование). Ниже — практический порядок действий от диагностики к проверке результата.

Шаг 1. Найдите узкое место, прежде чем что-то менять

Первое правило: не меняйте настройки вслепую. Снимите базовые метрики в часы пиковой нагрузки: загрузку процессора, очередь дисков, объём свободной оперативной памяти, сетевые задержки между сервером 1С и сервером СУБД. В Windows это делается через Performance Monitor (счётчики Physical Disk, Memory, Processor), в Linux — через iostat, vmstat, top.

Характерные признаки помогают сразу сузить поиск. Если дисковая очередь постоянно выше 2–3, а процессор недогружен — проблема в дисках. Если память занята на 95–100% и растёт файл подкачки — не хватает RAM или СУБД неправильно сконфигурирована. Если пользователи жалуются на «подвисания» при одновременной работе, а сервер простаивает — вероятны блокировки в СУБД или нехватка рабочих процессов кластера.

Для поиска медленных операций внутри 1С используйте технологический журнал кластера с фильтром по длительности событий DBMSSQL/DBPOSTGRS и замер производительности в конфигураторе («Отладка» — «Замер производительности»). Это покажет конкретные запросы и участки кода, которые тормозят систему.

Очередь дисков > 2–3 постоянноДиски не справляются

Перенос баз на SSD, разнесение данных и журналов

Свободной RAM почти нет, активный swapНехватка памяти или неверные лимиты СУБД

Настройка памяти СУБД, добавление RAM

CPU загружен на 100% одним процессом rphostТяжёлый запрос или нехватка рабочих процессов

Техножурнал, анализ запросов, настройка кластера

Жалобы на взаимные ожидания пользователейБлокировки в СУБД

Мониторинг блокировок, управляемый режим блокировок

Шаг 2. Оптимизируйте дисковую подсистему и память

Диски — самая частая причина медленной серверной 1С. Базы данных и журналы транзакций должны находиться на SSD, желательно с высокой надёжностью записи. Если сервер всё ещё работает на HDD, перенос базы на твердотельные накопители обычно даёт самый заметный прирост скорости из всех возможных мер.

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

По памяти ориентир простой: серверу СУБД должно хватать RAM, чтобы держать в кэше активно используемую часть базы, плюс запас для операционной системы и процессов 1С, если они размещены на той же машине. На совмещённом сервере (кластер 1С и СУБД вместе) обязательно ограничьте максимальное потребление памяти СУБД, иначе она вытеснит рабочие процессы 1С, и система начнёт свопиться.

Шаг 3. Настройте СУБД под нагрузку 1С

Настройки СУБД «по умолчанию» рассчитаны на минимальное оборудование и почти гарантированно душат производительность. Для MS SQL Server проверьте: максимальный объём памяти сервера (max server memory), модель восстановления базы (для большинства баз 1С достаточно Simple либо Full с регулярным бэкапом журнала), параметр max degree of parallelism и регулярное обновление статистики с перестроением индексов.

Для PostgreSQL ключевые параметры — shared_buffers (обычно 20–30% от RAM), work_mem, effective_cache_size, maintenance_work_mem, а также настройки автовакуума. Платформа 1С публикует рекомендуемые параметры для PostgreSQL — берите их за основу и корректируйте под объём памяти конкретного сервера.

Обязательно настройте регулярное обслуживание: обновление статистики, реиндексацию, очистку (vacuum для PostgreSQL). Без этого планы запросов деградируют, и база постепенно замедляется, даже если железо мощное. Обслуживание планируйте на ночные часы, чтобы не конкурировать с пользователями за ресурсы.

sql
-- MS SQL: ограничение памяти и обновление статистики
EXEC sp_configure 'max server memory (MB)', 24576;
RECONFIGURE;
EXEC sp_updatestats;

Шаг 4. Отрегулируйте кластер серверов 1С

Кластер 1С управляет рабочими процессами (rphost), которые исполняют код и обращаются к СУБД. Если рабочий процесс один, а пользователей много, все запросы выстраиваются в очередь. Увеличьте число рабочих процессов в свойствах рабочего сервера — ориентир: один процесс на несколько десятков активных пользователей, но точное число подбирается замером.

Полезные настройки кластера: ограничение объёма памяти на рабочий процесс с автоматическим перезапуском (защищает от утечек памяти), допустимый объём памяти процессов за вызов, интервал перезапуска. Перезапуск rphost по расписанию (например, раз в сутки ночью) — признанная практика, которая сбрасывает накопленную фрагментацию памяти.

Если серверов несколько, разнесите роли: отдельный сервер под СУБД, отдельный — под кластер 1С. Связь между ними должна быть по быстрой сети без потерь пакетов — даже гигабитная сеть с ошибками на порту заметно тормозит обмен данными.

Порядок настройки кластера
  1. 1
    Откройте консоль администрирования серверов 1С и оцените текущее число rphost и их нагрузку
  2. 2
    Увеличьте число рабочих процессов на рабочем сервере
  3. 3
    Задайте лимит памяти на процесс и включите перезапуск при превышении
  4. 4
    Настройте ночной перезапуск рабочих процессов
  5. 5
    Замерьте время типовых операций до и после изменений

Шаг 5. Разберитесь с регламентными заданиями и самой базой

Частый источник «тормозов» — регламентные и фоновые задания, которые выполняются днём и конкурируют с пользователями: полнотекстовый поиск, обмены данными, расчёт итогов, загрузка курсов, интеграции. Перенесите тяжёлые задания на ночь, отключите неиспользуемые, а цепочки обменов разведите по времени, чтобы они не запускались одновременно.

Внутри базы проверьте: включённое версионирование объектов (при долгой истории оно раздувает базу), объём журнала регистрации (настройте сокращение или снижение детализации), периодичность расчёта итогов по регистрам. Для больших баз выполните «Тестирование и исправление» с реиндексацией и сжатием таблиц — это длительная операция, запускайте её в монопольном режиме вне рабочего времени.

Если после всего этого медленными остаются конкретные операции (проведение больших документов, отчёты), проблема в коде конфигурации: неоптимальные запросы, запросы в цикле, отсутствие индексов по полям отборов. Это работа для разработчика по результатам замера производительности — административными настройками такие проблемы не решаются.

Типичные ошибки
01
Добавление оперативной памяти без ограничения max server memory — СУБД съедает всё, и от добавления RAM нет эффекта
02
Запуск тяжёлых регламентных заданий и бэкапов в рабочие часы — пользователи получают провалы производительности каждый день в одно и то же время
03
Увеличение числа rphost без контроля памяти — процессы совокупно превышают RAM, сервер уходит в своп и тормозит сильнее, чем раньше
04
Хранение базы и журнала транзакций на одном медленном HDD — журнал становится узким местом при любой записи

Шаг 6. Проверьте результат и закрепите мониторинг

Каждое изменение оценивайте измеримо: время открытия и проведения типового документа, время формирования ключевого отчёта, время входа в базу в час пик. Замеры до и после должны выполняться в сопоставимых условиях — в одинаковое время суток и при похожей нагрузке, иначе сравнение некорректно.

После оптимизации настройте постоянный мониторинг: счётчики дисков и памяти, длительные транзакции, блокировки, длительность регламентных заданий. Это позволит заметить деградацию заранее — база растёт, и через год-полтора настройки могут снова потребовать пересмотра.

Контрольные точки

Как проверить результат

Время проведения типового документа
Норма

Сократилось или стабильно в часы пик

Тревожный признак

Улучшение есть только ночью, днём всё по-прежнему

Очередь дисков в час пик
Норма

В основном ниже 2

Тревожный признак

Постоянно выше 3 — диски всё ещё узкое место

Свободная оперативная память
Норма

Есть запас, swap не растёт

Тревожный признак

Память занята полностью, активный свопинг

Взаимные блокировки пользователей
Норма

Единичные и кратковременные

Тревожный признак

Регулярные длительные ожидания и взаимоблокировки

Частые вопросы

Что даёт самый быстрый эффект при минимальных затратах?

Обычно перенос базы и журнала транзакций с HDD на SSD и корректное ограничение памяти СУБД. Эти две меры не требуют доработки конфигурации и часто ускоряют систему заметно уже в первый день.

Нужно ли выносить СУБД и кластер 1С на разные серверы?

Для небольших баз (до нескольких десятков пользователей) совмещение допустимо при грамотном разделении памяти. При росте нагрузки разнесение ролей упрощает диагностику и масштабирование, но требует качественной сети между серверами.

Поможет ли увеличение числа рабочих процессов кластера?

Только если процессор и память имеют запас, а текущие rphost перегружены. Если узкое место — диски или блокировки в СУБД, добавление процессов эффекта не даст, а при нехватке RAM ухудшит ситуацию.

Как часто нужно обслуживать базу?

Обновление статистики и реиндексация — еженедельно или ежедневно для больших баз, в ночные часы. Тестирование и исправление со сжатием — по мере роста базы, обычно раз в несколько месяцев, в монопольном режиме.

Почему 1С тормозит только у части пользователей?

Проверьте их клиентские места и сеть: медленный канал до филиала, антивирус, проверяющий трафик и файлы 1С, устаревшая платформа на клиенте. Серверная оптимизация не устраняет проблемы «последней мили».

Когда оптимизации железа уже недостаточно?

Когда замеры показывают, что время уходит в конкретные запросы и код конфигурации: запросы в циклах, отсутствие индексов, тяжёлые отчёты без СКД-оптимизации. Дальше нужна работа разработчика с замером производительности и, возможно, пересмотр архитектуры решения.

Итог

Что важно запомнить

Ускорение серверной 1С — это последовательность: диагностика узкого места, быстрые диски и достаточный объём памяти, настройка СУБД и кластера, порядок в регламентных заданиях и обязательный замер результата. Изменения вносятся по одному, с резервной копией и вне пиковой нагрузки.