Desempenho do STS RSFN CLUSTER 7.0.3

Escalabilidade denomina a capacidade de realizar mais trabalho proporcionalmente ao aumento na capacidade do sistema que realiza o trabalho.

Quando nós tomamos um determinado sistema que nós sabemos que realiza trabalho em uma máquina com um processador, nós esperamos que este mesmo sistema realize o dobro do trabalho em uma máquina com dois processadores.

Na prática, devido a existência de diversos tipos de gargalo no sistema, desde o hardware, passando pelo sistema operacional, até a aplicação, a escalabilidade real será menor.

O objetivo deste trabalho é avaliar a escalabilidade de um cluster STS na variável concorrência, isto é, na quantidade de trabalho sendo realizada concorrentemente.

Por nível de concorrência queremos dizer a quantidade de trabalho que concorre pelo sistema, ou seja, que roda “ao mesmo tempo”; isto pode significar uma aplicação com N threads rodando operações síncronas ou pode significar uma aplicação rodando operações assíncronas com N operações pendentes no mesmo tempo.

Tomando uma arquitetura fixa, realizamos medições fazendo variar a quantidade de concorrência, com o intuito de verificar o impacto nas métricas latência (tempo de uma operação) e vazão (taxa de operações por unidade de tempo).

Nesta medição, usamos uma arquitetura com dois STS Server executando em máquinas AWS EC2 e um STS Client Java executando em uma terceira máquina AWS EC2 .

Obtivemos cada métrica executando a operação sobre um arquivo de 1 KiB de tamanho configurando a medição para o nível de concorrência na escala 1, 2, 4, 8, 16, 32, 64, 128, 256, 384 e 512.

RESULTADOS:

Observamos que a curva da vazão sobe consistentemente com o aumento da concorrência até o nível de concorrência 256, quando então começa a cair, e as curvas de latência permanecem aproximadamente lineares, abaixo de 50ms, até o nível de concorrência 64, quando então começam a subir, sendo que o percentil 99 acelera rapidamente a partir do nível de concorrência 128.

Medição 1: empacotamento RSFN com protocolo 3

vazão x concorrência (Desempenho do STS)
latência x concorrência (Desempenho do STS)

Medição 2: desempacotamento RSFN com protocolo 3

vazão x concorrencia (Desempenho do STS)
latência x concorrência (Desempenho do STS)

METODOLOGIA:

Arquitetura

Utilizamos AWS EC2 com uma VPC isolada e três máquinas conectadas a esta VPC na seguinte configuração.

Duas máquinas com Windows Server 2019 e STS Server 7.0.3.

Uma máquina com Ubuntu 22.04 e STS Client Java 7.0.3.

Ambos os Servidores STS com um domínio configurado para o protocolo RSFN 3 contendo um ISPB com uma chave versão , e o parâmetro configurado para 1000.

Arquivo de configuração do STS Client Java editado para os dois servidores acima com o mesmo peso de 50%.

Chave privada em arquivo PKCS 12

Medição 1: empacotamento RSFN 3

Nesta medição, avaliamos o desempenho do STS 7.0.3 na operação de empacotamento RSFN 3 utilizando a ferramenta .

Arquivo de configuração de logging da ferramenta ajustado para nível .

Arquivo de dados gerado com 1 KiB de tamanho.

Cada rodada de teste foi realizada com:

  1. reiniciar ambos os serviços servidor STS;
  2. executar a ferramenta 1 vez e descartar o resultado;
  3. executar a ferramenta 5 vezes e coletar o resultado.

Os percentis de latência são obtidos da saída da ferramenta , e o tempo total de execução é obtido da saída da ferramenta time.

Comando da medição:

Medição 2: desempacotamento RSFN 3

Nesta medição, avaliamos o desempenho do STS 7.0.3 na operação de empacotamento RSFN 3 utilizando a ferramenta .

Arquivo de configuração de logging da ferramenta ajustado para nível .

Arquivo de dados gerado com 1 KiB de tamanho.

Cada rodada de teste foi realizada com:

  1. reiniciar ambos os serviços servidor STS;
  2. executar a ferramenta 1 vez e descartar o resultado;
  3. executar a ferramenta 5 vezes e coletar o resultado.

Os percentis de latência são obtidos da saída da ferramenta , e o tempo total de execução é obtido da saída da ferramenta .
Comando da medição: