TMPA-2013 Guriev: High Performance Load Generator

1,025 views
980 views

Published on

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

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,025
On SlideShare
0
From Embeds
0
Number of Embeds
628
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

TMPA-2013 Guriev: High Performance Load Generator

  1. 1. Высокопроизводительный генератор нагрузки для тестирования систем автоматизированной торговли Дмитрий Гурьев, Мария Гай, Иосиф Иткин, Александр Терентьев Exactpro Systems, Саратовский гос. тех. университет имени Гагарина
  2. 2. 2  Сотни миллионов заявок в день  Десятки тысяч заявок в секунду  Двузначное количество серверов в ЦОД  Миллисекундные всплески  Ограничения масштабируемости  Выделенные подключения  Фазовые переходы  Времена отклика в 3000 раз быстрее мгновения ока Системы автоматизированной торговли
  3. 3. 3 Генераторы нагрузки Трейдинговые С открытым кодом Коммерческие
  4. 4. 4 Типы генераторов нагрузки Основаны на измерениях
  5. 5. 5 Типы генераторов нагрузки Основаны на измерениях Основаны на модели
  6. 6. 6 От Типы генераторов нагрузки Основаны на измерениях Основаны на модели Закрытого цикла
  7. 7. 7 От Типы генераторов нагрузки Основаны на измерениях Основаны на модели Закрытого цикла Открытого цикла
  8. 8. 8 Соотношение аппаратной мощности
  9. 9. 9 Модель асимметричного ответа
  10. 10. 10  Нельзя просто взять и проиграть записанные данные  Нельзя просто взять и использовать заготовленные тестовые сценарии  Нельзя просто вести стрельбу и не обрабатывать обратный поток данных Ограничения трейдинговых систем  Нельзя просто взять и поставить много серверов
  11. 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. 12  Поток выполнения генератора открытого цикла посылает сообщения со скоростью 75к сообщений в секунду с одного ядра  Цикл обратной связи требует еще одного ядра  Этот уровень нагрузки достаточен для любой системы по электронной торговле акциями  Центральный контроллер также маштабируется по ядрам на одной машине Характеристики производительности
  13. 13. Вопросы и Ответы Спасибо!

×