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

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

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

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

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

Важно понимать, что «сервер 1С» — это не один компонент, а цепочка: аппаратное обеспечение, операционная система, кластер серверов 1С, СУБД (чаще всего MS SQL Server или PostgreSQL) и сеть между ними. Тестировать нужно каждое звено отдельно и систему в целом, иначе вы рискуете оптимизировать не тот узел.

Ниже — практический маршрут: от базовой диагностики железа и дисковой подсистемы до нагрузочного тестирования и проверки отказоустойчивости. Все действия, которые могут затронуть рабочие данные, выполняйте на тестовом стенде или в копии базы.

Подготовка стенда и фиксация эталона

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

Прежде чем что-то менять, зафиксируйте эталон: сколько времени занимает проведение типового документа, формирование ключевого отчёта, выполнение регламентной операции (например, закрытие месяца). Замеры делайте несколько раз в разное время суток и записывайте результат. Без эталона вы не сможете доказать, что после изменений стало лучше, а не хуже.

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

Проверка аппаратных ресурсов и дисковой подсистемы

Дисковая подсистема — самое частое узкое место серверов 1С, особенно с СУБД. Проверьте задержки дисков: в Windows это счётчики «Среднее время отклика диска» в мониторе производительности, в Linux — утилита iostat (показатель await). Устойчивые задержки в десятки миллисекунд при операциях с базой данных — признак проблемы; для нормальной работы СУБД желательны значения на уровне единиц миллисекунд.

Оцените пропускную способность и IOPS синтетическим тестом (например, DiskSpd или fio) на том разделе, где лежат файлы данных и журналы транзакций. Тестируйте именно тот диск, который будет использоваться в работе, и помните: синтетический тест создаёт реальную нагрузку, поэтому на боевом сервере его запускают только в окно обслуживания.

Проверьте память и процессор под нагрузкой: недостаток ОЗУ проявляется активным свопированием и ростом дисковых операций, а «перегретый» или троттлящий процессор — нестабильным временем выполнения одинаковых операций. Полезно прогнать стресс-тест CPU и памяти (например, штатными средствами ОС или специализированными утилитами) и убедиться в отсутствии ошибок и перегрева.

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

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

Задержки диска с базой данных под нагрузкой
Норма

Единицы миллисекунд, редкие кратковременные пики

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

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

Использование памяти
Норма

Свободная память есть, своп почти не используется

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

Активный свопинг, рост дисковых операций без роста нагрузки на СУБД

Время одинаковой операции в серии замеров
Норма

Разброс результатов небольшой

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

Время «плавает» в разы без видимой причины

Тестирование СУБД

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

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

Для выявления тяжёлых запросов используйте штатные инструменты: в MS SQL Server — Extended Events или Query Store, в PostgreSQL — pg_stat_statements. Запустите сбор на тестовом стенде, выполните типовые операции и посмотрите, какие запросы занимают больше всего времени. Это даст конкретный список для оптимизации вместо тюнинга «вслепую».

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

Диагностика кластера серверов 1С

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

Обратите внимание на количество рабочих процессов и их потребление памяти. Один «раздутый» rphost, съедающий значительную часть ОЗУ, — типичный признак утечки или неоптимальных настроек. Полезно включить технологический журнал на тестовом стенде и собрать события по длительным вызовам: он покажет, какие именно операции платформы занимают время.

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

bash
# Пример: список процессов кластера и их память (Linux)
ps aux | grep -E 'ragent|rmngr|rphost'
# Монитор дисковых задержек (Linux)
iostat -x 5

Нагрузочное тестирование типовыми операциями

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

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

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

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

Проверка отказоустойчивости и резервного копирования

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

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

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

Типичные ошибки и контроль результата

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

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

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

Типичные ошибки
01
Нагрузочный тест на продуктивной базе — блокировки и остановка работы пользователей
02
Отсутствие эталонных замеров — невозможно доказать эффект от изменений
03
Изменение нескольких параметров сразу — непонятно, что именно помогло
04
Тест только железа без сценария реальных операций — нет ответа о допустимом числе пользователей
05
Резервное копирование без тестового восстановления — ложная уверенность в защищённости
Итог

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

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

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

Можно ли тестировать производительность на рабочем сервере без риска?

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

Сколько виртуальных пользователей брать для нагрузочного теста?

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

Что проверять в первую очередь, если 1С «тормозит»?

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

Как понять, что узкое место — сеть, а не сервер?

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

Как часто нужно повторять тестирование сервера?

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

Нужно ли тестировать файловую базу так же, как клиент-серверную?

Базовый принцип тот же, но акценты другие: в файловом варианте критичны скорость диска и сетевого доступа к файлу базы, а также число одновременных пользователей — при его росте файловый режим деградирует быстро. Нагрузочный тест с реалистичным числом сеансов покажет, не пора ли переходить на клиент-серверный вариант.