Администрирование · 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 и замер производительности в конфигураторе («Отладка» — «Замер производительности»). Это покажет конкретные запросы и участки кода, которые тормозят систему.
Перенос баз на SSD, разнесение данных и журналов
Настройка памяти СУБД, добавление RAM
Техножурнал, анализ запросов, настройка кластера
Мониторинг блокировок, управляемый режим блокировок
Шаг 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). Без этого планы запросов деградируют, и база постепенно замедляется, даже если железо мощное. Обслуживание планируйте на ночные часы, чтобы не конкурировать с пользователями за ресурсы.
-- MS SQL: ограничение памяти и обновление статистики
EXEC sp_configure 'max server memory (MB)', 24576;
RECONFIGURE;
EXEC sp_updatestats;Шаг 4. Отрегулируйте кластер серверов 1С
Кластер 1С управляет рабочими процессами (rphost), которые исполняют код и обращаются к СУБД. Если рабочий процесс один, а пользователей много, все запросы выстраиваются в очередь. Увеличьте число рабочих процессов в свойствах рабочего сервера — ориентир: один процесс на несколько десятков активных пользователей, но точное число подбирается замером.
Полезные настройки кластера: ограничение объёма памяти на рабочий процесс с автоматическим перезапуском (защищает от утечек памяти), допустимый объём памяти процессов за вызов, интервал перезапуска. Перезапуск rphost по расписанию (например, раз в сутки ночью) — признанная практика, которая сбрасывает накопленную фрагментацию памяти.
Если серверов несколько, разнесите роли: отдельный сервер под СУБД, отдельный — под кластер 1С. Связь между ними должна быть по быстрой сети без потерь пакетов — даже гигабитная сеть с ошибками на порту заметно тормозит обмен данными.
- 1Откройте консоль администрирования серверов 1С и оцените текущее число rphost и их нагрузку
- 2Увеличьте число рабочих процессов на рабочем сервере
- 3Задайте лимит памяти на процесс и включите перезапуск при превышении
- 4Настройте ночной перезапуск рабочих процессов
- 5Замерьте время типовых операций до и после изменений
Шаг 5. Разберитесь с регламентными заданиями и самой базой
Частый источник «тормозов» — регламентные и фоновые задания, которые выполняются днём и конкурируют с пользователями: полнотекстовый поиск, обмены данными, расчёт итогов, загрузка курсов, интеграции. Перенесите тяжёлые задания на ночь, отключите неиспользуемые, а цепочки обменов разведите по времени, чтобы они не запускались одновременно.
Внутри базы проверьте: включённое версионирование объектов (при долгой истории оно раздувает базу), объём журнала регистрации (настройте сокращение или снижение детализации), периодичность расчёта итогов по регистрам. Для больших баз выполните «Тестирование и исправление» с реиндексацией и сжатием таблиц — это длительная операция, запускайте её в монопольном режиме вне рабочего времени.
Если после всего этого медленными остаются конкретные операции (проведение больших документов, отчёты), проблема в коде конфигурации: неоптимальные запросы, запросы в цикле, отсутствие индексов по полям отборов. Это работа для разработчика по результатам замера производительности — административными настройками такие проблемы не решаются.
Шаг 6. Проверьте результат и закрепите мониторинг
Каждое изменение оценивайте измеримо: время открытия и проведения типового документа, время формирования ключевого отчёта, время входа в базу в час пик. Замеры до и после должны выполняться в сопоставимых условиях — в одинаковое время суток и при похожей нагрузке, иначе сравнение некорректно.
После оптимизации настройте постоянный мониторинг: счётчики дисков и памяти, длительные транзакции, блокировки, длительность регламентных заданий. Это позволит заметить деградацию заранее — база растёт, и через год-полтора настройки могут снова потребовать пересмотра.
Как проверить результат
Сократилось или стабильно в часы пик
Улучшение есть только ночью, днём всё по-прежнему
В основном ниже 2
Постоянно выше 3 — диски всё ещё узкое место
Есть запас, swap не растёт
Память занята полностью, активный свопинг
Единичные и кратковременные
Регулярные длительные ожидания и взаимоблокировки
Частые вопросы
Что даёт самый быстрый эффект при минимальных затратах?
Обычно перенос базы и журнала транзакций с HDD на SSD и корректное ограничение памяти СУБД. Эти две меры не требуют доработки конфигурации и часто ускоряют систему заметно уже в первый день.
Нужно ли выносить СУБД и кластер 1С на разные серверы?
Для небольших баз (до нескольких десятков пользователей) совмещение допустимо при грамотном разделении памяти. При росте нагрузки разнесение ролей упрощает диагностику и масштабирование, но требует качественной сети между серверами.
Поможет ли увеличение числа рабочих процессов кластера?
Только если процессор и память имеют запас, а текущие rphost перегружены. Если узкое место — диски или блокировки в СУБД, добавление процессов эффекта не даст, а при нехватке RAM ухудшит ситуацию.
Как часто нужно обслуживать базу?
Обновление статистики и реиндексация — еженедельно или ежедневно для больших баз, в ночные часы. Тестирование и исправление со сжатием — по мере роста базы, обычно раз в несколько месяцев, в монопольном режиме.
Почему 1С тормозит только у части пользователей?
Проверьте их клиентские места и сеть: медленный канал до филиала, антивирус, проверяющий трафик и файлы 1С, устаревшая платформа на клиенте. Серверная оптимизация не устраняет проблемы «последней мили».
Когда оптимизации железа уже недостаточно?
Когда замеры показывают, что время уходит в конкретные запросы и код конфигурации: запросы в циклах, отсутствие индексов, тяжёлые отчёты без СКД-оптимизации. Дальше нужна работа разработчика с замером производительности и, возможно, пересмотр архитектуры решения.
Что важно запомнить
Ускорение серверной 1С — это последовательность: диагностика узкого места, быстрые диски и достаточный объём памяти, настройка СУБД и кластера, порядок в регламентных заданиях и обязательный замер результата. Изменения вносятся по одному, с резервной копией и вне пиковой нагрузки.