SlideShare una empresa de Scribd logo
1 de 13
Высокопроизводительный генератор нагрузки
для тестирования систем автоматизированной
торговли
Дмитрий Гурьев, Мария Гай, Иосиф Иткин, Александр Терентьев
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к сообщений в секунду с
одного ядра

Цикл обратной связи требует еще одного ядра

Этот уровень нагрузки достаточен для любой системы по
электронной торговле акциями

Центральный контроллер также маштабируется по ядрам
на одной машине
Характеристики производительности
Вопросы и Ответы
Спасибо!

Más contenido relacionado

Más de Iosif Itkin

Using Cluster Analysis for Characteristics Detection in Software Defect Reports
Using Cluster Analysis for Characteristics Detection in Software Defect ReportsUsing Cluster Analysis for Characteristics Detection in Software Defect Reports
Using Cluster Analysis for Characteristics Detection in Software Defect Reports
Iosif Itkin
 

Más de Iosif Itkin (20)

Operational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market InfrastructuresOperational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market Infrastructures
 
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
 
Testing the Intelligence of your AI
Testing the Intelligence of your AITesting the Intelligence of your AI
Testing the Intelligence of your AI
 
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market InfrastructuresEXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
 
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
 
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan ShamraiEXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
 
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference OpenEXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
 
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
 
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
 
QA Community Saratov: Past, Present, Future (2019-02-08)
QA Community Saratov: Past, Present, Future (2019-02-08)QA Community Saratov: Past, Present, Future (2019-02-08)
QA Community Saratov: Past, Present, Future (2019-02-08)
 
Machine Learning and RoboCop Testing
Machine Learning and RoboCop TestingMachine Learning and RoboCop Testing
Machine Learning and RoboCop Testing
 
Behaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileBehaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibile
 
2018 - Exactpro Year in Review
2018 - Exactpro Year in Review2018 - Exactpro Year in Review
2018 - Exactpro Year in Review
 
Exactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and StrategyExactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and Strategy
 
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
FIX EMEA Conference 2018 - Post Trade Software Testing ChallengesFIX EMEA Conference 2018 - Post Trade Software Testing Challenges
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
 
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
 
Sibos 2017: Disruptive functional testing - the next frontier in post-trade s...
Sibos 2017: Disruptive functional testing - the next frontier in post-trade s...Sibos 2017: Disruptive functional testing - the next frontier in post-trade s...
Sibos 2017: Disruptive functional testing - the next frontier in post-trade s...
 
Using Cluster Analysis for Characteristics Detection in Software Defect Reports
Using Cluster Analysis for Characteristics Detection in Software Defect ReportsUsing Cluster Analysis for Characteristics Detection in Software Defect Reports
Using Cluster Analysis for Characteristics Detection in Software Defect Reports
 
EXTENT-2017: Testing in Distributed Ledger Systems
EXTENT-2017: Testing in Distributed Ledger SystemsEXTENT-2017: Testing in Distributed Ledger Systems
EXTENT-2017: Testing in Distributed Ledger Systems
 
EXTENT-2017: Independent QA in Agile
EXTENT-2017: Independent QA in AgileEXTENT-2017: Independent QA in Agile
EXTENT-2017: Independent QA in Agile
 

TMPA-2013 Guriev: High Performance Load Generator

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