10k-20k conexões TCP no (s) servidor (es) windows

4

Que tipo de configuração eu preciso para um servidor (es) baseado em Windows para suportar conexões TCP 10K-20K simultaneamente? 99% dessas conexões só enviarão sinais de keep alive (mas permanecerão ativos) com intervalo de 60 segundos e o restante 1% enviará / receberá dados XML a qualquer momento.

Alguém pode me sugerir o tipo de infraestrutura que eu preciso configurar para o requisito acima?

    
por Ramesh Soni 04.03.2010 / 09:35

2 respostas

3

Isso é um monte de conexões!

Desde que tudo não se conecte exatamente ao mesmo tempo ou seu aplicativo permita enfileirar / um pouquinho de latência, eu realmente não acho que você terá um problema com relação à CPU ou à memória, desde que você obtenha uma média caixa moderna (mínimo quad core, 4-8GB de memória), mas eu acho que você vai querer dar uma olhada séria Equipamento de rede Intel e ajustes no Windows Networking (por exemplo, veja aqui , mas essa lista é bastante velho e não tenho certeza de quantos ainda se aplicam).

Se, no entanto, você realmente quiser se preparar para grandes cargas de conexões, o real a ser observado é agrupar seu ambiente - no entanto, se esse for um aplicativo personalizado, você poderá ter um pequeno problema.

Além disso, para essa quantidade de conexões, você precisará analisar toda a sua infraestrutura - por exemplo, roteadores / comutadores mais rápidos / avançados.

    
por 04.03.2010 / 09:44
0

Espero que você tenha escrito um servidor baseado em eventos, em vez de um baseado em encadeamento, evitando o uso de 1 MB de pilha por conexão. Supondo que, o kernel do Windows deve ser capaz de lidar com esse número de soquetes abertos com o mínimo de alteração na configuração. Consulte o link .

Você também desejará examinar as portas de conclusão do Windows IO para fazer o E / S da rede assíncrona mais eficientemente do que usar um loop select ().

Você planeja fazer isso com um servidor da Web segmentado para fins gerais, como o IIS? Em caso afirmativo, pense novamente (um thread por conexão = falha massiva com conexões de 20K).

    
por 30.09.2010 / 22:48