9:00—19:00

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

«1С тормозит» — жалоба, за которой стоят совершенно разные причины: от файловой базы, которую пять человек открывают по Wi-Fi, до одного отчёта, написанного запросом в цикле. Лечатся они по-разному, а начинать нужно с замера — иначе можно купить сервер вдвое мощнее и не получить ничего. Разбираем, как отличить проблему базы от проблемы сервера и сети, чем измерить производительность 1С, какие причины встречаются чаще всего и что с каждой делать.

Тормозит база или тормозит сервер: как отличить

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

  • Медленно всем одновременно или одному сотруднику? Если одному — смотрите его рабочее место и канал: слабый ноутбук, Wi-Fi, антивирус, старая версия клиента. Если всем — дело в сервере, в сети до него или в самой базе.
  • Медленно всё или конкретные операции? Если база долго открывается, документы проводятся с задержкой, списки листаются рывками — это инфраструктура: диск, память, сеть, режим работы базы. Если всё быстро, кроме одного отчёта или закрытия месяца, — это код и данные: запросы, доработки, объём регистров.
  • Стало медленно постепенно или в один день? Постепенно — растёт база, накапливаются движения по регистрам, устаревает статистика СУБД. В один день — обновление платформы или конфигурации, новое расширение, новый антивирус, изменение сети, добавились пользователи.

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

Производительность 1С: как замерить, а не гадать

У платформы есть три штатных инструмента замера, и они отвечают на разные вопросы.

  1. Оценка производительности APDEX. Подсистема «Оценка производительности» входит в Библиотеку стандартных подсистем и есть в большинстве типовых конфигураций. Вы задаёте ключевые операции («Проведение реализации», «Открытие формы заказа») и целевое время для каждой; система накапливает реальные замеры по всем пользователям и считает индекс APDEX от 0 до 1: 0,94 и выше — отлично, 0,85–0,93 — хорошо, 0,70–0,84 — удовлетворительно, 0,50–0,69 — плохо, ниже 0,50 — неприемлемо. Главное достоинство — это измерение того, что чувствуют пользователи, за неделю, а не в тот момент, когда администратор зашёл посмотреть.
  2. Тест Гилёва (TPC-1C-GILV). Внешняя обработка, которая выполняет синтетический набор операций в файловом режиме и выдаёт оценку в условных единицах. Он не измеряет вашу базу и ваших пользователей — он измеряет, насколько быстро конкретный сервер выполняет однопоточные операции платформы. Полезен, чтобы сравнить два сервера или диск до и после замены. Использовать его как единственный критерий нельзя: сервер с высоким баллом может всё равно тормозить на клиент-серверной базе с плохими индексами.
  3. Замер производительности в Конфигураторе. Меню «Отладка → Замер производительности» включает трассировку: выполняете медленную операцию, останавливаете замер — и видите, сколько времени заняла каждая строка кода и какие запросы. Это инструмент разработчика для поиска тяжёлых запросов и обращений к базе в цикле; для инфраструктурных проблем он бесполезен.

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

1С тормозит по сети: файловая база и переход в клиент-серверный режим

Если база в файловом режиме лежит на «сервере» (часто это просто компьютер бухгалтера с общей папкой), а сотрудники открывают её со своих компьютеров по сети, причина уже известна. В файловом режиме нет сервера 1С: каждый клиент сам читает и пишет файл базы «1Cv8.1CD» через сетевую папку, при записи блокирует таблицу целиком, а при построении отчёта тянет через сеть всё, что ему нужно. Пять пользователей на такой схеме уже мешают друг другу, десять — превращают проведение документа в минуты. Wi-Fi, антивирус, сканирующий файл базы при каждом обращении, и рост базы за 2–4 ГБ доводят до предела. У файлового режима есть и жёсткое ограничение: размер одной таблицы не может превышать 4 ГБ при стандартном размере страницы — при его достижении база перестаёт работать.

Решений два, и их часто применяют вместе.

Терминальный доступ вместо файловой базы по сети. База и клиент 1С ставятся на один сервер, сотрудники подключаются к нему по удалённому рабочему столу. По сети идёт только картинка, а все обращения к файлу базы — локально, на быстром диске. Для 3–10 пользователей это часто снимает проблему целиком без смены режима базы и без серверной лицензии 1С. Именно так устроен наш сервер для 1С: терминальный доступ, база на SSD, ежедневные копии.

Переход в клиент-серверный режим. База переносится в СУБД — PostgreSQL или MS SQL, — а между клиентами и СУБД появляется сервер 1С:Предприятия, который выполняет запросы и бизнес-логику. Блокировки становятся построчными, тяжёлые операции выполняются на сервере, ограничение на размер таблицы исчезает. Понадобятся лицензия на сервер 1С:Предприятия, СУБД (PostgreSQL бесплатна, есть сборка от фирмы «1С»; MS SQL лицензируется отдельно) и администрирование СУБД. Переход имеет смысл от 8–12 активных пользователей или когда база выросла до нескольких гигабайт и тяжёлые отчёты стали нормой. Сам перенос — выгрузка «.dt» из Конфигуратора и загрузка в новую базу, работа на вечер; настройка СУБД и регламентов — отдельная задача.

Ресурсы сервера 1С: ядра, память, диск

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

  • Частота ядра важнее числа ядер. Сеанс пользователя 1С выполняется в одном потоке: ему помогает быстрое ядро, а не шестнадцать медленных. Для терминального сервера ориентир — одно ядро на 3–5 активных пользователей при частоте от 3 ГГц; для сервера 1С с СУБД — отдельные ядра под рабочие процессы и под СУБД.
  • Память. Терминальный сеанс с клиентом 1С занимает от нескольких сотен мегабайт; рабочим процессам сервера 1С и СУБД нужно столько памяти, чтобы «горячая» часть базы помещалась в кэш. Ориентир для 10 пользователей — 16–32 ГБ на терминальном сервере. При нехватке памяти система уходит в файл подкачки, и это выглядит как «тормозит всё».
  • Диск — SSD или NVMe. Работа 1С — это много мелких случайных чтений и записей; обычный HDD и тем более сетевое хранилище с высокой задержкой — самая частая аппаратная причина медленной 1С. Смотрите очередь к диску и время отклика: при задержке в десятки миллисекунд менять надо диск, а не процессор.
  • Виртуализация. На виртуальном сервере убедитесь, что ядра и память не переподписаны, а виртуальный диск лежит на SSD-хранилище: сосед по гипервизору может забирать ресурсы в самый неподходящий момент.
  • Настройки системы. План электропитания «Высокая производительность», исключения антивируса для файлов базы, каталогов 1С и файлов СУБД, актуальная версия платформы — три вещи, которые проверяют первыми и которые чаще всего забыты.

Оптимизация 1С: регламентные операции, база и код

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

Регламентное обслуживание СУБД. В клиент-серверном режиме индексы фрагментируются, статистика устаревает — планировщик СУБД начинает выбирать плохие планы запросов, и отчёты, которые строились секунды, идут минуты. Для MS SQL — регулярная перестройка или реорганизация индексов и обновление статистики; для PostgreSQL — настроенный autovacuum, периодические VACUUM и ANALYZE, при необходимости REINDEX. Делается по расписанию ночью, а не «когда вспомнят».

Размер и история базы. База за десять лет с миллионами движений по регистрам замедляет всё: остатки считаются от начала времён. Штатное средство — «Свёртка информационной базы»: остатки на дату фиксируются, старые документы удаляются или уходят в архивную копию. Заодно проверьте, не хранится ли в базе то, чему там не место: присоединённые файлы на гигабайты (их можно вынести в тома на диске), раздутый журнал регистрации, полнотекстовый поиск, индексирующий всё подряд.

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

Тяжёлые отчёты и доработки. Если тормозят конкретные операции, замер в Конфигураторе почти всегда показывает одно из трёх: запрос внутри цикла, отчёт, который собирает данные за все годы вместо периода, или доработка, сделанная «чтобы работало». Лечится переписыванием кода: один запрос вместо тысячи, отбор по периоду, использование индексов. Это работа программиста 1С, а не системного администратора; у нас она входит в сопровождение 1С вместе с обслуживанием сервера и СУБД.

Медленно работает 1С: симптом, вероятная причина, что делать

СимптомВероятная причинаЧто делать
У всех долго открывается база, документы проводятся с задержкой, списки листаются рывкамифайловая база по сети, медленный дисктерминальный сервер или клиент-серверный режим; база на SSD
Медленно у одного сотрудникаего компьютер, Wi-Fi, антивирус, старая версия клиентапроверить с другого рабочего места; обновить клиент; кабель вместо Wi-Fi
Тормозит один отчёт или закрытие месяцанеоптимальный запрос, данные за все годызамер в Конфигураторе, переписать запрос, отбор по периоду, свёртка базы
Стало медленно сразу после обновленияновая версия платформы или конфигурации, новое расширениесравнить замеры до и после, отключить расширение, обновить платформу до стабильного релиза
Медленно в определённые часырегламентные задания, обмены, резервное копирование в рабочее времяперенести расписание на ночь
«Сервер 1С завис», сеансы отваливаютсянехватка памяти, перезапуск рабочих процессов, блокировкисмотреть память и технологический журнал, добавить память, разобрать блокировки
Медленно всем после роста числа пользователейресурсы сервера исчерпаныдобавить ядра и память, разнести сервер 1С и СУБД
Файловая база выдаёт ошибки при записиразмер таблицы приближается к 4 ГБсрочно клиент-серверный режим или свёртка

Вопросы и ответы

Поможет ли просто более мощный сервер?

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

Сколько пользователей выдерживает файловая база?

При локальной работе на терминальном сервере с SSD — до 8–12 активных пользователей на небольшой базе. По сети — комфортно 2–3, дальше начинаются взаимные блокировки. Точной цифры нет: важнее размер базы и характер работы.

PostgreSQL или MS SQL для 1С?

Обе СУБД поддерживаются платформой официально. PostgreSQL бесплатна, есть сборка от фирмы «1С», и для большинства баз до нескольких десятков пользователей её достаточно; MS SQL требует лицензии и выбирается, когда уже есть экспертиза и инфраструктура. При правильной настройке разница на типичных задачах невелика; неправильно настроенная тормозит любая.

Что показывает тест Гилёва и на какое число ориентироваться?

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

1С тормозит на терминальном сервере — это нормально?

Нет. Терминальный сервер убирает сеть из уравнения, и если 1С тормозит и там, причина в самом сервере (диск, память, переподписанные ядра), в режиме базы или в коде. Снимите загрузку в момент жалоб и сделайте замер производительности.

Если по итогам замера упор в железо, режим базы или в отсутствие администратора СУБД, дешевле не собирать сервер самим, а взять готовый: аренда сервера для 1С от 29 900 ₽ в год — терминальный доступ, база на SSD в дата-центре в Москве, ежедневные копии, перенос базы. Бесплатный тест 7 дней на вашей базе: развернём её, и вы сами сравните время проведения документов и построения отчётов. Если же дело в коде и регламентах — сопровождение 1С: диагностика, обслуживание сервера и СУБД, оптимизация запросов. Инженеры по телефону и почте с 9 до 19 по Москве: +7 495 780-66-50.

Добавить комментарий
Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *
Этот сайт использует cookie-файлы, чтобы помочь Вам в навигации, а также для предоставления лучшего пользовательского опыта и анализа использования наших продуктов и услуг
Принять