Teste de performance mrg realtime

13
Rodrigo Missiaggia Platform Technical Leader Red Hat Brasil [email protected] @rmissiaggia Performance Tuning para aplicação desenvolvida em Quickfix: RHEL 5.6 vs RHEL 5.6 + MRG Junho de 2011

description

Teste de desempenho com Kernel Realtime no RHEL 5.6 utilizando bibliotecas Quickfix usando Hardware Dell

Transcript of Teste de performance mrg realtime

Page 1: Teste de performance mrg realtime

Rodrigo MissiaggiaPlatform Technical LeaderRed Hat [email protected]@rmissiaggia

Performance Tuning para aplicação desenvolvida em Quickfix:

RHEL 5.6 vs RHEL 5.6 + MRG

Junho de 2011

Page 2: Teste de performance mrg realtime

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

Page 3: Teste de performance mrg realtime

Objetivo do “Performance Tuning”

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

“Baixa Latência, previsibilidade na entrega dos dados e transações”

Page 4: Teste de performance mrg realtime

Ambiente de Testes

Servidor Cliente(algoritmo)

Controle de Risco(regras de

negociação)

1 Gbits/s

1 Gbits/s

Colocation R7102 x x5570

24GB de RAM

R9104 x E7540

128 GB de RAM

Page 5: Teste de performance mrg realtime

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

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

Page 6: Teste de performance mrg realtime

Software Utilizado

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

Page 7: Teste de performance mrg realtime

Configuração do Software

Servidor Cliente(algoritmo)

Controle de Risco(regras de

negociação)

1 Gbits/s

1 Gbits/s

Colocation

R7102 x x5570

24GB de RAMRHEL 5.6

Initiator

R9104 x E7540

128 GB de RAMRHEL 6.

Acceptor

Page 8: Teste de performance mrg realtime

Initiator – RHEL 5.6 sem Tuning

2743 6 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 15 0,8883%

1149 16 1,2252%

Tempo total de execução → 93,779 segundos

Page 9: Teste de performance mrg realtime

Initiator – RHEL 5.6 ajustando3 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%

Tempo total de execução → 65,006 segundos

Page 10: Teste de performance mrg realtime

Initiator – RHEL 5.6 + Realtime

Tempo total de execução → 63,731 segundos

9663 13 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 23 0,0235%

1 24 0,0016%Ajustes de Bios no Hardware + Numactl + tunnings diversos + Realtime

Page 11: Teste de performance mrg realtime

Latência de Hardware Medida durante o Teste com MRG

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

Obs: sem o Kernel RealtimeNão é possível medir a latência com esta precisão.

Latência média de 1.672 us (microsegundos) ou seja,

inferior a 2 us

Durante a execução dos testes.

Page 12: Teste de performance mrg realtime

Resumo

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%

Sem TuningTempo total de execução → 93,779 segundos

Com Tuning + MRGTempo total de execução → 63,731 segundos

-32%

Page 13: Teste de performance mrg realtime

Resumo

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%

Com Tuning + MRGTempo total de execução → 63,731 segundos

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%

Com Tuning + Sem MRGTempo total de execução → 65,006 segundos

-2%