Тестирование производительности системы «К-Док»

СДЦ > Статьи > Тестирование производительности системы «К-Док»

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

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

Принимая во внимание все вышесказанное, нельзя оставить без внимания вопросы производительности системы «К-Док», поэтому мы провели нагрузочное тестирование и хотим поделиться результатами.

Примененная методика позволила предотвратить следующие проблемы производительности:

  1. Приложение быстро работает на небольших объемах данных, однако скорость работы приложения заметно снижается с ростом объема накопленных данных;
  2. Скорость работы приложения приемлема при работе небольшой группы пользователей, однако при интенсивном использовании всеми сотрудниками организации приложение работает недостаточно быстро;
  3. Не оптимально выбранная архитектура не способна обеспечить заранее известную нагрузку.

Учитывая рекомендуемые компанией Microsoft требования к оборудованию, необходимому для функционирования платформы SharePoint 2010, а также набирающий популярность подход к виртуализации серверов была выбрана следующая конфигурация оборудования для тестового стенда системы «К-Док»:

  1. Сервер, поддерживающий технологию виртуализации Hyper-V;
    • Процессор: Intel(R) Core(TM) i7 920 ;
    • Частота 2.6 ГГц;
    • Оперативная память: 24 Гб;
    • Диспетчер Hyper-V 1.6;
  2. Виртуальная машина SharePoint 2010 + MS SQL 2008 + система «К-Док»;
    • Число логических процессоров – 4;
    • Оперативная память: 16 Гб;
    • Общий объем дискового пространства и количество дисков – 550 Гб, 2 диска(230 Гб, 220 Гб).

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

Методика нагрузочного тестирования строилась следующим образом: основные сущности системы «К-Док» были заполнены большим объемом тестовых данных, после этого были проведены тесты на быстродействие, и, в заключение, были отработаны тесты измерения производительности системы при интенсивной многопользовательской одновременной работе.

Тестирование проводилось на следующем объеме тестовых данных:

  1. Количество регистрационных карточек (РК) – 1 002 000;
  2. Количество поручений – 1 126 000;
  3. Количество приложений к РК – 2 026 000 (средний размер документа 40 Кб).

Для тестирования были выбраны следующие операции системы «К-Док»:

  1. Регистрация РК;
    • Регистрация исходящих документов;
    • Регистрация входящих документов;
    • Регистрация писем граждан.
  2. Просмотр списка созданных РК;
  3. Просмотр свойств отдельной РК;
  4. Поиск РК:
    • Поиск по содержанию;
    • Поиск по дате регистрации;
    • Поиск по рубрикам.
  5. Создание поручения;
  6. Просмотр отдельного поручения;
  7. Поиск поручений:
    • По автору;
    • По исполнителю;
    • По плановой дате.
  8. Загрузка отдельного приложения к РК;
  9. Выгрузка отдельного приложения РК.

Для проведения тестов на быстродействие каждой операции был использован браузер Firefox 13 с установленным дополнением Firebug 1.9.2, которое позволяет анализировать работу браузера при открытии ссылки, а в качестве показателя быстродействия было принято решение считать время загрузки страницы.

Результаты этих тестов приведены на рисунке 1.

Рисунок 1. Результат тестов на быстродействие при больших объемах данных

Результаты показывают, что выполнение любой из тестируемых операций занимает менее 2,5 секунд на миллионах записей, при этом среднее время реакции системы на действия пользователя находится в районе 1,5 – 2 секунд.

Для тестирования производительности приложения при многопользовательской работе была использована утилита компании Microsoft для проведения нагрузочных тестов веб-приложений WCAT. Утилита, моделирует многопользовательскую работу, позволяя измерять необходимые параметры работы приложения.

Для проведения тестов использовался следующий сценарий использования системы: несколько пользователей одновременно работают в системе «К-Док», выполняя операции, перечисленные выше. Все операции обладают одинаковым приоритетом, частота выполнения операций составляет 1 запрос в секунду на пользователя. Тесты проводились при различном количестве пользователей от 1 до 151 с шагом 5. Максимальное количество в 150 одновременно работающих пользователей было выбрано из-за соответствия организации с ~300-450 сотрудниками, которая может быть обслужена порталом с минимальной конфигурацией аппаратных средств.

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

Согласно рекомендациям Microsoft при проведении тестов считывались показания следующих счетчиков:

  • Процессор(_Total)\% загруженности процессора
  • Система\Длина очереди процессора
  • Память\Доступно МБ
  • Память\Обмен страниц/сек
  • Память CLR .NET(_Global_)\% времени в GC
  • Физический диск(0 E:)\% активности диска
  • Физический диск(1 C:)\% активности диска
  • Физический диск(0 E:)\Текущая длина очереди диска
  • Физический диск(1 C:)\Текущая длина очереди диска
  • Физический диск(0 E:)\Средняя длина очереди диска
  • Физический диск(1 C:)\Средняя длина очереди диска
  • Процесс(_Total)\Рабочий набор
  • ASP.NET\Перезапусков рабочего процесса
  • ASP.NET\Перезапусков приложения
  • ASP.NET\Запросов в очереди
  • ASP.NET\Время ожидания для запроса
  • ASP.NET\Отклонено запросов

С полными результатами теста можно ознакомиться по ссылке, а ниже мы рассмотрим ключевые показатели.

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

Рисунок 2. График загруженности процессора от количества одновременно работающих пользователей

Результаты тестов позволяют сделать вывод о достаточной производительности системы даже при 150 одновременно работающих пользователей (% загруженности процессора не превышает 40%).

Другим важным счетчиков является счетчик объема доступной оперативной памяти. График зависимости объема доступной оперативной памяти от количества пользователей, полученный по результатам проведения тестов,  представлен на рисунке 3.

Рисунок 3. График зависимости объема доступной оперативной памяти от количества одновременно работающих пользователей

Результаты теста в 50-70 % доступной памяти говорят о достаточном количестве оперативной памяти для работы системы, т.к. недостаток оперативной памяти диагностируется низким (ниже 10% от общего объема оперативной памяти) значением счётчика.

Что же касается производительности дисковой подсистемы, нагрузка по результатам теста не превышала 3% максимально возможной.

Во время проведения теста вычислялись такие показатели как среднее время до получения первого полученного байта и среднее время до получения последнего полученного байта. Графики этих величин приведены на рисунках 4 и 5 соответственно.

Рисунок 4. График зависимости времени до получения первого полученного байта от количества одновременных пользователей

Рисунок 5. График зависимости времени дополучения последнего полученного байта от количества одновременных пользователей

Данные параметры отражают «чистое» время загрузки страницы (~0,4с.) в отличие от данных на рисунке 1 (~1-2,5c.), поскольку отражают лишь время передачи данных страницы клиенту, браузер же вынужден загружать и обрабатывать большое количество дополнительных ресурсов (стилей, скриптов и др.). В результате имеет смысл анализировать не абсолютные значения полученных величин, а тенденции, наблюдаемые при увеличении нагрузки. Полученные результаты свидетельствуют о том, что скорость выполнения операций практически не зависит от количества одновременно работающих пользователей, т.е. система успешно справляется с нагрузкой.

Итак, после проведения нагрузочного тестирования системы «К-Док» можно сделать вывод, что при использовании минимальной аппаратной конфигурации скорость работы приложения остается приемлемой даже на миллионах записей. Кроме того, на портале с одной фермой серверов, предложенная архитектура способна без потери производительности обеспечить одновременную работу 150 пользователей, что соответствует организации с 300-450 сотрудниками.

Полезные ссылки:

  1. Полные результаты тестирования производительности системы «К-Док» (http://sdcv.ru/wp-content/plugins/download-monitor/download.php?id=7)
  2. Мониторинг и обслуживание SharePoint Server 2010 (http://technet.microsoft.com/ru-ru/library/ff758658.aspx)
  3. WCAT 6.3 (http://www.iis.net/community/default.aspx?tabid=34&i=1466&g=6)
  4. Firefox (http://www.mozilla.org/ru/firefox/fx/)
  5. FireBug (https://addons.mozilla.org/ru/firefox/addon/firebug/)