¿Cómo mejorar Windows Server 2008 R2 para manejar muchas conexiones?

9

Han pasado unos días hasta ahora que estoy tratando de imaginar cómo resolver este problema. En primer lugar, estoy ejecutando un sitio web con una vista de página diaria promedio de 350,000. Anteriormente, toda la administración de anuncios (seguimiento de clics e impresiones que cada anuncio había servido) y el contenido se servían en un solo servidor con la siguiente especificación:

Servidor 1
SO: Windows 2008 R2 de 64 bits
CPU: Intel® Core ™ i5 - 4 núcleos
RAM: 8 GB
Almacenamiento: 2 discos duros de 1 TB
Ancho de banda: 10 TB por mes

Para mejorar la velocidad de nuestro sitio web, decidí separar el script de administración de anuncios en otro servidor dedicado porque tenemos más de 15 anunciantes a 30 anunciantes por cada página.

Servidor 2
SO: Windows 2008 R2 de 64 bits
CPU: Intel® Core ™ i5 - 4 núcleos
RAM: 4 GB
Almacenamiento: 2 discos duros de 300 GB
Ancho de banda: 10 TB por mes

El problema
El problema es que Server 1puede manejar tanto el contenido como el sistema de anuncios. Ahora, que quito el sistema de anuncios y lo pongo en Server 2. Server 2Apenas puede servir solo el sistema de anuncios.

Prueba

  • En primer lugar, moví el 75% de los anuncios a Server 2. Y luego, realizar un ping al servidor: ping -t xxxxx. [Hice el ping durante 10 minutos y sigue un patrón similar al siguiente]
Respuesta de xxxxx bytes = 32 tiempo = 290 ms TTL = 116
Respuesta de xxxxx bytes = 32 veces = 289 ms TTL = 116
Respuesta de xxxxx bytes = 32 tiempo = 320 ms TTL = 116
Respuesta de xxxxx bytes = 32 tiempo = 286 ms TTL = 116
Respuesta de xxxxx bytes = 32 tiempo = 286 ms TTL = 116
Respuesta de xxxxx bytes = 32 tiempo = 348 ms TTL = 116
Respuesta de xxxxx bytes = 32 tiempo = 284 ms TTL = 116
  • Luego, moví el 100% de los anuncios a Server 2. Luego, realice un ping al servidor nuevamente. [Hice el ping durante 10 minutos y sigue un patrón similar al siguiente]
Respuesta de xxxxx bytes = 32 tiempo = 290 ms TTL = 116
Tiempo de espera agotado
Respuesta de xxxxx bytes = 32 tiempo = 320 ms TTL = 116
Respuesta de xxxxx bytes = 32 tiempo = 286 ms TTL = 116
Tiempo de espera agotado
Tiempo de espera agotado
Respuesta de xxxxx bytes = 32 tiempo = 284 ms TTL = 116

Intentos

  1. Aumentar MaxUserPortyTcpNumConnection
  2. Reiniciar el servidor
  3. Aumentar IIS Max InstancesyInstance MaxRequests

Recurso del servidor

  • Solo se utiliza el 10% -15% de la conexión de red
  • Solo se utiliza el 10% -15% de la CPU
  • Solo se usa el 25% de la memoria
Monkey D Luffy
fuente
3
En mi opinión, esta es una pregunta bien formada y digna de votos positivos, pero todavía siento que nos faltan algunas pistas para ayudarnos a resolver el enigma.
Ryan Ries
@RyanRies, dale al puntero la información que falta para resolver este enigma. En este momento, tengo el 75% de los anuncios en el Servidor 2 y el 25% de los anuncios en el Servidor 1. Ahora funciona bastante bien, pero no puedo pasar completamente al Servidor 2.
Monkey D Luffy
1
Estoy de acuerdo con @RyanRies: nos falta algo. Examinaría la forma en que se construye el sistema de publicación de anuncios: podría ser que existe una dependencia entre el contenido y los servicios de publicación de anuncios que causa la demora excesiva.
Stephane
@Stephane no, eso debería y no causaría pings perdidos. Los pings no son manejados por el código de publicación de anuncios sino por la pila TCP directamente. Lo que básicamente significa que deberían funcionar a menos que el Servidor esté LOCALMENTE sobrecargado. Esto realmente parece, según mi respuesta, que el ancho de banda simplemente no está allí. Antes del servidor.
TomTom
Algunas cosas que faltan aquí son 1) ¿qué puede cambiar / no cambiar en su entorno? 2) ¿Cómo están configurados los servidores web por disco? 3) ¿son los tiempos de red internos de donde estás o es un servidor remoto? Si es un servidor remoto, ¿qué tan lejos está? 4) si necesita mejorar su servidor, ¿cuál es su libertad presupuestaria para agregar hardware a la combinación en todos los ámbitos? 5) ¿Los registros de eventos arrojan algún error? 6) No veo resultados de las capturas de perfmon a la altura del tráfico 7) ¿cuáles son sus números únicos de visitantes? 8) ¿has filtrado el tráfico basura?
Techie Joe

Respuestas:

4

Bueno, empecemos. Esto es mas largo.

Usted juzgó completamente mal los hechos que parece. Windows, incluso el anticuado 2008 R2 que debe actualizar lo antes posible, es completamente capaz de manejar un volumen que mi teléfono móvil no tiene problemas para manejar.

Entonces, eso deja 3 posibles áreas de problemas:

  • Instalación. Sus conductores pueden ser malos. Dado que ejecuta un sistema operativo desactualizado, ¿qué tan buenos son sus controladores? Actualícelos: esto PUEDE causar todo tipo de problemas.

  • Red. Esto se ve seriamente como "Mi automóvil es demasiado lento, por favor ayúdeme a hacerlo más rápido" cuando el problema es que pasa la mayor parte del tiempo en un embotellamiento y se queja de que el tráfico no se mueve. No es un problema de sintonización de automóviles. El tráfico de 10tb no dice nada sobre la congestión de la red. Observe las estadísticas de tráfico de su red en su NIC y luego reaccione en consecuencia: si no se superan a la velocidad que deberían ... su proveedor ha sobrevendido. Tan simple como eso.

  • Código. Podría necesitar más RAM (la computadora está ocupada cambiando a RAM en lugar de procesar) o la codificación deficiente está utilizando toda su CPU en un grado que hace que la pila TCP a nivel del núcleo no reaccione correctamente (sí, las respuestas ICMP son tan bajas). Esto sería brutal, pero es otra vía para verificar. También podría ser que sobrecargues los discos accediendo a ellos con demasiada frecuencia en lugar de almacenar en caché en la RAM, pero de alguna manera no veo que eso conduzca a pings perdidos. Sin embargo, cualquier problema aquí no es algo que un administrador pueda manejar: tiene que tirarle hardware o tomar un palo y golpear al programador hasta que lo arregle (si es un error de nivel "estúpido" que afecta el rendimiento) Si no es así, es mucho más difícil obtener ganancias serias y puede ser que necesite hardware más robusto).

Definitivamente no requiere ajuste de ventanas: una ventana bien configurada puede ofrecer MUCHO más que eso. Mis servidores de archivos regularmente ß durante períodos de tiempo más largos: entregan 4-6 gigabit desde una configuración relativamente común.

Ahora, todos los números que das no dicen nada en serio.

  • Se utiliza 10-15% de CPU PODRÍA significar intercambio.
  • Es probable que se use un 25% de memoria, es un buen indicador ahora que se realiza el intercambio, pero aún podría significar que la CPU está esperando IO.
  • Se utiliza el 10% -15% de la red significa absolutamente nada porque es solo SU lado de la red. ¿Qué pasa aguas arriba? ¿Qué pasa si el proveedor está poniendo 20 servidores con 1 gigabit en un enlace ascendente de 1 gigabit desde el rack y eso se desborda como el infierno?

El último punto es bastante probable: los paquetes descartados son un buen indicador de ello. Y esto no será visible para ti.

Mi consejo ... apague cualquier cosa en una máquina por un momento, haga una prueba de velocidad externa con un archivo estático grande. Apuesto a que te encuentras con congestión más arriba.

Cualquier cosa que haya hecho hasta ahora (maxuserport, tcpnumconnection, reiniciar el servidor, jugar con la configuración de IIS) está totalmente desactivada y no hace nada en el mejor lugar. Golpear un martillo con un automóvil lento nunca arregla nada, especialmente si el automóvil es lento porque se encuentra en un atasco. Deshacería todos los cambios y comenzaría a analizar el problema, no solo su servidor. Apostaría a la congestión de la red en este momento.

TomTom
fuente
3
even the outdated 2008 R2 which you should update ASAP- Vamos, TomTom, ponte firme. 2008 R2 todavía está dentro del soporte general y está muy lejos de salir del Soporte Extendido que es en 2020, creo ...
Dan
44
"2008 R2 desactualizado que debe actualizar lo antes posible": eso es incorrecto (2008R2 no está "desactualizado" y no debe actualizarse "solo porque") y no tiene sentido en el contexto de la respuesta. El resto hace poco para mejorar su respuesta, ya que no proporciona un paso útil para identificar el problema, mucho menos solucionarlo, solo proporciona consejos genéricos (y solo ligeramente sobre el tema) sobre el rendimiento.
Stephane
En realidad es porque adivina lo que cambió seriamente más tarde: la pila de IP. La escalabilidad es un punto. Entonces, sí, en el contexto dado lo es. Las actualizaciones deberían realizarse lo antes posible, porque adivina qué, TÚ no mejorarás tus cosas con el tiempo, la mayoría de las empresas lo hacen. 2012 R2 es mejor que 2008 R2.
TomTom
Usando speedtest.net, el enlace ascendente y el enlace descendente son alrededor de 100mbps.
Monkey D Luffy
Hay dos software de dependencia para el sistema de anuncios: memcached y MySQL. Realiza un seguimiento de todas las impresiones y hace clic en la memoria caché y actualiza a MySQL una vez cada 10 minutos.
Monkey D Luffy
0

¿Los pings son externos a los dos servidores? Si es así, intente hacer ping del servidor uno al servidor dos. Si los resultados son totalmente diferentes de cuando se hace ping externamente, eso muestra que el problema puede no deberse al servidor dos. Además, eche un vistazo en el monitor de recursos para conocer la longitud de la cola del disco para las unidades y el tiempo activo; es más información que puede resaltar un problema.

Ross Buggins
fuente
Ya lo he intentado. Usé el Servidor 1 para hacer ping al Servidor 2 y el ping aún se cae si pongo más anuncios.
Monkey D Luffy
1
La conexión entre el servidor 1 y el servidor 2, ¿es a través de su propio hardware? ¿O es el interruptor del centro de datos? Solo trato de determinar si cuando pinchaste estabas pasando por un hardware de CC que podría haber estado causando congestión. ¿Tienes algo en IIS / Windows que esté bloqueando dinámicamente las solicitudes? ¿Sin protección de dos que bloquea solicitudes legítimas? El sistema, ¿es ASP.NET y el db es MySQL?
Ross Buggins