Сравнение производительности TrackStudio 4 и TrackStudio 5

При разработке TrackStudio 5 мы значительно переписали ядро системы для увеличения производительности системы. В частности:

  1. Мы заменили небольшое количество глобальных блокировок на множество локальных, контролирующих доступ к только к определенным структурам. В TrackStudio 5 стали массово использоваться ReadWrite-блокировки, неблокирующие алгоритмы и структуры данных.
  2. Выполнение единичных сложных запросов (фильтрация, сортировка задач) теперь автоматически распараллеливается по имеющимся процессорам. Это позволило значительно улучшить время отклика даже при небольшом количестве работающих пользователей.
  3. Была значительно (в разы) ускорена работа интерпретируемых скриптов и триггеров.

В данной статье рассматривается, как изменилась производительность TrackStudio 5 в результате проведенной оптимизации. Скачать TrackStudio 5 можно после регистрации на сайте.

Конфигурация БД TrackStudio

В качестве тестовой базы мы будем использовать нашу внутреннюю БД TrackStudio. Ее характеристики следующие:

  • 55759 задач
  • 9145 учетных записей пользователей
  • 13588 приложенных файлов
  • 1108 фильтров задач и пользователей
  • 433 кастом-поля
  • 386 процессов

Конфигурация тестового сервера

В качестве тестового сервера будем использовать Sun Fire X4150 в следующей конфигурации:

  • 2xXeon L5420 (всего 8 ядер, 2.5 GHz).
  • 16GB ECC RAM
  • 10.000 RPM SAS HDD

На сервере установлена Windows 2008 Server, а в качестве СУБД мы будем использовать PostgreSQL 9.2.

Сценарий тестирования производительности

Для записи сценария тестирования мы решили использовать Softlogica WAPT 8.0, который был запущен на тестируемом сервере. Сценарий выполняется в течение 20 минут и включает в себя следующие профили пользователей, которые выполняются одновременно:

  • Фильтрация списков задач различными фильтрами, нагрузка растет от 0 до 40 пользователей.
  • Просмотр задач, нагрузка растет от 0 до 40 пользователей.
  • Редактирование задач, нагрузка растет от 0 до 20 пользователей.
  • Поиск задач по ключевым словам, постоянная нагрузка, 2 пользователя.
  • Генерация разнообразных отчетов, постоянная нагрузка, 2 пользователя.
  • Редактирование фильтров, постоянная нагрузка, 2 пользователя.
  • Редактирование фильтров, постоянная нагрузка, 2 пользователя.
  • Редактирование всех параметров категорий и процессов, постоянная нагрузка, 4 пользователя
  • Работа с пользовательскими учетными записями (просмотр, редактирование), постоянная нагрузка, 2 пользователя

Все указанные пользователи работают с системой весьма интенсивно, пауза между выполнением отдельных действий составляет всего несколько секунд. Оповещения по e-mail и периодические рассылки списков отфильтрованных задач были также включены.

Результаты тестирования

Результаты тестирования TrackStudio 4.0.19:

Результаты тестирования TrackStudio 5.0:

Выводы

Как видно из графиков, если с системой работают одновременно до 50 человек, то TrackStudio 5 работает очень быстро и среднее время ответа не превышает 2-х секунд (TrackStudio 4 в аналогичных условиях требовалось от 10 до 15 секунд).

При увеличении нагрузки время ответа TrackStudio 5 начинает расти. Это связано с тем, что уже при 40-45 интенсивно работающих пользователях загрузка всех 8 ядер приближается к 100%:

Если же с системой интенсивно работают 100 человек, то TrackStudio 4 использовать уже практически невозможно, а среднее время ответа TrackStudio 5 увеличивается до 6 секунд.