Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TMPA-2013 Guriev: High Performance Load Generator

TMPA-2013 Guriev: High Performance Load Generator

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

5206c19df417b8876825b5561344c1a0?s=128

Exactpro
PRO

October 11, 2013
Tweet

Transcript

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

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

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

  4. 4 Типы генераторов нагрузки Основаны на измерениях

  5. 5 Типы генераторов нагрузки Основаны на измерениях Основаны на модели

  6. 6 От Типы генераторов нагрузки Основаны на измерениях Основаны на

    модели Закрытого цикла
  7. 7 От Типы генераторов нагрузки Основаны на измерениях Основаны на

    модели Закрытого цикла Открытого цикла
  8. 8 Соотношение аппаратной мощности

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

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

    Нельзя просто взять и использовать заготовленные тестовые сценарии Нельзя просто вести стрельбу и не обрабатывать обратный поток данных Ограничения трейдинговых систем Нельзя просто взять и поставить много серверов
  11. 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. 12  Поток выполнения генератора открытого цикла посылает сообщения со

    скоростью 75к сообщений в секунду с одного ядра  Цикл обратной связи требует еще одного ядра Этот уровень нагрузки достаточен для любой системы по электронной торговле акциями Центральный контроллер также маштабируется по ядрам на одной машине Характеристики производительности
  13. Вопросы и Ответы Спасибо!