2009-10-28 13 views
13

Tengo el servicio .Net que escucha en un solo puerto a través del protocolo TCP. Los clientes se conectan y luego transmiten los datos durante un tiempo (de unos minutos a varias horas).Conexiones tcp/ip máx. En Windows Server 2008

¿Existe algún límite en la cantidad de conexiones en el servidor de Windows 2008? No golpeé ninguna, ya que ahora hay hasta 50 usuarios. Plan es tener miles de usuarios, por lo que me gustaría saber si habrá problemas en el futuro.

Editar:
Como respondió la nube, parece que hay algunos límites en algunas versiones de Windows Server 2008. ¿Hay alguna referencia en esos límites? Probé con Google, pero devuelve artículos en el límite de conexiones tcp a medio camino.

Respuesta

17

¿Cuántos miles de usuarios hay?

He realizado algunas pruebas de conexión cliente/servidor TCP/IP en el pasado en Windows 2003 Server y administré más de 70,000 conexiones en una VM de especificación razonablemente baja. (mira aquí para más detalles: http://www.lenholgate.com/blog/2005/10/the-64000-connection-question.html). Me sorprendería enormemente que Windows 2008 Server se limite a menos de 2003 Server y, en mi humilde opinión, la publicación a la que se vincula la nube es demasiado vaga para ser de mucha utilidad. Este tipo de pregunta surge mucho, escribí sobre por qué realmente no creo que sea algo de lo que realmente deba preocuparse aquí: http://www.serverframework.com/asynchronousevents/2010/12/one-million-tcp-connections.html.

Personalmente lo probaría y vería. Incluso si no hay un límite inherente en la versión de Windows 2008 Server que pretenda utilizar, seguirá habiendo límites prácticos basados ​​en la memoria, la velocidad del procesador y el diseño del servidor.

Si desea ejecutar algunas pruebas "genéricas", puede utilizar mi prueba de conexión multicliente y el servidor de eco asociado. Detallado aquí: http://www.lenholgate.com/blog/2005/11/windows-tcpip-server-performance.html y aquí: http://www.lenholgate.com/blog/2005/11/simple-echo-servers.html. Estos son los que solía ejecutar mis propias pruebas para mi infraestructura de servidor y esto es lo que me permitió crear 70,000 conexiones activas en una máquina virtual de Windows 2003 Server con 760MB de memoria.

editar para agregar detalles del comentario abajo ...

Si ya está pensando en varios servidores que tomaría el siguiente enfoque.

  1. Utilice las herramientas libres que me enlace a y demostrar a sí mismo que puede crear un número razonable de conexiones en el sistema operativo de destino (cuidado con los límites de Windows en puertos dinámicos que pueden causar que su conexiones de cliente fallaron, busque para MAX_USER_PORT).

  2. durante el desarrollo de la prueba regularmente su servidor real con la prueba clientes que pueden crear conexiones y en realidad hacer algo '' en el servidor . Esto ayudará a evitar que construya el servidor de manera que restrinja su escalabilidad. Vea aquí: 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

Gracias por la información. Estamos trabajando en juegos multijugador, donde los jugadores se dividen en salas, similar al póker. Cuantos miles, tanto como podemos poner en el servidor. Con suerte, podremos atender a 50,000-100,000 usuarios por servidor. – zendar

+3

Dado que ya está pensando en varios servidores, tomaría el siguiente enfoque. Primero use las herramientas gratuitas a las que me enlace y compruebe que puede crear una cantidad razonable de conexiones en su sistema operativo objetivo (tenga cuidado con los límites de Windows en puertos dinámicos que pueden causar conexiones de clientes fallidas, busque MAX_USER_PORT) . 2º durante el desarrollo prueba regularmente tu servidor real con clientes de prueba que pueden crear conexiones y realmente 'hacer algo' en el servidor. Esto ayudará a evitar que construya el servidor de forma que restrinja su escalabilidad. –

+1

¿Podría poner un consejo de su comentario en respuesta? Es información valiosa y realmente debería ser parte de la respuesta. – zendar

3

Hay un límite en el número de half-open connections, pero afaik no para las conexiones activas. A pesar de que parece depender del tipo de servidor de Windows 2008, al menos de acuerdo a this MSFT employee:

Depende de la edición, web y ediciones Foundation tienen conexión límites mientras que Standard, Enterprise y centro de datos no lo hacen .

+1

Disculpe la ignorancia, pero ¿qué es la "conexión a medio abrir"? – zendar

+0

Agregué un enlace en las conexiones semiabiertas que deberían explicarlo – pyrocumulus

+0

Para mejorar esta respuesta, se apreciaría un enlace al límite del límite medio abierto/conexiones embrionarias en W2K8. – Dereckson

Cuestiones relacionadas