2009-10-28 7 views
13

J'ai un service .Net qui écoute sur un seul port via le protocole TCP. Les clients se connectent et transmettent des données pendant un certain temps (de quelques minutes à plusieurs heures).Connexions tcp/ip max sur Windows Server 2008

Le nombre de connexions sur le serveur Windows 2008 est-il limité? Je n'en ai pas touché, puisqu'il y a maintenant jusqu'à 50 utilisateurs. Plan est d'avoir des milliers d'utilisateurs, donc j'aimerais savoir s'il y aura des problèmes à l'avenir.

Edit:
que le Cloud a répondu, il semble qu'il ya des limites dans certaines versions de Windows Server 2008. Y at-il référence à ces limites? J'ai essayé Google, mais il renvoie des articles sur la limite des connexions tcp demi-liées.

Répondre

17

Combien de milliers d'utilisateurs? J'ai déjà effectué des tests de connexion client/serveur TCP/IP sous Windows 2003 Server et géré plus de 70 000 connexions sur une machine virtuelle à faible spécification. (Voir ici pour plus de détails: http://www.lenholgate.com/blog/2005/10/the-64000-connection-question.html). Je serais extrêmement surpris si Windows 2008 Server est limité à moins de 2003 Server et, à mon humble avis, l'affichage que les liens Cloud sont trop vague pour être beaucoup utilisé. Ce genre de question se pose beaucoup, j'ai blogué sur pourquoi je ne pense pas vraiment que c'est quelque chose que vous devriez vraiment vous inquiéter ici: http://www.serverframework.com/asynchronousevents/2010/12/one-million-tcp-connections.html.

Personnellement, je voudrais le tester et voir. Même s'il n'y a pas de limite inhérente à la version de Windows 2008 Server que vous avez l'intention d'utiliser, il y aura toujours des limites pratiques basées sur la mémoire, la vitesse du processeur et la conception du serveur.

Si vous souhaitez exécuter des tests 'génériques', vous pouvez utiliser mon test de connexion multi-client et le serveur d'écho associé. Détaillé ici: http://www.lenholgate.com/blog/2005/11/windows-tcpip-server-performance.html et ici: http://www.lenholgate.com/blog/2005/11/simple-echo-servers.html. C'est ce que j'ai utilisé pour exécuter mes propres tests pour mon infrastructure de serveur et ce qui m'a permis de créer 70 000 connexions actives sur une machine virtuelle Windows 2003 Server avec 760 Mo de mémoire.

Edité pour ajouter des détails du commentaire ci-dessous ...

Si vous envisagez déjà de plusieurs serveurs je l'approche suivante.

  1. Utilisez les outils gratuits que je lien vers et pour vous prouver que vous pouvez créer un nombre raisonnable de connexions sur votre système d'exploitation cible (méfiez-vous des limites de Windows sur ports dynamiques qui peuvent causer votre connexions client à échouer, recherche pour MAX_USER_PORT).

  2. au cours du développement tester régulièrement votre serveur réel avec le test clients qui peuvent créer des connexions et réellement « faire quelque chose » sur le serveur . Cela aidera à empêcher que vous construisiez le serveur de manière à restreindre son évolutivité à . Voir ici: http://www.serverframework.com/asynchronousevents/2010/10/how-to-support-10000-or-more-concurrent-tcp-connections-part-2-perf-tests-from-day-0.html

+0

Merci pour info. Nous travaillons sur le jeu multi-joueurs, où les joueurs sont divisés en salles - comme au poker. Combien de milliers - autant que nous pouvons mettre sur le serveur. Espérons que nous pourrons servir de 50 000 à 100 000 utilisateurs par serveur. – zendar

+3

Puisque vous pensez déjà à plusieurs serveurs, je prendrais l'approche suivante. 1er utilisez les outils gratuits auxquels je suis lié et prouvez que vous pouvez créer un nombre raisonnable de connexions sur votre système d'exploitation cible (attention aux limites Windows sur les ports dynamiques qui peuvent provoquer l'échec de vos connexions client, recherche MAX_USER_PORT) . 2ème pendant le développement régulièrement tester votre serveur avec des clients de test qui peuvent créer des connexions et réellement «faire quelque chose» sur le serveur. Cela vous évitera de construire le serveur de manière à restreindre son évolutivité. –

+1

Pourriez-vous s'il vous plaît mettre des conseils de votre commentaire en réponse. C'est une information précieuse et devrait vraiment faire partie de la réponse. – zendar

3

Il y a une limite au nombre de half-open connections, mais pas pour les connexions actives. Bien qu'il semble dépendre du type de serveur Windows 2008, au moins selon this MSFT employee:

Cela dépend de l'édition, Web et éditions Fondation ont des limites de connexion alors que Standard, Enterprise et Datacenter ne le font pas .

+1

Désolé pour l'ignorance, mais qu'est ce qu'une connexion semi-ouverte? – zendar

+0

J'ai ajouté un lien sur les connexions semi-ouvertes qui devraient l'expliquer – pyrocumulus

+0

Pour améliorer cette réponse, un lien vers la limite des connexions semi-ouvertes/embryonnaires limite sur W2K8 serait apprécié. – Dereckson