Ajuste de pilha TCP do Solaris

3

Temos um grande projeto na web (cerca de 2-3k solicitações por segundo), usando haproxy ( link ) como frontend e load balanceador entre os servidores de aplicativos java. O frontend (haproxy) está sendo executado no Linux, mas vamos migrá-lo para o Solaris 10, já que todos os outros servidores estão sendo executados no Solaris.

Depois de trocar um tráfego, vejo as duas coisas: a) o site ficou mais lento (5-10 segundos com imagens em comparação com 2-3 segundos no Linux) b) às vezes o haproxy falha em executar um "lifecheck" ( obtenha uma página da Web especial e analise o código de resposta http) devido ao tempo limite do soquete. Depois de trocar o tráfego de volta para o Linux, tudo está bem.

Eu tentei ajustar todos os parâmetros que encontrei em / dev / tcp, mas nenhum progresso. Eu acredito que o problema está em algumas limitações do soquete aberto. Se alguém puder me apontar a resposta, eu seria muito apreciado.

p.s. O haproxy está sendo executado sob o Xen DomU no Linux (Kernel 2.6.18, Debian 5), sob a zona no Solaris (10 u8). a única coisa que fizemos no Linux foi aumentar o ip_conntrack_max (acredito que a opção do Solaris tcp_conn_req_max_q seja o equivalente).

    
por disserman 21.04.2010 / 21:15

1 resposta

3

Em solaris normalmente você precisa estender o intervalo de portas de origem (que é somente 16k por padrão) e reduzir o intervalo time_wait que é definido como 240 segundos por padrão, caso contrário você acaba sem porta livre para estabelecer saída conexões. Infelizmente, eu não lembro os nomes dos parâmetros agora, da memória que estava em / dev / tcp, e o timeout era algo como tcp_timewait_interval, e as portas podem estar em min_port e max_port.

Você também pode precisar aumentar o número máximo de descritores de arquivos se os seus servidores atrás do haproxy demorarem muito tempo para responder, a fim de suportar um número maior de soquetes simultâneos. Eu me lembro de algo como "fdlim_cur" e "fdlim_max" no / etc / system que eram não definido por padrão. Lembro que você teve que reiniciar depois de trocar esses, não sei se esse ainda é o caso do solaris 10. Infelizmente, faz anos que eu não fiz alguns ajustes lá: - /

Esperando que isso ajude!

    
por 22.04.2010 / 00:01

Tags