tmpa-2013 guriev: high performance load generator
DESCRIPTION
Tools & Methods of Program Analysis (TMPA-2013) Guriev, D., Gai, M., Itkin, I., Terentiev, A., Innovative Trading Systems, LLC High Performance Load Generator for Automated Trading Systems TestingTRANSCRIPT
Высокопроизводительный генератор нагрузки для тестирования систем
автоматизированной торговли
Дмитрий Гурьев, Мария Гай, Иосиф Иткин, Александр Терентьев
Exactpro Systems, Саратовский гос. тех. университет имени Гагарина
2
Сотни миллионов заявок в день Десятки тысяч заявок в секунду Двузначное количество серверов в ЦОД Миллисекундные всплески Ограничения масштабируемости Выделенные подключения Фазовые переходы Времена отклика в 3000 раз быстрее мгновения ока
Системы автоматизированной торговли
3
Генераторы нагрузки
Трейдинговые
С открытым кодом
Коммерческие
4
Типы генераторов нагрузки
Основаны на измерениях
5
Типы генераторов нагрузки
Основаны на измерениях
Основаны на модели
6
От
Типы генераторов нагрузки
Основаны на измерениях
Основаны на модели
Закрытого цикла
7
От
Типы генераторов нагрузки
Основаны на измерениях
Основаны на модели
Закрытого цикла
Открытого цикла
8
Соотношение аппаратной мощности
9
Модель асимметричного ответа
10
Нельзя просто взять и проиграть записанные данные
Нельзя просто взять и использовать заготовленные тестовые сценарии
Нельзя просто вести стрельбу и не обрабатывать обратный поток данных
Ограничения трейдинговых систем
Нельзя просто взять и поставить много серверов
11
Конфигурационный файл
#Конфигурационный файл с настройками сессий:CONNECTIONS_CONFIG = fixConnections.cfg#Указание используемых сессий из файла с сессиями:CONNECTIONS_RANGE = 1-3, 5, 7-#Файл с заготовками сообщений:MESSAGE_TEMPLATES = fixMessageTemplates.dat#Файл с распределением по сообщениям:MESSAGE_RATES = messageRates.cfg#Последовательность действий до начала теста:INIT_CONFIG = connect(100ms), logon(3s)#Конфигурация нагрузки:LOAD_CONFIG = const(1000,5m), const(100000,10ms), const(1000,5m)#Задается постоянная нагрузка 1000 сообщений в секунду#на протяжении 5-и минут.#Количество повторений нагрузочного сценария, заданного#параметром LOAD_CONFIG:NUMBER_REPETITIONS = 10#Последовательность действий после окончания теста:SHUTDOWN_CONFIG = logout(1s), disconnect(10ms)#Последовательность действий при внезапном обрыве#соединенияON_RECONNECT_CONFIG = connect(10ms), logon(3s)#Флаг на выполнение действий, указанных в#ON_RECONNECT_CONFIG при обрыве соединения:HOLD_CONNECTION = 1#Если значение = 0, действия в ON_RECONNECT_CONFIG не #выполняются, и соединение не восстанавливается.#Время задержки между авторизацией сессий в миллисекундах LOGON_INTERVAL = 1000
12
Поток выполнения генератора открытого цикла посылает сообщения со скоростью 75к сообщений в секунду с одного ядра Цикл обратной связи требует еще одного ядраЭтот уровень нагрузки достаточен для любой системы по электронной торговле акциямиЦентральный контроллер также маштабируется по ядрам на одной машине
Характеристики производительности
Вопросы и Ответы
Спасибо!