Сравнение производительности TrackStudio 4 и TrackStudio 5
При разработке TrackStudio 5 мы значительно переписали ядро системы для увеличения производительности системы. В частности:
- Мы заменили небольшое количество глобальных блокировок на множество локальных, контролирующих доступ к только к определенным структурам. В TrackStudio 5 стали массово использоваться ReadWrite-блокировки, неблокирующие алгоритмы и структуры данных.
- Выполнение единичных сложных запросов (фильтрация, сортировка задач) теперь автоматически распараллеливается по имеющимся процессорам. Это позволило значительно улучшить время отклика даже при небольшом количестве работающих пользователей.
- Была значительно (в разы) ускорена работа интерпретируемых скриптов и триггеров.
В данной статье рассматривается, как изменилась производительность 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 секунд.