Ajuste de parâmetros do SO para melhoria da latência

4

Estamos tentando melhorar a latência média do aplicativo proxy Java.
O aplicativo Java recebe uma mensagem de um cliente e faz proxy para um servidor necessário.
O protocolo é binário, assíncrono.

A topologia é:

Client (1) - Java proxy (2) - Server (3)

O fluxo de chamadas é

(1)-(2)-(3)-(2)-(1)

O requisito é uma sobrecarga de latência média de 2 ms para um salto de uma direção para o proxy Java.

Percebemos que, se aumentarmos o número de clientes, a sobrecarga de latência diminuirá linearmente.
Vamos dizer,

1 client -> Java proxy latency overhead = 6 ms.
2 clients -> Java proxy latency overhead = 3 ms.
4 clients -> Java proxy latency overhead = 1.5 ms.

Por outro lado, devemos cumprir o requisito de latência, mesmo com um cliente.

O mesmo comportamento que observamos, se substituirmos a implementação de proxy do Java pela implementação do Erlang.

Podemos fazer alguma coisa para o ajuste de baixo nível do SO?
Host proxy Java é 2 Nehalem CPU X5550 2.67GHz, 16 hw threads no total; Servidor Red Hat Enterprise Linux versão 5.6

    
por Neighbour 03.10.2011 / 09:03

2 respostas

3

Antes de executar seu teste, eu me certificaria de que a JVM esteja aquecida e definida para uma prioridade em tempo real. Você deve conseguir uma latência abaixo de 0,1 ms além da latência da rede.

    
por 03.10.2011 / 10:39
0

O seu proxy Java está bloqueando enquanto aguarda a resposta do servidor? Isso explicaria as vezes que você está vendo.

    
por 27.09.2012 / 21:18