Limite de conexões TCP do Windows Server 2008

1

Eu corro meu próprio servidor de jogo feito em .net 4.5 em um VPS do Windows Web Server 2008. Eu fiz algumas pesquisas sobre um problema que tenho. Meu aplicativo não aceita clientes, se já houver 1.000 clientes conectados. Este aplicativo é basicamente um processo executando seis servidores Socket (cada um em uma porta diferente) e não tem limitações para clientes conectados em seu código. Aqui estão algumas estatísticas:

-------------------------------Server ID: 0 stats
[22-03-2014 14:37:39] Stats: Players online: 160
[22-03-2014 14:37:39] Stats: Connections: 164
-------------------------------Server ID: 1 stats
[22-03-2014 14:37:39] Stats: Players online: 515
[22-03-2014 14:37:39] Stats: Connections: 535
-------------------------------Server ID: 2 stats
[22-03-2014 14:37:39] Stats: Players online: 108
[22-03-2014 14:37:39] Stats: Connections: 111
-------------------------------Server ID: 3 stats
[22-03-2014 14:37:39] Stats: Players online: 59
[22-03-2014 14:37:39] Stats: Connections: 61
-------------------------------Server ID: 4 stats
[22-03-2014 14:37:39] Stats: Players online: 74
[22-03-2014 14:37:39] Stats: Connections: 75
-------------------------------Server ID: 5 stats
[22-03-2014 14:37:39] Stats: Players online: 52
[22-03-2014 14:37:39] Stats: Connections: 54
-----------------------------------Total stats
[22-03-2014 14:37:39] Stats: Total players: 968
[22-03-2014 14:37:39] Stats: Total connected: 1000

Clientes "Player" são jogadores logados, e "clientes / conexões conectados" é a quantidade de soquetes sendo escutada de cada vez (jogadores logados + jogadores logando). É uma limitação do Windows Web Server 2008?

    
por user2196536 22.03.2014 / 15:42

1 resposta

0

Parece-me que você pode estar violando o contrato de licença desde que está usando o 2008 Web Edition:

De Aqui :

Windows Web Server 2008 is specifically designed to be used as a single-purpose Web server . It is intended only for Internet accessible, front- end Web serving of Web pages, Web sites, and Web applications.

De qualquer forma, a Web Edition do Server 2008 realmente tem um limite de 10 conexões TCP simultâneas semiabertas , mas nenhum limite razoável em conexões TCP ativas, de acordo com este funcionário da Microsoft :

It depends on the edition, Web and Foundation editions have connection limits while Standard, Enterprise, and Datacenter do not.

Mas se você está sempre vendo o número de conexões ficar exatamente igual a 1000, de forma consistente, então ainda não estou convencido de que conexões TCP abertas pela metade sejam o seu problema. Não foi possível informá-lo mais sem examinar seu código.

Mas você provavelmente deve sair do Web Edition, já que o está usando para algo diferente de executar um servidor da web. Portanto, a melhor resposta que eu acho que você obterá, dadas as informações que você nos forneceu, não, não há limite de conexões TCP ativas que estejam em qualquer lugar perto de 1000, impostas pelo sistema operacional ou pela estrutura .NET. É capaz de lidar com muitos, muitos mais que isso.

Editar: Suponho que você poderia tentar alterar a chave de registro HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableConnectionRateLimiting para 0, mas isso pode ou não funcionar devido à sua Web Edition do Windows Server, bem como abrir você a possíveis ataques de negação de serviço (se Na verdade, você está tendo um problema com conexões TCP abertas pela metade, o que ainda não estou convencido de que você esteja. Execute um netstat e veja se você possui várias conexões que parecem estar presas em um estado SYN_SENT.)

    
por 22.03.2014 / 22:20