MaxKeepAliveRequests para IIS7 (com NLB)

1

Temos um IIS7 em execução em vários nós em um cluster NLB. Os nós do NLB são definidos como Affinity: None para que novas conexões sejam distribuídas entre eles. Queremos que o KeepAlive seja ligado para que possamos obter um melhor desempenho, mas estamos descobrindo que, quando um dos nós do cluster desaparece, todo o seu tráfego é transferido para outros nós, mas nunca volta. Apesar de estarmos executando serviços da Web, temos apenas alguns clientes que fazem tarefas intensivas de CPU, por isso estamos descobrindo que um servidor estará sendo danificado até a morte enquanto o outro estiver lá, sem fazer nada!

Gostaríamos de algo como o MaxKeepAliveRequests do Apache, que limita o número de solicitações em uma determinada conexão, para que o IIS force periodicamente os clientes a reconectarem-se e, portanto, equilibrarem o cluster.

Isso é algo que o IIS7 suporta? É isso que as pessoas "normais" fazem?

    
por David Newcomb 13.05.2011 / 19:44

2 respostas

1

Não consegui encontrar uma solução adequada, por isso escrevi a minha. Eu documentei as definições de configuração no IIS e no NLB. O artigo fornece o código do módulo HTTP que você precisa para implementar uma configuração MaxKeepAliveRequests para garantir que nenhum cliente permaneça colado ao mesmo nó no cluster NLB.

Equilíbrio de conexão no NLB usando IIS e MaxKeepAliveRequests

link

    
por 21.09.2011 / 13:08
1

Se for uma sessão verdadeiramente sem estado, você pode desabilitar completamente o KeepAlive no IIS7 com:

appcmd set config /section:httpProtocol /allowKeepAlive:false

Isso não deve adicionar uma quantidade significativa de sobrecarga se a maioria do trabalho for feita por apenas alguns clientes. Certifique-se de testá-lo primeiro.

    
por 13.05.2011 / 19:51