Qual o consumo de banda de uma aplicação E3?

Para responder esta pergunta recorrente, é necessário avaliar a aplicação em questão. Existem diversos recursos do E3 que consomem banda, como por exemplo: sumário de alarmes; consultas no Viewer; scripts do Viewer acessando objetos do servidor (por exemplo, Application.GetObject); download de telas, bibliotecas e recursos; e ativação e desativação de links (por exemplo, abrir e fechar telas); entre outros.

Para medir o consumo de banda, foi criada uma aplicação modelo que possui os seguintes objetos:

  • 1000 displays;
  • 1000 tags internos; e
  • 1000 tags demo.
Esta aplicação foi desenvolvida de modo que todos os displays em tela estejam associados a tags internos, e cada tag interno possua uma associação com um tag demo variando em 1 segundo. Esta associação utiliza as seguintes funções: CStr, CInt, CLng, CByte e CSng.

Exemplo: o TagInterno51 possui o seguinte tag associado: CInt(Dados2.TagDemo51.Value)

Por meio da análise dos logs de estatísticas do E3, é possível verificar o consumo de banda necessário para trafegar os pacotes.

Exemplo 1:

RECClient(1): Viewer connected to RAIMANN Sent=1295(101568B) Recv=1307(19911751B) Pending=0(0B) Elapsed=10:04.005 REC=v2.90 Remote=v4.0.043

RECClient(1): Viewer connected to RAIMANN Sent=1891(115872B) Recv=1903(29164159B) Pending=0(0B) Elapsed=15:01.920 REC=v2.90 Remote=v4.0.043

Pacotes trafegados no intervalo de 5 minutos: 596
Pacotes trafegados por segundo: 1,98
Consumo de banda no intervalo de 5 minutos: 9252408B
Consumo de banda por pacote: 15525B = 15,5KB
Consumo de banda por segundo: 30843B = 31KB/s

Note que neste cenário a opção de nível de compressão dos pacotes do REC está desligada.

Ao refazer o teste, agora com o nível máximo de compressão dos pacotes do REC (9), teremos:

Exemplo 2:

RECClient(1): Viewer connected to RAIMANN Sent=1254(35453B/100212B) Recv=1257(1629516B/18736276B) Pending=0(0B) Elapsed=10:03.630 REC=v2.90 Remote=v4.0.043

RECClient(1): Viewer connected to RAIMANN Sent=1848(49709B/114468B) Recv=1851(2431899B/27975352B) Pending=0(0B) Elapsed=15:00.640 REC=v2.90 Remote=v4.0.043


Pacotes trafegados no intervalo de 5 minutos: 594
Pacotes trafegados por segundo: 1,98
Consumo de banda no intervalo de 5 minutos: 802383B
Consumo de banda por pacote: 1350B = 1,3KB
Consumo de banda por segundo: 2674B = 2,7KB/s

Com o nível máximo de compressão dos pacotes do REC, é possível verificar que o consumo de banda reduz bastante.

A tabela a seguir foi elaborada avaliando outros tipos de dados.
 

Nota: No caso do tipo CStr, as string são pequenas (o valor double de um tag demo convertido para string deve ficar em torno de 10 caracteres). Se os strings forem maiores, a banda também deverá ser maior.

É importante ressaltar que a atualização de tags em tela não deve ser o gargalo. No caso de scripts que acessem o servidor (ou outros comandos síncronos), a latência pode fazer toda a diferença, mesmo que a banda disponível seja alta. Assim, acreditamos que os gargalos possam ser os seguintes:

  • Tempo de troca de telas (envolve criação de links e eventualmente downloads de telas/bibliotecas e/ou recursos): é sensível à latência da rede. O aplicativo pode funcionar como uma rede bem lenta, dependendo do tempo aceitável para troca. Recomenda-se: Organizar as libs, e também eventualmente trocar recursos por versões menores.
  • Tempo de execução de scripts que acessam o servidor (normalmente uma sequência de operações): é muito sensível à latência da rede. O aplicativo pode funcionar com uma rede lenta, dependendo do tempo aceitável para operação terminal. Recomenda-se: Uma construção mais criteriosa do aplicativo, por exemplo, movendo scripts para o servidor.
Print Friendly, PDF & Email

Este artigo foi útil? Was this helpful?

Classificação média - Average rating 0 / 5. Count: 0

Deixe seu Comentário

Seu endereço de e-mail não será publicado. Campos marcados com asterisco são obrigatórios *