Tempos limite de conexão TCP LVS - conexões prolongadas

2

Estou usando o keepalived para balancear a carga de conexões entre um número de servidores TCP. Eu não espero que importe, mas o serviço neste caso é rabbitmq. Estou usando balanceamento de tipo NAT com round-robin ponderado.

Um cliente se conecta ao servidor assim:

[client]-----------[lvs]------------[real server]
            a                b

Se um cliente se conecta ao LVS e permanece ocioso, não enviando nada no soquete, isso eventualmente atinge o tempo limite, de acordo com os tempos limite definidos usando ipvsadm --set . Neste ponto, a conexão marcada 'a' acima corretamente desaparece da saída de netstat -anp no cliente e da saída de ipvsadm -L -n -c na caixa lvs. A conexão 'b', no entanto, permanece ESTABELECIDA de acordo com netstat -anp na caixa do servidor real.

Por que isso? Posso forçar o lvs a redefinir corretamente a conexão com o servidor real?

    
por Jon Topper 10.08.2009 / 16:51

2 respostas

1

Você tem conexão persistente ativada? O tempo limite de conexão persistente pode ser definido usando -p [tempo limite]

Isso mantém a conexão b ativa para rotear mais solicitações do IP do cliente para o mesmo servidor real.

    
por 13.08.2009 / 14:19
1

Você pode usar o comando --set para diminuir o tempo limite.

/sbin/ipvsadm --set 3600 120 300

Ou dê haproxy uma tentativa.

    
por 20.04.2011 / 08:59