Рубрики

Внесистемный способ запуска большого количества виртуальных пользователей для Тест-Центра вер. 1.2

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

Проверку производительности конфигураций 1С, разрабатываемых для одновременной работы нескольких десятков пользователей, не следует ограничивать только тестированием однопользовательского режима. При одновременной работе свыше 30 пользователей с высокой вероятностью можно утверждать, что появится конкуренция доступа к информационным ресурсам. Процессы начинают становиться в очередь, ожидая освобождения занятых ресурсов. При определенных условиях могут начать возникать ошибки, связанные либо с превышением допустимого времени ожидания процессом освобождения ресурса (таймаут ожидания), либо с их взаимным блокированием друг друга (взаимоблокировка, deadlock). Частое возникновение этих ошибок сильно мешает пользователям, и, строго говоря, является показателем неудовлетворительной производительности системы. Условия для возникновения подобных ошибок в большинстве случаев закладываются на этапах проектирования и кодирования системы. При однопользовательском тестировании на компьютере разработчика обнаружить их просто невозможно, а организовать многопользовательское тестирование без специальных инструментов – задача не из легких.

Тест-Центр вер. 1.2, входящий в состав продукта 1С:Корпоративный инструментальный пакет 8 – это доступное в освоении и удобное средство автоматизированной проверки производительности конфигураций 1С. Этот инструмент позволяет проводить многопользовательское тестирование на любом количестве пользователей силами одного человека.

Однако сам по себе запуск большого количества пользователей представляет собой достаточно трудоемкий процесс. Количество виртуальных пользователей, которых вообще можно запустить на одном компьютере, ограничено и в первую очередь объемом доступной оперативной памяти. Для платформы 1С:8.1 оно вычисляется из расчета примерно 100-150 МБ на одну пользовательскую сессию в неинтерактивном режиме работы, если нет намеренного получения или кэширования больших объемов данных в сессиях. Количество пользователей, которое можно запустить локально из одной Windows-сессии, может быть меньше, оно ограничено возможностями сервера и настройками Windows. На серверах различной мощности это количество варьировалось от 75 до 240 (максимальное число виртуальных пользователей при этом составляло от 80 до 650). Тест-центр вер. 1.2 содержит средства автоматизированного старта виртуальных пользователей не только локально, но и на удаленных компьютерах. В силу особенностей реализации этого механизма запускать клиентские приложения на удаленном компьютере можно порциями, но не более чем по 15 за один раз. Новую порцию можно стартовать только после полного запуска предыдущей. В результате запуск даже 500 пользователей становится довольно длительным процессом, требующим постоянных действий оператора.

Следует отметить, что в Тест-Центре вер.2 проблема запуска виртуальных пользователей решена штатными средствами по-другому, и там такой проблемы уже не стоит. Однако на текущий момент в Тест-Центр вер.2 работает только с управляемыми формами на платформе 8.2, а распространенность этих форм в данный момент не слишком высока, хотя со временем это, конечно же, изменится.

В ходе тестирования 1С:Управление производственным предприятие на 1000 пользователей, нам удалось найти удобный внесистемный способ запуска виртуальных пользователей, существенно уменьшивший нагрузку на оператора и суммарное время запуска.

Суть способа в следующем:

  • Для сервера, предназначенного для генерации нагрузки, определяется максимально возможное число запускаемых на нем клиентских сессий исходя из объема его оперативной памяти (предполагается, что уровень процессоров в целом достаточен).
  • К этому серверу производится подключение через RDP или с консоли.
  • Создается пустая база 1С, из которой запускается обработка, с определенным интервалом вызывающая ярлык, запускающий клиентское приложение с определенными параметрами.
  • Если интервал запуска слишком мал, клиентские приложения не будут успевать запускаться, и по достижении некоего максимума их очереди, начнут выдавать сообщения об ошибках. В этом случае интервал запуска следует увеличить. По нашему опыту, их можно стартовать (конфигурация УПП 1.2.19.1 + Тест-Центр 1.2) с интервалом от 3 секунд на сервере IBM X3950M2 (4 процессора по 4 ядра) до 5 секунд на блейд-сервере IBM HS 21 (2 процессора по 4 ядра) и 7-8 секунд на серверах меньшей мощности. Это уже существенно быстрее запуска средствами Тест-центра.
  • Максимальное число запусков из одного подключения определяется экспериментально исходя из соображений того, что пользовательская сессия должна оставаться «живой»: позволять без замедлений переключаться между открытыми в ней окнами, запускать диспетчер программ и т.п.
  • Если максимальное число запусков из одного подключения меньше максимально возможного для данного сервера, на сервере создается еще ода пользовательская учетная запись с достаточными правами, под ней производится второе подключение через RDP или с консоли и все следующие шаги повторяются.
  • Так нужным количеством учетных записей Windows достигается запуск максимально возможного для данного сервера числа клиентских приложений 1С.
  • Когда учетные записи созданы в нужном количестве, можно попробовать запускать старт обработки по запуску клиентских приложений из нескольких RDP-сессий на одном сервере одновременно. Это еще более ускорит работу. По нашему опыту, эту обработку можно запускать одновременно в четырех RDP-сессиях на одном сервере IBM X3950M2, если интервал между запусками приложений составляет 5 секунд.

Текст обработки запуска приложений на встроенном языке платформы 1С:8.1:

Процедура КнопкаВыполнитьНажатие(Кнопка)
	for ch = 1 to numm do	// numm – сколько приложений запустить, задается на форме
		RunApp("C:\1c\1c.lnk" );	// C:\1c\1c.lnk – это ярлык для запуска 1С, см.ниже
		a = CurrentDate();
		While CurrentDate() < a+5 do	//5 это интервал в сек. между запусками приложений
			d=3;	//пустышка
		EndDo;
	enddo; 
КонецПроцедуры
	

Ярлык C:\1c\1c.lnk для 64-разрядной Windows содержит следующую строку:

"C:\Program Files (x86)\1cv81\bin\1cv8.exe" enterprise /S ИмяСервера\ИмяБазы /N ИмяПольз1С /C VWP

ИмяСервера – имя сервера приложений 1С

ИмяБазы – имя базы, к которой подключен Тест-Центр и производительность в которой тестируем

ИмяПольз1С – имя пользователя, под которым можно войти в тестируемую базу с достаточными правами (пользователь без пароля, лучше сделать его латинскими буквами и без пробелов в имени, например, «1s»).

VWP – параметр, запускающий обработку « виртуальное рабочее место» после старта, и таким образом осуществляющий преобразование простого запуска клиентского приложения в подключение виртуального пользователя, находящегося под управлением Тест-Центра.


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

В ходе тестирования 1С на 1000 пользователей, используя приведенные выше методики, мы существенно снизили свои трудозатраты на запуск виртуальных пользователей и сэкономили значительный объем времени. Это позволило уложиться в отведенные сроки использования предоставленного нам оборудования и успешно выполнить всю запланированную программу испытаний.

 
ГК Трейд Софт, Москва
Автор: Филиппов Е.В.
Дата публикации: 10.01.2010 г.
(0.030 c.)

Мы Вам перезвоним

*
*
 

Я даю Согласие на обработку персональных данных в соответствии с Политикой Конфиденциальности