Este Spike foi realizado com a finalidade de avaliar a carga de mensagens suporta pelo RabbitMQ que esta instalado na Estrutura atual da TOTVS ( amqp://10.171.50.32 : 5672 )
Para este teste foram testados 3 cenário conforme descritos a seguir, utilizando um ferramenta de teste de performance disponibilizada pela Equipe de desenvolvimento do Rabbbit ( https://github.com/rabbitmq/rabbitmq-perf-test )
Realizando teste com 50 producers (2 X 25 conexões) e 50 consumers (2 X 25 conexões) e mensagem com tamanho de 10kb.:
Neste cenário, o Rabbit foi reiniciado, devido ao acúmulo das mensagem, ou seja, ficaram mais de 2,5 milhões de mensagens presas nas filhas, isso fez a memoria passar o limite definido. todavia outras medições se mostraram controladas.
Realizando teste com 50 producers (2 X 25 conexões) e 50 consumers (2 X 25 conexões) e mensagem com tamanho de 4b.:
Devido ao tamanho reduzido da mensagem, não acaba gerando acúmulo no servidor assim ele acaba estabilizando em o consumo da memória:
Realizando teste com 100 producers (4 X 25 conexões) e 100 consumers (4 X 25 conexões) e mensagem com tamanho de 4b.:
Estabilizou, entretanto consumindo uma memória media 3X maior que o teste anterior.
Conversando com o Felipe Conti, neste último teste o consumo de processo também se mostrou bem alto.
Cenário 1 | Cenário 2 | Cenário 3 | |
---|---|---|---|
Nº de mensagens | 2.5 Milhões | 48 mil | 2 mil |
Queda serviço | Sim | não | não |
Consumo de memoria | mais de 3.5 gb | 1 gb | 3gb |
Por ser uma ferramenta bem otimizada suporta uma quantidade bem significativa em memoria, lembrando que no cenário houve um acumulo devido ao trafego das mensagem, em contra ponto, o consumo de processamento aumento consideravelmente quando aumentado o numero de consumers. Para identificar os numeros ideias, precisamos colocar a ferramenta em um ambiente semelhante ao que será utilizado, pois nem tanto pela quantidade se identificou problema, mas sim com relação a comunicação entre os publisher e consumer, gerando assim o congestionamento na fila
|