Valores altos de Tq para HAProxy

6

Acabei de assumir a administração de um novo ambiente. Um problema conhecido é que o ambiente é conhecido por tempos de resposta altos (mais de 20 segundos), então imaginei ativar o log haproxy e ver o que está acontecendo. Imaginei que veria tempos de carregamento lento nos servidores de aplicativos, mas na verdade estou vendo valores altos de Tq no HAProxy. O HAProxy está no EC2 e NÃO está atrás do ELB.

Sep  5 14:22:00 haproxy-apps01 haproxy[24695]: 76.14.153.221:3371 [05/Sep/2012:14:21:49.780] http-in default_apps/fe04-c 10936/0/0/55/10991 200 488 - - ---- 111/111/0/1/0 0/0 "GET /event_times/next?callback=jQuery170189312373075111_1346854917562&_=1346854918453 HTTP/1.1"

Como você pode ver, este tem um Tq de aproximadamente 10 segundos. Nem todos os Tq's são altos (1+ segundos), mas uma boa porcentagem deles é (aproximadamente 35%). Normalmente, quando vejo esse comportamento, espero que haja problemas de rede, mas essa é uma porcentagem incrivelmente alta de visitantes que estão tendo um problema como esse, então estou pensando se alguém já viu isso ou tem alguma sugestão para diagnosticar se o problema pudesse estar nessa caixa?

    
por Will 05.09.2012 / 16:29

2 respostas

4

Os tempos Tq altos nem sempre são indicativos de um problema, é http-server-close set?

De acordo com a documentação:

Setting "option http-server-close" may display larger request times since "Tq" also measures the time spent waiting for additional requests.

Por exemplo, isso é definido para o estouro de pilha e, como alguns dados de exemplo, a consulta a seguir:

Select Top 20 Tq from LogsLastTwoDays WITH (NoLOCK) WHERE
CreationDate > DATEADD(minute, -5, GETUTCDATE()) AND 
ResponseCode = 200 AND Host = 'stackoverflow.com'
ORDER by Tq DESC

Rendimentos:

Tq    
----- 
14990 
14987 
14986 
14983 
14974 
14972 
14972 
14965 
14964 
14964 
14962 
14961 
14960 
14955 
14952 
14951 
14945 
14943 
14935 
14932 

Isso ocorre porque, com http-server-close , a conexão é mantida aberta para o cliente (uma conexão persistente) por até timeout http-keep-alive 15s em nosso ambiente.

Eu costumo focar no Tr primeiro, porque isso mostra o tempo de resposta entre o LB e o servidor.

    
por 05.09.2012 / 16:33
4

Colocar sua configuração em algum lugar pode ajudar.

Isso pode estar relacionado à configuração de tempo limite e também ao modo HTTP. Como Kyle mencionou, eu teria que votar primeiro na opção http-server-close. Como você não o habilitou, pode estar sob um ataque lento.

Você poderia configurar um parâmetro "timeout http-request" para 5s e ver se você ainda tem essa linha ou se eles foram substituídos por uma resposta 408?

felicidades

    
por 05.09.2012 / 17:21

Tags