Citrix Server Test Kit


Введение

Citrix Server Test Kit (CSTK) - это набор инструментов, которые могут быть использованы администраторами для настройки и проверки разнообразных режимов пользовательской нагрузки на сервер.

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

Состав CSTK

Кроме того, в состав CSTK входит документация в формате PDF и readme.txt

Установка CSTK

Системные требования

Для установки Citrix Server Test Kit вам необходимы:

Сервер

CSTK можно установить на следующие платформы:

Клиенты

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

Поддерживаются все версии клиентов ICA. В зависимости от типа аппаратуры устройства и типа клиента вы можете запустить несколько сеансов ICA на одном устройстве клиента. При адекватном потреблении CPU, один клиент ICA WIN32 обычно требует 8Мб RAM плюс по 5Мб на каждый сеанс ICA.

Прикладные программы

CSTK содержит простые скрипты, запускающие стандартные программы Windows - WordPad, Calculator и Internet Explorer. Помимо них есть скрипты для нижеперечисленных приложений. Эти приложения должны быть инсталлированы на сервере.

Вы также можете написать собственные скрипты.

Если требуемое приложение ((Internet Explorer, Microsoft Office 97, Microsoft Office 2000) не установлено на сервере, перед использованием CSTK вы должны его инсталлировать.

Установка CSTK

  1. С командной строки введите change user /install
  2. Если вы загрузили файл с веб-сайта Citrix, запустите файл CSTK21.exe. Если вы инсталлируете с CD-ROM, то запустите setup.exe из каталога CSTK
  3. Выберите каталог для установки
  4. По завершении установки введите с командной строки change user /execute

Компоненты CSTK

CSTK Console
Консоль CSTK служит для централизованной настройки и запуска сриптов. Каждый тест состоит из одной или нескольких групп пользователей. Группа пользователей - это набор пользователей, сконфигурированных для запуска определенного набора прикладных скриптов.

Группы пользователей
Каждая группа имеет три параметра: пользователи, тип пользователя и прикладные скрипты.


CSTK CLient
Клиент CSTK при инсталляции размещается в группе All Users. Он не выполняется на локальном компьютере клиента; он выполняется в каждом сеансе ICA.
При входе пользователя немедленно запускается клиент CSTK и определяет, запущен ли тест с консоли CSTK. Если нет, программа клиента ожидает запуска теста с консоли CSTK. Если тест запущен, программа проверяет, является ли пользователь частью теста. Если нет, CSTK завершает работу с выводом соответствующего сообщения. Если пользователь являетсячастью теста, клиент выполняет следующее:
  1. Преверяет пользователя (с консоли или в сеансе ICA)
  2. Инициализирует приложение для запуска его из скрипта.
  3. Ждет предопределенное количество времени до запуска первого скрипта
    • Время ожидания зависит от индекса пользователя
    • Эта задержка одинакова для всех тестов
  4. Запускает скрипты на исполнение

Клиент CSTK выполняет скрипты, ассоциированные с группой пользователей, в предопределенном порядке. Предопределенные скрипты имеют более высокий приоритет над заказными скриптами. Выбранный набор скриптов выполняется в указанном порядке пока не будут выполнены 50 скриптов. Клиент CSTK выводит сообщение о завершении теста.

Client Launcher
CSTK содержит утилиту для упрощения создания и запуска сеансов ICA через клиента Win32 Program Neighborhood. Этот исполнитель не обязателен. Однако, он может быть полезен при запуске сразу нескольких сеансов с одной машины клиента.
Подробнее см. "Использование Client Launcher

Использование CSTK

Подготовка тестовой среды

  1. Изолируйте сервер и устройства клиентов в отдельную сеть
  2. Закройе все сеансы, не выполняющие тесты
  3. Закройте все ненужные приложения, выполняющиеся на сервере
  4. Убедитесь, что для приложений сделаны необходимые настройки для работы в многопользовательской среде (см. "Установка приложений")
  5. Увеличьте размер файла подкачки сервера и лимит реестра, если они уже не достаточно велики.

Создание тестовой конфигурации

Перед запуском теста необходимо с помощью консоли CSTK создать тестовую конфигурацию. Тестовая конфигурация состоит из одной или нескольких групп пользователей

Для создания гуппы пользователей:

  1. Запустите консоль CSTK на сервере Citrix
  2. В меню user Group щелкните Add. Появится диалог "User Group Type".
  3. Выберите тип группы и щелкните OK.
  4. В окне User Group Configuration укажите набор пользователей для этой группы, введия базовое имя и число индексов. Если пользователей Windows NT с такими именами еще не создано, щелкните кнопку Create Users.
    Внимание.
    Для работы Microsoft Office с CSTK необходимо сделать некоторые изменения в реестре. Поэтому крайне нежелательно использовать CSTK в рабочей среде.
  5. Выберите скрипты имитации работы приложений и щелкните OK.
Замечание.
Вы можете также использовать пользователей, созданных системными утилитами Windows NT. Пользователи могут быть локальными, доменными или пользователями Active Directory. Тип учетной записи слабо влияет на результаты CSTK.

Выбраные пользователи отображаются в главном окне консоли. В строке состояния появляется сообщение "Waiting to Start", это означает, что тест еще не запущен. Повторите вышеперечисленные шаги для создания дополнительных групп пользователей.

Выбор скриптов

Выбор скриптов зависит от вашей среды и сервера. Например, если тестируемые пользователи - бухгалетеры и их помощники, то и тестовую конфигурацию следует подобрать соответствующую.

Запуск теста масштабируемости

Масштабируемость включает анализ разных конфигураций. В этом тесте измеряется производительность системы при раличной нагрузке. Нагрузка постепенно увеличивается вплоть до полного исчерпания ресурсов системы. Для измерения производительности используется Perfmon.exe.

Перед запуском теста в главном окне консоли CSTK должна присутствовать хотя бы одна группа пользователей.

Для запуска теста:

  1. Из меню Test консоли CSTK выберите Start. Автоматически запустится Performance Monitor с уже загруженными объектами.
  2. Сделайте минимальное количество соединений ICA с сервером Citrix. Если вы пустите слишком много пользователей, может возникнуть ошибка вследствие нехватки системных ресурсов. Регистрируйтесь под именами, перечисленными в группах тестовой конфигурации.
    Важно: Не запускайте несколько сеансов под одним и тем же пользователем.
  3. Анализируйте данные в Performance Monitor для идентификации потенциального узкого места сервера.
    Замечания: Замечание. Операции скриптов иногда зависят от времени. При высоком использовании ресурсов сервера скрипт может рассинхронизироваться. Например, скрипт посылает нажатия клавиш в приложение, которое не готово их принять. Это может вызвать разнообразные ошибки (например, сообщение об ошибке от движка скрипта). В этом случае необходимо перезапустить сеанс клиента CSTK.
  4. Для остановки теста из меню Test консоли CSTK выберите Stop. Все клиенты прекратят выполнение скриптов в течении нескольких минут. Кроме того, если тест автоматически не останавливается, каждый клиент останавливает выполнение скриптов после 50 циклов. Для ручной остановки клиента CSTK в сеансе клиента максимизируйте окно клиента и нажмите CTRL+Break.

Сохранение конфигурации

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

  1. Из меню File консоли CSTK выберите Save As... и введите имя файла вашей конфигурации
  2. Затем, после модернизации сервера, из меню File выберите Open

Использование Client Launcher

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

  1. На устройстве клиента Windows 95, Windows 98, Windows ME, Windows NT 4.0 или Windows 2000 с инсталлированным Program Neighborhood запустите Launcher.Exe.
  2. Убедитесь, что указан верный путь к исполняемому файлу клиента (Wfcrun32.exe).
  3. Введие имя и индекс
    Если вы еще не ввели клиентов (в виде basename1 ... basenameN), щелкните Create Entries. Пользователи будут добавлены в базу данных соединений (Appsrv.Ini).
  4. Щелкните кнопку Advanced Delay и убедитесь, что между запусками сеансов установлена достаточная задержка.
  5. Щелкните кнопку Run для запуска сеансов

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

Помимо стандартных скриптов, включенных в комплект Citrix Server Test Kit, вы можете создавать собственные скрипты.

Любая программа, которая может работать в WinFrame или MetaFrame, может быть использована в скриптах. Вы можете использовать любой скриптовый язык (например, WinBatch или Microsoft Windows Script), или любое исполняемое приложение или пакетные файлы (включая cmd.exe)

Хотя CSTK использует английский интерфейс, написанные вами скрипты могут поддерживать любые языки.

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

Чтобы добавить свой скрипт:

  1. Запустите консоль CSTK
  2. В меню Tools щелкните Add Application Script.
  3. В диалоговом окне введите описательное название скрипта в поле Application Name. В поле Script Name укажите путь к исполняемому файлу. Необязательные аргумены введите в поле Arguments.
  4. Если скрипт запускает одновременно только одно приложение, выберите Normal User. Если скрипт запускает несколько приложений одновременно, выберите Power User. Скрипт, сконфигурированный для обычного пользователя, будет виден в списке доступных скриптов только для обычных пользователей, а для активных (power) - нет. То же самое касается скриптов для активных пользователей.
  5. Щелкните OK

Для удаления скрипта выберите в меню Tools консоли CSTK команду "Delete Application Script"
Вы можете удалить только свои скрипты. Скрипты из комплекта CSTK удалить нельзя.

Пример собственного скрипта

Создание скрипта

Используя notepad или любой текстовый редактор создайте файл dirlist.cmd следующего содержимого:

  cd \
  dir /s

Добавление скрипта к набору скриптов
Запустите консоль CSTK, выберите в меню Tools команду Add Application Script, В поле Application Name введите "Directory". Щелкните Browse и выберите из списка файл dirlist.cmd.

Поскольку dirlist.cmd запускает одновременно только одно приложение, выберите Normal user и щелкните OK

Создание группы пользователей
В меню User Group выберите Add или щелкните "+" на панели иконок. В диалоговом окне "User Group Type" используйте поля User Basename и Number of Users для задания имен пользователей. В нашем примере мы создадим двух пользователей TestUsr1 и TestUsr2. В поле User Basename введите "TestUsr", а вполе Number of Users введите 2. Щелкните Yes.
Теперь в списке Available Scripts выберите "Directory" и щелкните Add для добавления скрипта в список Configured Scripts.
Щелкните OK.

Запуск тестового скрипта на сервере
Из меню Test выберите Start Test или щелкните на икноку с молнией.

Запустите тестовые сеансы
После запуска теста поле Status показывает "0 users connected", т.е. пользователи еще не подключены. Зарегистрируйтесь на сервере Citrix под именами TestUsr1 или TestUsr2. Пароль не нужен.
По мере подключения пользователей в поле Status будет увеличиваться число пользователей. Когда на клиенте запустится скрипт, Status покажет "Test in progress". По завершении работы скрипта он будет запущен заново.
Если включена журнализация, то в журнал будут записываться временные метки и число итераций выполнения dirlist.cmd. Для изменения размещения файла журнала воспользуйтесь меню Options.
Для остановки теста щелкните Stop на консоли CSTK.

Анализ результатов CSTK

Мониторинг производительности

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

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

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

Хотя 100%-е использование ресурся является ясным предупреждением,это не обязательно является достаточной причиной для узкого места.

Термины и концепции

Далее в этой статье будут использованы следующие термины:

Термин Значение
Virtual Memory Manager (VM)
(Менеджер виртуальной памяти)
Управляет распределением, резервированием, подкачкой памяти. VM перемещает страницы кода и данных между диском и памятью в процессе, называеом подкачкой (paging).
Page Fault
(подкачка)
Происходит, когда процесс запроашивает страницу кода или данных, отсутствующую в рабочем наборе
Hard page faults
(аппаратная подкачка)
Происходит если запрошенная страница должна быть взята с диска
Soft page faults
(программная подкачка)
Происходит когда запрашиваемая страница находится где-то в физической памяти
pagefile.sys Часть дискового протранства, используемая операционной системой для резервирования физической памяти. Если процесс запрашивает больше физической памяти чем доступно, VM освобождает часть памяти, записывая на диск страницы памяти, к которым реже всего производилось обащение. По мере роста запросов выделения памяти VM увеличивает размер файла подкачки до тех пор, пока не накончится свободное место на диске или не будет достигнут лимит размера файла подкачки.
Working set
(рабочий набор)
Физическая память, предоставленная процессу

Средний рабочий набор для MSOffice:

Запись системной конфигурации

Для каждой итерации теста запишите параметры:

Тип процессора

Во время теста запишите следующие параметры с помощью Performance Monitor:

Определение узких мест

Узкое место, связанное с CPU, легко заметить. Высокий уровень процессорного времени со средней длиной очереди больше 2 означает перегрузку CPU.

Способ устранения узкого места

Память

Память является одним из компонентов, которых легко нарастить. Запишите следующие параметры:

Определение узких мест

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

Для измерения аппаратной подкачки смотрите параметр Page Reads/sec (частота чтения с диска). Другим индикатором нехватки памяти является Logical Disk: %Disk Time. По мере роста подкачки страницы кода и данных пишутся на диск (в Pagefile.sys) для освобождения кадров физической памяти. Освободившиеся кадры занимаются страницами, взятыми с диска. Поэтому с ростом подкачки наблюдается высокая активность жесткого диска. Активность выше 40% требует разбирательства.

Способ устранения узкого места

Единственный способ - добавьте больше памяти

Жесткий диск

Жесткие диски являются самыми медленными компонентами системы. Запишите следующие параметры:

Определение узких мест

Часто определение причины узкого места - диск или память - затруднено. При нехватке памяти повышается активность диска из-за процесса подкачки в виртуальную память. В этом случае узким местом является память, а не диск. Узким местом является диск, если % использования диска превышает 40%, а частота аппаратной подкачки невысока (менее 5 раз в секунду).

Способ устранения узкого места

Купите более скоростной жесткий диск или разделите файлы по нескольким дискам. Есть много способов повысить производительность жестких дисков. Если ваш диск использует интерфейс IDE, модернизируйте его на SCSI; если он 7200 RPM, моденизируйте на 10000 RPM.

Сетевой интерфейс

Для записи производительности сети инсталлируйте Network Agent Monitor как сеетвую службу.

запишите следующие параметры:

Определение узких мест

Узкое место содержится в сетевом интерфейсе, если параметр Bytes Total/sec приближается к скорости сетевой карты. Для 10Mb сетевой карты узкое место возникает при скорости около 1 Mб/с. Это сильно зависит от вашей сети.

Способ устранения узкого места

Если сеть снижает общую производительность, то есть несколько простых способов съэкономить сетевой траффик. Одним из способов является удаление неиспользуемых сетевых протоколов. Например, NetBIOS потребляет боьше траффика, чем TCP/IP или IPX.

Другие параметры

Остальные параметры, которые помогут измерить производительность системы:

Поиск узких мест с помощью Performance Monitor

Однопроцессорная система с 64 MB RAM

Анализ

Время ответа системы приемлимо в холостом режиме. При росте нагрузки с кратностью 5, замечено значительное снижение производительности. На графике ясно показан рост подкачки, особенно 27.5 аппаратных подкачек в секунду, что слишком много. Из-а постоянной подкачки активность диска выше 40%. Использование CPU в пределах нормы.

Заключение

В этом примере нехватка памяти снижает общую производительность и является узким местом. Вам необъодим файл подкачки размером 192MB для избежания ошибок виртуальной памяти.
В следующем примере добавлена память и повторно запущен тест

Однопроцессорная система с 128 RAM

Анализ

Время ответа системы и ее работоспособность показыват, что система достаточно стабильна даже при предыдущей нагрузке - использование CPU всего 20%. Однако, добавление еще десятка пользователей существенно снижает время отклика. Сильная подкачка (170.61 в сек.) из-за нехватки памяти вызывает рост активности жесткого диска выше 60%. Вам необходим файл подкачки около 256Мб для избежания ошибок виртуальной памяти.

Заключение

В этом примере с ростом числа пользователей память все еще остается узким местом. В следующем примере мы добавим память и повторим тест.

Однопроцессорная система с 256 MB RAM

Анализ

Система весьма стабильна и обеспечивает хорошую производительность для пользователей. Использование CPU около 57%. Подкачка в пределах нормы, частота аппарптной подкачки около 0.21/с. При добавлении пользователей использование процессора поднимается до 87.92%, после чего время отклика становится крайне большим и падает производительность. Средняя длина очереди 65.45. При увеличении нагрузки требуется файл подкаки 385 Мб.

Заключение

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

Двухпроцессорная система с 256 Мб RAM

Анализ

В однопроцессорной системе ограничением является процессор, а не память. В этом примере ресурс, ограничивавший нас ранее, увеличен - добавлен второй процессор. Теперь система поддерживает то же число пользователей, что и ранее, но со средней подкачкой 212.9/с и использованием процссора 64.89% Работоспособность в такой конфигурации приемлимая. Однако, при увеличении количества пользователей испоьзование процессора и подкачки возрасло до максимума. Это стало заметным с ростом времени отклика системы. Использование процессора возросло до 80%, длина очереди - до 18. Подкачка 8/с. По мере роста потребовался файл подкачки 385Мб.

Заключение

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

Четырехпроцессорная система с 1 Гб RAM

Анализ

В предыдущем примере с 2 процессорами система достигла предела использования процессора. В этом сценарии система может поддерживать больше пользователей, чем в предыдущих примерах. Использование процессора не превышает 40, подкачка заметно возрасла до 280/с. Вход в систему занимает некоторое время, но в пределах допустимого.

С ростом числа пользователей заметна разница в поведении системы. Загрузка всех процессоров поднимается до 85%, средняя длина очереди - 17. При дальнейшем росте числа пользователей производительность становится неприемлимой.

Заключение

Мощность системы ограничивается только процессором; память вообще не рассматривается. Для всех пользователей достаточно файла подкачки 2000 Мб.

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

Также о специфике многопроцессорных систем в среде Citrix MetaFrame читайте статью "Замечания о масштабировании MetaFrame"


Возврат