Quickfix é uma implementação livre, opensource, do
protocolo Fix, utilizado no mercado financeiro.
O objetivo desta apresentação é mostrar ganhos
de performance e competitivos.
Afinal, no mercado financeiro “ns” e “ms” fazem toda diferença.

Performance Tuning para aplicação
desenvolvida em Quickfix:
RHEL 5.6 vs RHEL 5.6 + MRG
Junho de 2011
Red Hat Enterprise Linux
5.6 padrão

Red Hat Enterprise Linux
5.6 + Add-on Realtime
da Red Hat

Rodrigo Missiaggia
Platform Technical Leader
Red Hat Brasil
rmissiaggia@redhat.com
@rmissiaggia
Apresentação
●

Objetivo do “Performance Tuning”

●

Ambiente de Testes

●

Software Utilizado

●

Configuração do Software

●

Latência medida do Hardware Dell R710

●

Resumo dos Ganhos Obtidos
Objetivo do “Performance Tuning”

Atingir o “comportamento desejado”. Neste caso
o comportamento desejado é:
●

“Baixa Latência, previsibilidade na
entrega dos dados e transações”
Ambiente de Testes
O ambiente de testes,
simula o ambiente de Colocation
encontrado em uma
bolsa de valores.
Onde, o cliente tem acesso
apenas ao Servidor Cliente,
que roda suas regras de
negociação.
E não tem acesso ao servidor
de controle de risco, responsável
pelo compliance, auditoria etc.

Colocation
Servidor Cliente
(algoritmo)
1 Gbits/s
Controle de Risco
(regras de
negociação)
1 Gbits/s

R710
2 x x5570
24GB de RAM

R910
4 x E7540
128 GB de RAM
Software Utilizado

Aplicação em C++ → “tradeclient” (desenvolvida com

●

Quickfix 1.3.3 e Fix versão 4.2)
●

Simulando a execução de +894000 transações
Simulação de +894000 regras
de compra, venda,
cancelamento de negociação etc
http://www.quickfixengine.org/download.html
Software Utilizado

http://www.quickfixengine.org/download.html

Utilizado para
verificar os logs.
Configuração do Software
O ambiente de testes,
simula o ambiente de Colocation
encontrado em uma
bolsa de valores.
Onde, o cliente tem acesso
apenas ao Servidor Cliente,
que roda suas regras de
negociação.
E não tem acesso ao servidor
de controle de risco, responsável
pelo compliance, auditoria etc.

Colocation
Servidor Cliente
(algoritmo)
1 Gbits/s
Controle de Risco
(regras de
negociação)
1 Gbits/s

R710
2 x x5570
24GB de RAM
RHEL 5.6
Initiator
R910
4 x E7540
128 GB de RAM
RHEL 6.
Acceptor
Initiator – RHEL 5.6 sem Tuning
2743

2,9250%

6078

7

6,4812%

11041

8

11,7734%

17948

9

19,1386%

23495

10

25,0536%

17698

11

18,8720%

7360

12

7,8482%

2637

13

2,8119%

817

14

0,8712%

833
Cada + no gráfico representa 1ms no tempo.
Existem 93779 medições neste gráfico.
Cada medição informa, por exemplo,
que num dado milissegundo
foram executadas 9 transações.

6

15

0,8883%

1149

16

1,2252%

Tempo total de execução → 93,779 segundos
Initiator – RHEL 5.6 ajustando
3

7

0,0046%

1

8

0,0015%

4

9

0,0062%

4

10

0,0062%

6

11

0,0092%

235

12

0,3615%

12609

13

19,3967%

35453

14

54,5380%

13454

15

20,6966%

947

16

1,4568%

130

17

0,2000%

Cada + no gráfico representa 1ms no tempo.
65006 medições no gráfico.
Ajustes utilizados apresentados
no final da apresentação.

Tempo total de execução → 65,006 segundos
Initiator – RHEL 5.6 + Realtime
9663

15,1622%

30269

14

47,4949%

14982

15

23,5082%

5360

16

8,4103%

1151

17

1,8060%

361

18

0,5664%

629

19

0,9870%

712

20

1,1172%

439

21

0,6888%

113

22

0,1773%

15
Ajustes de Bios no Hardware + Numactl +
tunnings diversos + Add-on Realtime

13

23

0,0235%

1

24

0,0016%

Tempo total de execução → 63,731 segundos
Latência de Hardware Medida
durante o Teste com MRG
Latência média de 1.672 us
(microsegundos) ou seja,
inferior a 2 us
Durante a execução
dos testes.

Medição de latência utilizando o comando →
cyclictest -t1 -n -p99 -v | oscilloscope -s1000 >/dev/null

Obs: sem o Kernel Realtime
Não é possível medir a latência
com esta precisão.
Resumo
-32%
Sem Tuning
Com Tuning + MRG
Tempo total de execução → 93,779 segundos
Tempo total de execução → 63,731 segundos

Se arbitrarmos que o desempenho (SLA)
esperada é igual ou superior
a 10 transações po Milissegundo
os ganhos são evidentes.

1-9 transações por Ms

41,49%

10-15 trasações por Ms

56,35%

16-26 transações por Ms

2,17%
100,00%

1-9 transações por Ms

0,000031%

10-15 trasações por Ms

86,22%

16-26 transações por Ms

13,78%
100,00%
Resumo
-2%
Com Tuning + Sem MRG
Com Tuning + MRG
Tempo total de execução → 65,006 segundos Tempo total de execução → 63,731 segundos

Se arbitrarmos que o
desempenho (SLA)
esperada é igual ou
superior a 10 transações
po Milissegundo os
ganhos são evidentes.

1-9 transações por Ms

0,03%

10-15 trasações por Ms

96,46%

16-26 transações por Ms

3,51%
100,00%

1-9 transações por Ms

0,000031%

10-15 trasações por Ms

86,22%

16-26 transações por Ms

13,78%
100,00%

Mais conteúdo relacionado

PPTX
Eficiência operacional na indústria
ODP
Admin e suas gambiarras
PDF
Implementação_cluster alto_desempenho_fernando_eduardo_20090726-Imetro_2013
PDF
Na Jornada da Virtualização para as Nuvens, como mantemos o controle?
PDF
Performance tuning
PDF
Curso de Performance and Tuning - Linux
PDF
Red Hat Enterprise Linux 7
PDF
Improving Hadoop Performance via Linux
Eficiência operacional na indústria
Admin e suas gambiarras
Implementação_cluster alto_desempenho_fernando_eduardo_20090726-Imetro_2013
Na Jornada da Virtualização para as Nuvens, como mantemos o controle?
Performance tuning
Curso de Performance and Tuning - Linux
Red Hat Enterprise Linux 7
Improving Hadoop Performance via Linux

Mais de Rodrigo Missiaggia (7)

PDF
Automation day red hat ansible
PDF
Red hat ceph storage customer presentation
PDF
O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...
PDF
Gerenciando Serviços com Systemd
PDF
Teste de performance mrg realtime
PDF
Webinar RHEV na IT Web
PDF
Red Hat Enterprise Linux 6 - A Plataforma que transforma "Features" em Benefí...
Automation day red hat ansible
Red hat ceph storage customer presentation
O FUTURO DE CLOUD COM IaaS OPEN SOURCE: Construa sua Nuvem Privada com OpenSt...
Gerenciando Serviços com Systemd
Teste de performance mrg realtime
Webinar RHEV na IT Web
Red Hat Enterprise Linux 6 - A Plataforma que transforma "Features" em Benefí...
Anúncio

Performance Tuning para o mercado financeiro

  • 1. Quickfix é uma implementação livre, opensource, do protocolo Fix, utilizado no mercado financeiro. O objetivo desta apresentação é mostrar ganhos de performance e competitivos. Afinal, no mercado financeiro “ns” e “ms” fazem toda diferença. Performance Tuning para aplicação desenvolvida em Quickfix: RHEL 5.6 vs RHEL 5.6 + MRG Junho de 2011 Red Hat Enterprise Linux 5.6 padrão Red Hat Enterprise Linux 5.6 + Add-on Realtime da Red Hat Rodrigo Missiaggia Platform Technical Leader Red Hat Brasil rmissiaggia@redhat.com @rmissiaggia
  • 2. Apresentação ● Objetivo do “Performance Tuning” ● Ambiente de Testes ● Software Utilizado ● Configuração do Software ● Latência medida do Hardware Dell R710 ● Resumo dos Ganhos Obtidos
  • 3. Objetivo do “Performance Tuning” Atingir o “comportamento desejado”. Neste caso o comportamento desejado é: ● “Baixa Latência, previsibilidade na entrega dos dados e transações”
  • 4. Ambiente de Testes O ambiente de testes, simula o ambiente de Colocation encontrado em uma bolsa de valores. Onde, o cliente tem acesso apenas ao Servidor Cliente, que roda suas regras de negociação. E não tem acesso ao servidor de controle de risco, responsável pelo compliance, auditoria etc. Colocation Servidor Cliente (algoritmo) 1 Gbits/s Controle de Risco (regras de negociação) 1 Gbits/s R710 2 x x5570 24GB de RAM R910 4 x E7540 128 GB de RAM
  • 5. Software Utilizado Aplicação em C++ → “tradeclient” (desenvolvida com ● Quickfix 1.3.3 e Fix versão 4.2) ● Simulando a execução de +894000 transações Simulação de +894000 regras de compra, venda, cancelamento de negociação etc http://www.quickfixengine.org/download.html
  • 7. Configuração do Software O ambiente de testes, simula o ambiente de Colocation encontrado em uma bolsa de valores. Onde, o cliente tem acesso apenas ao Servidor Cliente, que roda suas regras de negociação. E não tem acesso ao servidor de controle de risco, responsável pelo compliance, auditoria etc. Colocation Servidor Cliente (algoritmo) 1 Gbits/s Controle de Risco (regras de negociação) 1 Gbits/s R710 2 x x5570 24GB de RAM RHEL 5.6 Initiator R910 4 x E7540 128 GB de RAM RHEL 6. Acceptor
  • 8. Initiator – RHEL 5.6 sem Tuning 2743 2,9250% 6078 7 6,4812% 11041 8 11,7734% 17948 9 19,1386% 23495 10 25,0536% 17698 11 18,8720% 7360 12 7,8482% 2637 13 2,8119% 817 14 0,8712% 833 Cada + no gráfico representa 1ms no tempo. Existem 93779 medições neste gráfico. Cada medição informa, por exemplo, que num dado milissegundo foram executadas 9 transações. 6 15 0,8883% 1149 16 1,2252% Tempo total de execução → 93,779 segundos
  • 9. Initiator – RHEL 5.6 ajustando 3 7 0,0046% 1 8 0,0015% 4 9 0,0062% 4 10 0,0062% 6 11 0,0092% 235 12 0,3615% 12609 13 19,3967% 35453 14 54,5380% 13454 15 20,6966% 947 16 1,4568% 130 17 0,2000% Cada + no gráfico representa 1ms no tempo. 65006 medições no gráfico. Ajustes utilizados apresentados no final da apresentação. Tempo total de execução → 65,006 segundos
  • 10. Initiator – RHEL 5.6 + Realtime 9663 15,1622% 30269 14 47,4949% 14982 15 23,5082% 5360 16 8,4103% 1151 17 1,8060% 361 18 0,5664% 629 19 0,9870% 712 20 1,1172% 439 21 0,6888% 113 22 0,1773% 15 Ajustes de Bios no Hardware + Numactl + tunnings diversos + Add-on Realtime 13 23 0,0235% 1 24 0,0016% Tempo total de execução → 63,731 segundos
  • 11. Latência de Hardware Medida durante o Teste com MRG Latência média de 1.672 us (microsegundos) ou seja, inferior a 2 us Durante a execução dos testes. Medição de latência utilizando o comando → cyclictest -t1 -n -p99 -v | oscilloscope -s1000 >/dev/null Obs: sem o Kernel Realtime Não é possível medir a latência com esta precisão.
  • 12. Resumo -32% Sem Tuning Com Tuning + MRG Tempo total de execução → 93,779 segundos Tempo total de execução → 63,731 segundos Se arbitrarmos que o desempenho (SLA) esperada é igual ou superior a 10 transações po Milissegundo os ganhos são evidentes. 1-9 transações por Ms 41,49% 10-15 trasações por Ms 56,35% 16-26 transações por Ms 2,17% 100,00% 1-9 transações por Ms 0,000031% 10-15 trasações por Ms 86,22% 16-26 transações por Ms 13,78% 100,00%
  • 13. Resumo -2% Com Tuning + Sem MRG Com Tuning + MRG Tempo total de execução → 65,006 segundos Tempo total de execução → 63,731 segundos Se arbitrarmos que o desempenho (SLA) esperada é igual ou superior a 10 transações po Milissegundo os ganhos são evidentes. 1-9 transações por Ms 0,03% 10-15 trasações por Ms 96,46% 16-26 transações por Ms 3,51% 100,00% 1-9 transações por Ms 0,000031% 10-15 trasações por Ms 86,22% 16-26 transações por Ms 13,78% 100,00%