Администрирование · 9 мин
Как нагрузить сервер 1С: практическое руководство по нагрузочному тестированию
Как нагрузить сервер 1С для проверки производительности: инструменты нагрузочного тестирования, сценарии, метрики, типичные ошибки и проверка результатов.
Нагрузочное тестирование сервера 1С нужно, чтобы заранее понять, выдержит ли инфраструктура реальное количество пользователей, обменов и фоновых заданий. Без такой проверки проблемы всплывают в самый неудобный момент — при закрытии месяца, массовом вводе документов или запуске нового филиала.
Под «нагрузить сервер 1С» обычно понимают две задачи: искусственно создать нагрузку для стресс-теста и проверить, как система ведёт себя под пиковой нагрузкой. В обоих случаях важно действовать контролируемо: на копии базы, с заранее определёнными метриками и критериями остановки.
Основные инструменты — штатный механизм тестирования и исправления, конфигурация «Тест-центр» из комплекта ИТС, сторонние средства вроде JMeter для HTTP-нагрузки, а также скрипты на встроенном языке 1С, параллельно запускаемые с нескольких клиентских машин. Выбор зависит от того, что именно проверяется: кластер серверов, СУБД, канал связи или прикладная логика.
Зачем нагружать сервер и когда это действительно нужно
Нагрузочное тестирование оправдано в нескольких типовых ситуациях. Первая — внедрение или миграция: перед переводом пользователей на новый сервер нужно убедиться, что он справится с расчётным числом сеансов. Вторая — резкий рост нагрузки: подключение новых филиалов, запуск интернет-магазина с обменом заказами, увеличение числа касс.
Третья ситуация — поиск узкого места. Если пользователи жалуются на «тормоза», нагрузочный тест помогает воспроизвести проблему и локализовать её: дисковая подсистема СУБД, нехватка оперативной памяти, блокировки в прикладном коде или перегруженный канал связи.
Наконец, тест нужен после оптимизации. Изменили индексы, переписали запрос, перенесли базу на SSD — корректно сравнить поведение системы под одинаковой нагрузкой «до» и «после», а не полагаться на субъективные ощущения.
Подготовка: копия базы, план теста и критерии результата
Главное правило — нагружать не рабочую базу, а её копию. Даже «безобидный» тест на чтение может повлиять на кэш СУБД и планы запросов, а тест с записью способен создать блокировки и остановить работу пользователей. Разверните копию на тестовом стенде, максимально приближенном по конфигурации к продуктиву.
До запуска определите, что считать успехом. Примеры измеримых критериев: время проведения типового документа не более заданного порога при N одновременных пользователях, отсутствие взаимоблокировок, загрузка CPU сервера СУБД не выше 70–80% в пике. Без таких критериев тест превращается в бесцельное «погонять и посмотреть».
Также зафиксируйте исходное состояние: снимите базовые показатели производительности на простаивающей системе, чтобы было с чем сравнивать. Подготовьте мониторинг заранее — счётчики должны писаться в момент теста, а не настраиваться после.
Инструменты для создания нагрузки
Тест-центр из комплекта ИТС
Конфигурация «Тест-центр» — штатное решение фирмы «1С» для автоматизированного нагрузочного тестирования. Она позволяет записывать сценарии действий пользователей, параметризовать их и воспроизводить одновременно с нескольких рабочих мест, собирая показатели производительности. Это наиболее корректный способ имитировать реальных пользователей толстого и тонкого клиента.
Собственные скрипты и параллельные клиенты
Более простой вариант — написать обработку, которая в цикле создаёт и проводит документы, формирует отчёты или выполняет типовые запросы, и запустить её одновременно на нескольких машинах или в нескольких сеансах. Для управляемых запусков можно использовать пакетный режим запуска 1С с параметрами командной строки.
Сторонние средства
Для нагрузки на веб-сервисы, HTTP-сервисы и опубликованные базы применяют JMeter, k6 или Gatling. Они хорошо подходят для проверки интеграционных точек входа, но не имитируют работу клиентского приложения 1С — для этого нужен Тест-центр или реальные клиенты.
Сравнение вариантов
Полная имитация действий пользователей, сбор метрик; требует подписки ИТС и времени на запись сценариев.
Быстро и гибко, подходит для точечной нагрузки на СУБД; не воспроизводит реальную работу интерфейса.
Удобен для веб-сервисов и HTTP-интеграций; не подходит для тестирования толстого и тонкого клиента.
Пример сценария нагрузки своими силами
Типовой сценарий «грубой» нагрузки выглядит так: на тестовой базе создаётся обработка, которая в цикле формирует документы со случайными данными (номенклатура, количество, контрагент) и проводит их. Параллельно второй поток запускает тяжёлый отчёт за большой период. Такая комбинация имитирует одновременную работу операторов и руководителей.
Запуск выполняется с нескольких клиентских машин или в нескольких сеансах через пакетный режим. Ниже пример команды запуска клиента с выполнением обработки (путь и параметры адаптируйте под свою инфраструктуру).
"C:\Program Files\1cv8\bin\1cv8.exe" ENTERPRISE /S"Server\TestBase" /N"TestUser" /P"pass" /Execute"C:\LoadTest\LoadDoc.epf" /C"RunLoad"Количество параллельных сеансов наращивайте ступенями: сначала 5, затем 10, 20, 50. Так вы увидите не только факт деградации, но и точку, в которой она начинается, — это ценнее, чем просто «при сотне пользователей всё упало».
- 1Разверните копию базы на тестовом стенде и проверьте её работоспособность
- 2Настройте сбор счётчиков производительности на сервере 1С и сервере СУБД
- 3Запустите тест с минимальным числом параллельных сеансов и зафиксируйте базовые метрики
- 4Увеличивайте нагрузку ступенями, фиксируя время отклика и ошибки на каждом шаге
- 5Определите точку деградации, остановите тест и проанализируйте журналы и счётчики
Что измерять во время теста
На стороне сервера 1С контролируйте загрузку процессов rphost, количество сеансов, использование памяти и очередь в кластере. На сервере СУБД смотрите загрузку CPU, очередь дисков, число блокировок и ожиданий, размер и рост журнала транзакций.
Прикладные метрики не менее важны: время проведения документа, время формирования ключевых отчётов, число ошибок и таймаутов на шаг нагрузки. Именно эти цифры отвечают на вопрос «выдержит ли сервер», а не абстрактная загрузка процессора.
Как проверить результат
Растёт плавно и остаётся в пределах заданного порога
Резкий скачок времени отклика при добавлении небольшого числа сеансов
Единичные кратковременные блокировки
Растущие очереди ожиданий и повторяющиеся взаимоблокировки
Стабилизируется после выхода на рабочую нагрузку
Непрерывный рост потребления памяти без стабилизации
Типичные ошибки и ограничения
Самая частая ошибка — тестировать на базе, которая в разы меньше рабочей. Производительность запросов и планов выполнения сильно зависит от объёма данных, поэтому выводы с пустой базы не переносятся на продуктивную.
Вторая ошибка — нагружать только один сценарий. Реальная нагрузка смешанная: ввод документов, отчёты, обмены, фоновые задания. Тестируйте комбинации, иначе рискуете не заметить конфликт фонового задания с пользовательскими сеансами.
Как интерпретировать результаты и что делать дальше
Если точка деградации находится выше планируемой нагрузки с запасом, инфраструктура готова. Если деградация начинается раньше — анализируйте узкое место: очередь дисков указывает на подсистему хранения, рост ожиданий блокировок — на прикладной код, высокий CPU при умеренной нагрузке — на неоптимальные запросы или нехватку ресурсов.
После устранения проблемы повторите тот же тест с теми же ступенями нагрузки. Сопоставимость условий — единственный способ объективно оценить эффект оптимизации.
Что важно запомнить
Нагружайте только копию базы, наращивайте нагрузку ступенями, заранее определите измеримые критерии успеха и собирайте счётчики на сервере 1С и СУБД. Ценность теста — не в самом факте нагрузки, а в точке деградации и данных для её устранения.
Частые вопросы
Можно ли нагружать продуктивный сервер 1С?
Технически можно, но делать это стоит только в нерабочее время, с предупреждением пользователей и свежей резервной копией. Даже тест на чтение влияет на кэш и планы запросов СУБД, а тест с записью может вызвать блокировки и переполнение журнала транзакций.
Чем Тест-центр лучше собственных скриптов?
Тест-центр воспроизводит реальные действия пользователей в интерфейсе и автоматически собирает показатели производительности, включая разбор по операциям. Собственные скрипты проще в запуске, но имитируют только серверную часть работы и требуют самостоятельной организации мониторинга.
Сколько параллельных сеансов считать достаточным для теста?
Ориентируйтесь на планируемую пиковую нагрузку с запасом 20–30%. Если в компании работает 80 пользователей, тестируйте до 100–110 одновременных сеансов. Абстрактные «тысячи потоков» без привязки к реальной численности смысла не имеют.
Что делать, если тест показал деградацию раньше ожидания?
Сначала определите узкое место по счётчикам: диски, память, CPU или блокировки. Чаще всего причина в прикладном коде и неоптимальных запросах, а не в «слабом железе». Устраните конкретную проблему и повторите тест в тех же условиях.
Нужна ли для теста лицензия 1С?
Да, сеансы тестовых клиентов занимают лицензии так же, как обычные пользователи. При планировании теста учитывайте, что на стенде должно быть достаточно клиентских лицензий, иначе нагрузку нужного уровня создать не получится.