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

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

Что влияет на производительность сервера 1С

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

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

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

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

Процессор: почему частота важнее количества ядер

Рабочие процессы кластера 1С (rphost) выполняют код конфигурации преимущественно в однопоточном режиме. Это значит, что сервер с 32 ядрами на 2,0 ГГц может работать медленнее, чем сервер с 8 ядрами на 3,5 ГГц, если речь идёт о времени отклика конкретного пользователя.

Количество ядер имеет значение для общей пропускной способности: сколько одновременных сессий и фоновых заданий сервер способен обслуживать без очередей. Но если жалобы звучат как «документ проводится 30 секунд», проблема почти наверняка в скорости одного потока, а не в нехватке ядер.

Практический вывод: при выборе сервера для 1С отдавайте приоритет моделям с высокой тактовой частотой и производительностью на ядро, а не максимальным числом ядер за те же деньги. Также проверьте, что в BIOS и операционной системе включён режим максимальной производительности, а не энергосбережение — понижение частоты под нагрузкой даёт заметную просадку.

Дисковая подсистема и размещение базы данных

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

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

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

Высокая загрузка диска при умеренном CPUУзкое место — подсистема ввода-вывода

Смотрите очередь диска и время отклика в мониторе ресурсов

CPU одного ядра на 100%Тяжёлый запрос или код конфигурации

Ищите долгий запрос в консоли кластера или техножурнале

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

Проверьте настройки max server memory и размер буферного кэша

Все ресурсы в норме, но 1С тормозитПроблема в коде или блокировках

Анализируйте взаимоблокировки и длительные транзакции

Оперативная память и настройки СУБД

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

Типичная ошибка — оставить настройки памяти СУБД по умолчанию. Например, в MS SQL Server без ограничения max server memory сервер может отобрать память у операционной системы, что приведёт к свопингу и общей деградации. Правильный подход — задать лимит так, чтобы ОС и агенту сервера 1С (если они на одной машине) гарантированно хватало ресурсов.

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

Порядок базовой диагностики
  1. 1
    Зафиксируйте симптом: тормозит у всех или у конкретных пользователей, постоянно или в определённые часы
  2. 2
    Снимите показания монитора ресурсов: CPU по ядрам, очередь диска, свободная память, сеть
  3. 3
    Проверьте счётчики СУБД: буферный кэш, ожидания (waits), длительные запросы
  4. 4
    Изучите технологический журнал 1С и консоль кластера на предмет долгих вызовов и взаимоблокировок
  5. 5
    Устраните найденное узкое место и повторите замер — сравните время выполнения типовой операции до и после

Настройки кластера серверов 1С

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

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

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

Сеть, виртуализация и размещение компонентов

Задержка сети между клиентом, сервером 1С и СУБД напрямую влияет на скорость интерфейса. Тонкий клиент и веб-клиент менее чувствительны к каналу, чем толстый, но связка «сервер 1С — сервер СУБД» должна работать по быстрой локальной сети с минимальными задержками. Размещение этих компонентов в разных сегментах с медленным маршрутом между ними — гарантированная просадка.

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

Код конфигурации и блокировки

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

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

Инструменты поиска: технологический журнал с отбором по длительным событиям DBMSSQL/DBPOSTGRS и TLOCK, замеры производительности в конфигураторе, план запроса на стороне СУБД. Оптимизация кода часто даёт эффект в разы, которого не добиться никаким апгрейдом железа.

Типичные ошибки
01
Покупка сервера с большим числом медленных ядер — время отклика не улучшается, деньги потрачены зря
02
Размещение базы на HDD или дешёвом SSD без защиты записи — тормоза и риск повреждения данных при сбое питания
03
Отсутствие обслуживания СУБД: устаревшая статистика и фрагментированные индексы делают запросы медленнее со временем
04
Один rphost на всех пользователей — перерасход памяти и взаимное влияние сессий
05
Запуск тяжёлых регламентных заданий в рабочие часы — жалобы пользователей в часы пик
06
Включённый режим энергосбережения процессора — скрытая потеря производительности на ровном месте

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

Любое изменение нужно замерять. Выберите 2–3 типовые операции (проведение документа, формирование отчёта, открытие списка), зафиксируйте время выполнения до изменений и повторите замер после в сопоставимых условиях. Без «до/после» невозможно понять, сработала ли мера или проблема просто переместилась.

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

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

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

Время типовой операции
Норма

Стабильно снизилось при повторных замерах

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

Улучшение разовое или отсутствует

Очередь диска и время отклика
Норма

Низкие значения под нагрузкой

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

Очередь растёт, отклик десятки миллисекунд и выше

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

Свопинг отсутствует, резерв памяти есть

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

Активная подкачка, ОС не хватает RAM

Ожидания СУБД
Норма

Преобладают незначительные ожидания

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

Доминируют ожидания диска или блокировок

Итог

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

Производительность 1С определяется самым слабым звеном: медленное ядро CPU, медленный диск, нехватка памяти, плохие настройки кластера или неоптимальный код. Диагностируйте узкое место замерами, устраняйте его, проверяйте результат повторным замером — и только потом переходите к следующему фактору.

Частые вопросы о производительности сервера 1С

Сколько оперативной памяти нужно серверу 1С?

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

Что лучше: один мощный сервер или разнесение 1С и СУБД на разные машины?

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

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

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

Влияет ли антивирус на скорость работы сервера 1С?

Да, заметно: проверка файлов базы, журнала транзакций и каталогов кластера в реальном времени добавляет задержки к каждой операции ввода-вывода. Рекомендуется добавить каталоги данных СУБД, tempdb и служебные папки сервера 1С в исключения антивируса, сохранив проверку остальной системы.

Поможет ли переезд на SSD, если база большая и старая?

Переезд на быстрый SSD почти всегда даёт ощутимый эффект по скорости отклика, особенно если до этого база работала на HDD. Но если узкое место — неоптимальные запросы или блокировки в коде, ускорение будет частичным: сначала стоит проверить дисковые счётчики и ожидания СУБД.

Как понять, что проблема в коде конфигурации, а не в железе?

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