1c-crm-red
Нагрузочный тест с использованием Тест центра. Часто задаваемые вопросы или «как не наступить на грабли»

Нагрузочный тест с использованием Тест центра. Часто задаваемые вопросы или «как не наступить на грабли»

13.02.2023

Вводная

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

Хотим поделиться ситуацией, когда к нам обратился клиент с просьбой помочь с запуском нагрузочного теста. Клиент использовал демо-версию 1С:ERP с встроенной подсистемой «Тест центр» из состава КИП (v8.1c.ru/tekhnologii/tekhnologii-krupnykh-vnedreniy/korporativnyy-instrumentalnyy-paket/), однако не смог быстро воспользоваться — оказалось, что есть подводные камни.

Далее описываем наиболее вероятные проблемы и методы решения при попытке воспользоваться «Тест центром». Надеемся, что статья поможет легче и быстрее применить данную подсистему.

Вероятные проблемы при запуске теста с помощью подсистемы «Тест центр»

1. Не стартует тест

Не стартует тест

Вернее, стартует, …

Не стартует тест

…, но почти сразу завершается.

Не стартует тест

Вроде бы очевидно и есть в документации (its.1c.eu/db/kip#content:24:hdoc:issogl1_3.3.6_агенты_тест-центра), но из нашей практики нередко ошибка именно в этом.

Не стартует тест

Решение

Необходимо стартовать «Режим Агента».

Режим Агента

На каждой машине и под каждым пользователем ОС, из под которого планируется запуск виртуальных пользователей (виртуальных рабочих мест — сокращенно ВРМ), необходимо стартовать «Режим Агента».

Например, если Вам необходимо на некоторой терминальной машине из под одного пользователя ОС — «TC1» наблюдать за ходом теста, а из под двух других пользователей ОС — «TC2» и «TC3» выполнять сам тест, то режим агента необходимо стартовать именно под «TC2» и «TC3», а на «TC1» стартовать не нужно.

Режим Агента

Режим Агента

Процитируем ИТС:

Поскольку виртуальные пользователи могут быть запущены на различных компьютерах, Тест-центр (точнее, управляющее подключение Тест-центра) взаимодействует с виртуальными пользователями не напрямую, а при помощи агента Тест-центра.

Виртуальные пользователи запускаются и завершают работу автоматически агентом Тест-центра по команде управляющего подключения Тест-центра.

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

См. подробнее здесь (its.1c.eu/db/kip#content:24:hdoc:issogl1_3.3.6_агенты_тест-центра).

2. Тест вроде бы стартует, но проходит подозрительно

Режим Агента

При открытии ВРМ, их блокируют модальные окна и потому тест по сути не происходит так, как должен.

Решение

Находим источники блокирующих модальных окон. В нашем случае их было два:

  • общая форма «Предупреждение безопасности» и;
  • общая форма «Подключение интернет-поддержки пользователей».

Нехитрое временное отключение открытия форм при открытии решает проблему.

Решение

3. Тест падает. Порог ошибок

При прогоне одного из тестов столкнулись с ситуацией, когда возникает таймаут ожидания на блокировках. «Тест центр» это считает ошибкой и останавливает процесс.

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

Тест падает

Решение

Увеличить критическое количество ошибок теста, например до 100, а также количество ошибок итерации.

Решение

Решение

4. Увеличили число пользователей. Участились случаи блокировок

При использовании типовых преднастроенных тестов, может возникнуть потребность увеличить число пользователей. Преднастроенный тест «Полный» содержит 30 пользователей, а нам, к примеру, нужно прогнать тест на 50.

Увеличив количество пользователей, работающих с одной ролью, нужно следить за тем, чтобы не пересекались области данных, с которыми они работают.

Например, при использовании сценария «Полный» Вы решите увеличить количество пользователей для роли «Закупка (импорт)».

Сценарий

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

Сценарий

Рекомендация

Для подобных ролей не увеличивать количество пользователей, а сделать это для ролей с более широкими параметрами для отбора данных к обработке.

Сценарий

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

В качестве дополнения. Сбор счетчиков производительности в ОС Windows

Для сбора показателей работы ОС и СУБД MSSQL можно воспользоваться стандартным механизмом для ОС Windows «Системный монитор» (команда perfmon) или консольной утилитой logman.

1. Добавить группу сборщиков данных: интерактивно, через пуск — выполнить — perfmon — и далее добавить интерактивно.

Системный монитор

Системный монитор

Системный монитор

Или через консольную утилиту logman, через пуск — Командная строка в режиме администратора — logman с параметрами.

Пример:

 
logman create counter 1C_counter -f bincirc -c "\Memory(_Total)\Available Mbytes" "\Memory(_Total)\Pages/sec" "\Processor(_Total)\% User Time" "\Processor(_Total)\% Privileged Time" "\Processor(_Total)\% Processor Time" "\System(_Total)\Processor Queue Length" "\Network Interface(*)\Bytes Total/sec" "\PhysicalDisk(*)\Avg. Disk Read Queue Length" "\PhysicalDisk(*)\Avg. Disk Write Queue Length" "\PhysicalDisk(*)\Avg. Disk sec/Read" "\PhysicalDisk(*)\Avg. Disk sec/Write" "\LogicalDisk(*)\Free Megabytes" -si 5 -v mmddhhmm 

2. После добавления необходимо стартовать сбор.

Системный монитор

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

После завершения теста останавливают сбор счетчиков и просматривают сохраненные результаты средствами ОС Windows.

Заключение

В статье показаны вероятные препятствия, с которыми сталкивается пользователь при использовании Тест центра для оценки нагрузки на оборудование и методы обхода препятствий.

Также приведены методы сбора счетчиков производительности ОС Windows.

Анализ собранных счетчиков и дальнейшие рекомендации лежат за пределами данной статьи.

Приложение

Выступление по теме «Тест центр» на RarusTechDay2022

Описание счетчиков производительности ОС Windows для инфраструктуры 1С

Для всех серверов

 
\Memory(_Total)\Available Mbytes
\Memory(_Total)\Pages/sec
\Processor(_Total)\% User Time
\Processor(_Total)\% Privileged Time
\Processor(_Total)\% Processor Time
\System(_Total)\Processor Queue Length
\Network Interface(*)\Bytes Total/sec
\PhysicalDisk(здесь перечислить все диски вместо *)\Avg. Disk Read Queue Length
\PhysicalDisk(здесь перечислить все диски вместо *)\Avg. Disk Write Queue Length
\PhysicalDisk(здесь перечислить все диски вместо *)\Avg. Disk sec/Read
\PhysicalDisk(здесь перечислить все диски вместо *)\Avg. Disk sec/Write
\LogicalDisk(здесь перечислить все диски вместо *)\Free Megabytes

Дополнительные счетчики

Для сервера приложений 1C

 
\Process("1cv8*")\% Processor Time
\Process("1cv8*")\Private Bytes
\Process("1cv8*")\Virtual Bytes
\Process("ragent*")\% Processor Time
\Process("ragent*")\Private Bytes
\Process("ragent*")\Virtual Bytes
\Process("rphost*")\% Processor Time
\Process("rphost*")\Private Bytes
\Process("rphost*")\Virtual Bytes
\Process("rmngr*")\% Processor Time
\Process("rmngr*")\Private Bytes
\Process("rmngr*")\Virtual Bytes

Для сервера терминалов

 
\Process("1cv8*")\% Processor Time
\Process("1cv8*")\Private Bytes
\Process("1cv8*")\Virtual Bytes

Для сервера СУБД

 
\SQLServer:Buffer Manager\Buffer cache hit ratio
\SQLServer:Buffer Manager\Lazy writes/sec
\SQLServer:Buffer Manager\Page life expectancy
\SQLServer:Wait Statistics(*)\Log buffer waits
\SQLServer:Wait Statistics(*)\Log write waits
\SQLServer:Wait Statistics(*)\Lock waits
\SQLServer:Memory Manager\Total Server Memory (KB)

Есть вопросы по статье? Задайте их нам!
info-big
Рассылка «Новости компании»: узнавайте о новых продуктах, услугах и спецпредложениях
Отправляя эту форму, Вы соглашаетесь с Политикой конфиденциальности и даете согласие на обработку персональных данных компанией «1С-Рарус»

Остались вопросы?
Нужна консультация?
Свяжитесь с нами!