Быстродействие СЭД: разбираем методику оценки
Современные системы управления документооборотом и бизнес-процессами должны отвечать критически важному требованию - иметь адекватное быстродействие. Тем не менее, на рынке нет до сих пор сколько-нибудь устоявшихся методик расчета этого показателя. В свете этого актуально рассмотреть пример составления такой методики и реальные оценки проведенного по ней тестирования.
В системах электронного документооборота и управления бизнес-процессами быстродействие является одним из важнейших потребительских свойств системы.
При этом ожидания пользователя достаточно высоки – система не должна выглядеть существенно медленнее других используемых менеджером приложений – Microsoft Office, Internet Explorer, интернет-почта. Реальное быстродействие системы при этом действует как ограничение спроса на нее, в отличие от функциональности. Конкретная функция может кому-то и не требоваться, не быть критичной, и ее отсутствие снизит спрос на систему только частично, в то время как недостаточное быстродействие может быстро вытеснить продукт с рынка.
Таким образом, управление быстродействием системы становится ключевой частью системы управления качеством ее разработки.
Критичность быстродействия
Осенью 2009 года компания DocsVision провела исследование важности потребительских свойств системы, опросив своих клиентов и партнеров. В анкете каждому участнику предлагалось оценить несколько свойств СЭД как "критичные", "важные" или "неважные".
Оценка важности потребительских свойств системы
Качество | Критично | Важно | Неважно |
Быстродействие | 73% | 27% | 0% |
Удобный, простой и понятный интерфейс | 55% | 45% | 0% |
Широкая функциональность | 28% | 60% | 12% |
DocsVision, 2009
По результатам исследования выяснилось, что быстродействие является по-настоящему критичным, в то время как функциональность – больше важным свойством. В этом контексте актуальность приобретает оценка скорости работы, для которой до сих пор нет стандартных методик расчетов. В этой связи интересно рассмотреть схему, предложенную компанией DocsVision.
Создание методологии
До версии 4.5 в разработке DocsVision требования по быстродействию не выделялись среди других. При формировании спецификаций на новую версию руководством компании было принято решение выделить управление быстродействием в отдельную ключевую задачу. Для этого необходимо было сделать три важных шага: определить набор сценариев пользователя, по которым измеряется быстродействие системы, задать и описать модель пользователя и эталонную вычислительную инфраструктуру, на которой производится измерение, а также построить методику и технологию измерения быстродействия в процессе тестирования системы.
В плане конкретизации целей потребовалось во-первых, провести измерение быстродействия текущей версии, определив точку отсчета, во-вторых, задать целевые значения метрик быстродействия разрабатываемой версии, и, в-третьих, разработать новую версию системы, добившись выполнения целевых значений этих показателей.
При переходе на уровень архитектуры системы увеличение скорости работы как потребительского свойства превращается в более широкую задачу повышения производительности комплекса ПО и АО и коммуникаций между ними. При этом важнейшим вопросом является выявление факторов производительности в архитектуре ПО, т.е. определение наиболее "тормозящих" компонент системы. Это необходимо, в частности, для того, чтобы перейти от конечных требований по обеспечению быстродействия на пользовательском уровне к метрикам производительности, указываемых в заданиях на разработку отдельных модулей.
Требования к быстродействию
Описание требований по обеспечению быстродействия с точки зрения пользователя выглядит достаточно простым – речь идет о времени, которое будет занимать выполнение той или иной операции в системе. Если для некоторых операций (например, резервное копирование базы данных) допустимым является время до нескольких десятков минут, то в наиболее востребованных процедурах критически важными могут оказаться и десятые доли секунды. Поэтому для управления быстродействием требования по времени реакции надо "спроецировать" на набор базовых сценариев работы системы, чтобы получить адекватные и свободные от погрешностей комбинаторики результаты во всех возможных сценариях.
Примеры сценариев работы пользователя (на уровне платформы):
- Запуск пользовательского интерфейса (навигатора) системы;
- Открытие встроенных справочников системы;
- Атрибутивный поиск;
- Операции экспорта представлений и журналов;
- Создание карточки со 100 свойствами;
- Добавление, сохранение и удаление файлов (размером от 100Кб до 10Мб);
- Отображение папок по дайджесту и представлению (содержащих от 10 до 70 000 строк)
Всего было выделено около 30 сценариев.
Они должны включать наиболее значимые с потребительской точки зрения функции системы. При решении задачи управления быстродействием на данном этапе исследовались только операционные сценарии, затрагивающие всех или почти всех пользователей, то есть наиболее критичные с точки зрения потребительских свойств системы.
Помимо сценариев пользователя, исполняемых платформой на интерфейсном уровне, подсистема управления бизнес-процессами (WorkFlow) выделялась как часть архитектуры, быстродействие которой также влияет на сценарии пользователя в интерфейсе приложения. Для измерений быстродействия WorkFlow использовался единственный сценарий - исполнение системой эталонного бизнес-процесса.
Поскольку DocsVision является платформой для задач СЭДО и управления бизнес-процессами, то пользователь часто работает не с самой платформой, а с приложением, построенным на ее базе. Поэтому правильно разделить сценарии между платформой и приложением и выбрать достаточно типичный продукт. Компания использовала для моделирования приложение DocsVision "Административное делопроизводство". Задача управления быстродействием решалась одновременно и для платформы и для приложения, при этом оптимизации подвергся код как того, так и другого.
Исследование литературы по требованиям к быстродействию офисных приложений показало, что для таких систем приемлемым считается быстродействие сценариев на уровне 3 секунд, и хорошим - на уровне 1,5 секунд. Эти значения использовались в качестве целей при оптимизации кодов платформы и приложения.
Задачи измерения быстродействия
Факторы, влияющие на быстродействие системы, естественным образом разделяются на две группы. Первая группа - факторы инфраструктуры (архитектура и качества кода программного обеспечения системы, вычислительная инфраструктура серверов, рабочих станций и сетей передачи данных). Вторая группа - факторы нагрузки в конкретном внедрении (количество одновременно работающих пользователей, частота применения ими различных сценариев).
Цели тестирования
Тестирование производительности* | Оценка влияния инфраструктуры (аппаратного и программного обеспечения) на быстродействие системы. Оценка максимально возможной скорости отклика системы в типовых сценариях, и соответствия этих показателей предъявляемым требованиям "в идеальных условиях". |
Нагрузочное тестирование | Оценка соответствия конкретной аппаратной и программной инфраструктуры прогнозируемой нагрузке. Оценка влияния нагрузки на быстродействие в "в реальных условиях". |
*Измерение скорости выполнения основных операций в системе в некоторых идеальных условиях
Источник: Docsvision, 2010
Поэтому мы выделяем две задачи управления быстродействием - тестирование производительности и нагрузочное тестирование.
Тестирование производительности
Говоря об оценке влияния инфраструктурных показателей, в первую очередь выделяются те из них, которые оказывают наибольшее влияние на производительность решения. В случае с клиент-серверной архитектурой (система DocsVision) речь идет о связи уровней базы данных, сервера приложений и клиента. При этом сервера могут быть расположены как на единственном компьютере, так и на нескольких машинах (с целью распределения нагрузки и упрощения масштабирования).
Изменение показателей для определения их влияния на производительность
Специально для теста искусственно занижалась пропускная способность сетевого канала между клиентом и сервером приложений (с этой целью использовалась утилита NetLimiter) в пограничных диапазонах 128 кб/с/512 кб/с/1 Мб/с. Кроме того, можно варьировать и иные аппаратные составляющие: объем оперативной памяти и частоту процессора на клиентском компьютере; тип дискового массива на сервере базы данных; и т.д.
Очевидно, что с точки зрения производительности играют роль характеристики инфраструктуры на всех уровнях системы: АО и ПО клиентского компьютера, характеристики канала связи между клиентом и сервером приложений, АО и ПО сервера приложений, его настройки, характеристики канала связи между сервером приложений и базой данных, АО и ПО сервера баз данных, его настройки, степень наполненности и характеристики самой базы данных.
Изменяя каждый из этих показателей и выполняя повторные измерения метрик, можно оценить его влияние и на производительность системы в целом.
Кроме времени операций, можно выделить несколько других метрик, которые могут оказаться полезными для принятия решений по инфраструктуре или для выполнения последующих оптимизаций.
Дополнительные метрики
- Количество клиент-серверных вызовов, выполняющихся в рамках каждого сценария. Данный показатель важен, прежде всего, в условиях низкоскоростных сетевых каналов, и позволяет выделить сценарии, которые в таких условиях будут работать неэффективно. Количество вызовов измерялось с помощью утилиты Fiddler2, которая позволяет отслеживать и фиксировать все вызовы по протоколу http (и впоследствии детально анализировать весь трафик).
- Количество входящего/исходящего трафика клиент-сервер порождаемого каждой операцией – не менее важный показатель для низкоскоростных каналов связи. Измерения выполнялись также с помощью утилиты Fiddler.
Помимо прямых метрик, могут быть полезными также и "вторичные" метрики. Например, к ним можно отнести счетчики производительности, показывающие величину нагрузки на аппаратные составляющие всех уровней системы (клиент, сервер приложений, сервер БД): загрузка процессора (%), размер задействованной и свободной оперативной памяти (Мб), длина очереди к диску (число команд).
Данные метрики могут сниматься с помощью встроенного в ОС Windows средства Perfomance monitor, и позволяют сохранить значения метрик за весь период тестирования и представить результаты в виде удобных графиков. Впоследствии с помощью данных метрик можно оценить, какие операции (из выполнявшихся в ходе тестирования) вызывали наибольшую нагрузку; и какая аппаратная часть (процессор, память, диск) на каждом из уровней является "узким местом" в быстродействии всей системы.
Для автоматизации процесса измерения метрик и получения оценки максимально возможной скорости отклика системы в типовых схемах работы необходимо сделать подробное описание каждого сценария уже в терминах интерфейса системы (последовательность нажатия кнопок и выполнения команд, необходимая для достижения цели). Необходимо также определить рамки измерений.
Короткая ссылка на материал: //cnews.ru/link/a2292