Тормозит 1С на сервере: где искать причину и что настроить

· 9 мин

Содержание

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

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

Любые изменения настроек СУБД и кластера делайте вне рабочего времени и после резервной копии. Перед правкой параметров сохраните их старые значения — откат без записи превращается в угадайку.

Диагностика: найти узкое место раньше, чем что-то менять

Сначала выясните, что именно тормозит и у кого. Ответ «всё медленно» — не диагноз.

Три вопроса пользователям

  • 🐢 Медленно всё или одна операция (проведение, закрытие месяца , конкретный отчёт)?
  • 🕒 Тормозит всегда или в определённые часы?
  • 👤 Медленно у всех или у одного рабочего места?

Если медленно у одного человека — смотрите его компьютер и сеть, сервер ни при чём. Если в одно и то же время — ищите регламентные задания, бэкап или антивирусную проверку.

Что смотреть на самом сервере

Откройте монитор ресурсов Windows или htop в Linux и посмотрите на четыре показателя во время тормозов:

ПоказательТревожное значениеЧто это значит
Загрузка процессорастабильно выше 80%не хватает ядер или тяжёлые запросы
Свободная памятьпочти нет, идёт активный свопнехватка ОЗУ
Очередь к дискупостоянно больше 2 на дискдиск не успевает
Загрузка сетиблизко к предельнойузкий канал до клиентов

Загрузка CPU у процесса СУБД говорит о тяжёлых запросах. Загрузка у rphost — о нагрузке на серверный код 1С. Дисковая очередь указывает на накопитель.

Инструменты самой 1С

  • 📊 Консоль администрирования серверов 1С показывает сеансы, соединения и блокировки.
  • 🔍 Технологический журнал фиксирует долгие вызовы и ожидания на блокировках. Включайте его на короткое время и с отбором по длительности, иначе журнал сам забьёт диск.
  • ⏱ Замеры производительности (подсистема оценки производительности) дают сводку по ключевым операциям в динамике. Это лучший способ понять, стало ли лучше после правок.

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

Как читать результат

После замеров разложите находки по трём корзинам:

  • 🧱 Инфраструктура — упор в CPU, память, диск или сеть. Лечится настройками сервера и железом.
  • 🗄 СУБД — долгие запросы при свободных ресурсах 1С. Лечится статистикой, индексами и параметрами сервера баз данных.
  • 💻 Код и данные — медленная одна операция, а остальное летает. Здесь нужны оптимизация запроса или чистка данных.

Так вы не потратите неделю на настройку кластера, когда виноват один запрос в доработанном отчёте.

Настройка СУБД: что чаще всего даёт прирост

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

Microsoft SQL Server

Главные параметры:

  1. Максимальный объём памяти (max server memory). Если оставить по умолчанию, SQL Server заберёт всю память и задушит операционную систему и кластер 1С. Оставьте системе и рабочим процессам 1С запас, на отдельном сервере СУБД — хотя бы 10–15% памяти.
  2. Файлы tempdb. Создайте несколько файлов одинакового размера, по числу ядер, но не больше восьми. Держите их на быстром диске.
  3. Модель восстановления. Для базы с ежедневной полной копией и редкими логами хватит простой модели. Если нужны копии журнала транзакций для восстановления на момент времени, включите полную и обязательно настройте их резервирование — иначе журнал будет расти без конца.
  4. Автоприрост файлов. Задайте фиксированный шаг в сотни мегабайт, а не проценты. Мелкие частые приросты тормозят запись.
  5. Параллелизм. Для типовых нагрузок 1С обычно ограничивают степень параллелизма запроса до 1, чтобы один тяжёлый запрос не занимал все ядра.

PostgreSQL

Для 1С нужна сборка, с которой она совместима: либо сборка, рекомендованная фирмой 1С, либо Postgres Pro. Обычный дистрибутив из репозитория часто работает хуже. Ключевые параметры в postgresql.conf:

shared_buffers = 25% от ОЗУ
effective_cache_size = 50-75% от ОЗУ
work_mem = 16MB
maintenance_work_mem = 512MB
checkpoint_completion_target = 0.9

Эти значения — отправная точка для сервера СУБД, которому отдана вся машина. Подгоните их под свою нагрузку и проверьте замером.

Обслуживание: статистика и индексы

Без обновления статистики планировщик строит плохие планы, и запросы замедляются. Настройте регламентные задания:

  • 🔄 обновление статистики — ежедневно или как минимум раз в неделю;
  • 🧱 перестроение или реорганизация сильно фрагментированных индексов — раз в неделю;
  • 💾 проверка целостности и резервное копирование — по регламенту.

На PostgreSQL регулярно запускайте VACUUM и ANALYZE. Автовакуум по умолчанию часто не успевает на больших таблицах 1С.

Кластер серверов 1С:Предприятия: рабочие процессы и память

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

Откройте консоль администрирования серверов, раскройте кластер, затем Рабочие серверы и откройте свойства нужного сервера. Здесь стоит посмотреть:

ПараметрНа что влияетКак подобрать
Количество рабочих процессовраспределение нагрузкине больше числа ядер; на 4–8 ядрах хватает 2–4
Количество соединений на процессравномерностьзначение по умолчанию подходит для большинства
Количество информационных баз на процессизоляция баздля нескольких крупных баз уменьшите, чтобы одна не мешала другой
Допустимый объём памяти рабочих процессовперезапуск при утечкахзадайте предел чуть ниже реального запаса ОЗУ
Интервал перезапуска процессовпрофилактика утечекнапример, раз в сутки, ночью

Что учесть

  • 🧠 Используйте 64-разрядную версию сервера 1С. 32-разрядная ограничена по памяти и быстро упирается в потолок.
  • 🔁 Включите перезапуск рабочих процессов по расписанию вне рабочих часов. Это не лечит причину, но спасает от накопленных утечек памяти.
  • 🏢 Не размещайте на одном сервере терминальные сессии, кластер и СУБД, если нагрузка серьёзная. Вынесите СУБД на отдельную машину.
  • 🔒 Следите за долгими блокировками. Если сеанс держит блокировку минутами, ищите его в консоли и разбирайтесь, чем он занят.

Режимы блокировок и управляемые блокировки

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

Диски и железо: как ускорить работу 1С на сервере физически

Если замеры показали упор в диск, программными настройками не обойтись.

  • 💽 Переходите на SSD, лучше NVMe. Разница между HDD и NVMe для базы 1С — на порядок по случайному чтению.
  • 🗂 Разделите по разным дискам файлы данных, журнал транзакций и tempdb. Журнал пишется последовательно, данные читаются случайно, смешивать их невыгодно.
  • ⚡ В Windows переключите схему электропитания на «Высокая производительность». Экономный режим снижает частоту процессора и добавляет задержки.
  • 🧮 Для процессора важна высокая частота одного ядра. 1С плохо распараллеливается, поэтому восемь быстрых ядер часто лучше двадцати медленных.
  • 🛡 Добавьте исключения в антивирус для каталогов данных СУБД и рабочих файлов кластера. Постоянная проверка каждого обращения к файлам базы заметно замедляет работу.

Виртуальная машина: проверьте, что ей выделено фиксированное число ядер и память без «раздувания» (ballooning). Соседние виртуалки на том же хосте тоже могут отнимать ресурсы.

Сколько памяти нужно

Ориентиров на все случаи нет, но для примера: на 20–30 одновременных пользователях типовой конфигурации обычно закладывают порядка 32–64 ГБ ОЗУ на сервер с кластером и СУБД вместе. Лучше опирайтесь на свои замеры: посмотрите, сколько реально занимают rphost и процесс СУБД в пик.

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

База разрастается, и со временем все операции замедляются. Регулярный уход возвращает скорость.

Регламентные операции

  1. Обновление статистики и перестроение индексов — см. раздел про СУБД. Это самая полезная операция.
  2. Удаление помеченных объектов. Группа в меню администрирования: удаляйте помеченные на удаление документы и элементы справочников. Перед этим убедитесь, что копия сделана.
  3. Тестирование и исправление информационной базы в Конфигураторе. Запускайте при подозрении на повреждение, не по расписанию каждый день.
  4. Свёртка базы — когда накопились годы документов и работа явно замедлилась. Это серьёзная процедура: делайте её на копии и согласуйте с главным бухгалтером, что можно потерять в детализации прошлых периодов.

Регламентные задания

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

Итоги и движения

Если медленно формируются отчёты по остаткам и оборотам, проверьте режим использования итогов регистров и пересчёт итогов. Для крупных регистров бывает полезно перенести дату разделения итогов ближе к текущему периоду. Меняйте эти параметры с осторожностью и на копии базы.

Лишнее в конфигурации

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

Сеть и клиентские места

Сервер может быть идеальным, а пользователи всё равно жалуются. Тогда смотрите канал.

  • 🌐 Проверьте задержку до сервера. Для толстого клиента важна не только пропускная способность, но и время отклика: десятки миллисекунд на каждое обращение накапливаются в тысячи вызовов.
  • 🏠 Удалённым сотрудникам лучше подключаться через терминальный сервер или веб-клиент, а не гонять толстый клиент по медленному каналу от домашнего интернета.
  • 🧹 Очистите кэш клиента, если у пользователя странно ведут себя формы. Для этого запускают клиент с ключом /ClearCache.
  • 🖥 На рабочих местах проверьте свободное место на диске и память. Тонкий клиент с 4 ГБ ОЗУ, в которой уже живёт браузер и почта, тоже тормозит.
  • 🔌 Проверьте кабель и порт на коммутаторе: ошибки на линии бывают причиной «плавающих» тормозов у одного человека.

Если не помогло

Когда все пункты выполнены, а скорость прежняя, остаются три варианта:

  • 📈 Масштабировать железо: вынести СУБД на отдельный сервер, добавить диск или ядра.
  • 🧑‍💻 Заказать профилирование доработок и оптимизацию запросов у специалиста.
  • 🧩 Разделить базы по нагрузке: тяжёлую аналитику вынести в отдельную копию.
Порядок работ по ускорению сервера
Выполнено: 0 / 7

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

Сколько оперативной памяти нужно серверу 1С?
Зависит от числа пользователей и конфигурации. Ориентир для 20–30 человек — 32–64 ГБ на сервер с кластером и СУБД. Точнее скажут замеры в пик нагрузки.
Что быстрее: PostgreSQL или MS SQL для 1С?
При правильной настройке разница невелика. Важнее качество настройки, диски и поддерживаемая сборка. Выбирайте исходя из лицензий и опыта администратора.
Нужно ли перезапускать сервер 1С регулярно?
Перезапуск рабочих процессов по расписанию, например ночью, полезен для сброса накопленных утечек. Полная перезагрузка сервера целиком нужна редко.
Помогает ли свёртка базы ускорить работу?
Помогает на базах с большим числом старых записей, но это радикальная мера. Сначала сделайте обслуживание СУБД и проверьте запросы: чаще причина в них.
Почему тормозит только в конце месяца?
В закрытие месяца идут тяжёлые регламентные операции и пересчёт итогов. Разнесите их по времени, убедитесь, что статистика свежая, и посмотрите блокировки.
Можно ли ускорить файловую базу?
Файловую базу ограничивает диск и сеть. Её ускорение — SSD и быстрое подключение. Для многопользовательской работы лучше перейти на клиент-серверный вариант.