TMPA-2013 Guriev: High Performance Load Generator

13
Высокопроизводительный генератор нагрузки для тестирования систем автоматизированной торговли Дмитрий Гурьев, Мария Гай, Иосиф Иткин, Александр Терентьев Exactpro Systems, Саратовский гос. тех. университет имени Гагарина

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 Testing

Transcript of TMPA-2013 Guriev: High Performance Load Generator

Page 1: TMPA-2013 Guriev: High Performance Load Generator

Высокопроизводительный генератор нагрузки для тестирования систем

автоматизированной торговли

Дмитрий Гурьев, Мария Гай, Иосиф Иткин, Александр Терентьев

Exactpro Systems, Саратовский гос. тех. университет имени Гагарина

Page 2: TMPA-2013 Guriev: High Performance Load Generator

2

Сотни миллионов заявок в день Десятки тысяч заявок в секунду Двузначное количество серверов в ЦОД Миллисекундные всплески Ограничения масштабируемости Выделенные подключения Фазовые переходы Времена отклика в 3000 раз быстрее мгновения ока

Системы автоматизированной торговли

Page 3: TMPA-2013 Guriev: High Performance Load Generator

3

Генераторы нагрузки

Трейдинговые

С открытым кодом

Коммерческие

Page 4: TMPA-2013 Guriev: High Performance Load Generator

4

Типы генераторов нагрузки

Основаны на измерениях

Page 5: TMPA-2013 Guriev: High Performance Load Generator

5

Типы генераторов нагрузки

Основаны на измерениях

Основаны на модели

Page 6: TMPA-2013 Guriev: High Performance Load Generator

6

От

Типы генераторов нагрузки

Основаны на измерениях

Основаны на модели

Закрытого цикла

Page 7: TMPA-2013 Guriev: High Performance Load Generator

7

От

Типы генераторов нагрузки

Основаны на измерениях

Основаны на модели

Закрытого цикла

Открытого цикла

Page 8: TMPA-2013 Guriev: High Performance Load Generator

8

Соотношение аппаратной мощности

Page 9: TMPA-2013 Guriev: High Performance Load Generator

9

Модель асимметричного ответа

Page 10: TMPA-2013 Guriev: High Performance Load Generator

10

Нельзя просто взять и проиграть записанные данные

Нельзя просто взять и использовать заготовленные тестовые сценарии

Нельзя просто вести стрельбу и не обрабатывать обратный поток данных

Ограничения трейдинговых систем

Нельзя просто взять и поставить много серверов

Page 11: TMPA-2013 Guriev: High Performance Load Generator

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

Page 12: TMPA-2013 Guriev: High Performance Load Generator

12

Поток выполнения генератора открытого цикла посылает сообщения со скоростью 75к сообщений в секунду с одного ядра Цикл обратной связи требует еще одного ядраЭтот уровень нагрузки достаточен для любой системы по электронной торговле акциямиЦентральный контроллер также маштабируется по ядрам на одной машине

Характеристики производительности

Page 13: TMPA-2013 Guriev: High Performance Load Generator

Вопросы и Ответы

Спасибо!