2008-09-12 9 views
8

¿Cuánto tráfico puede manejar un servidor web? ¿Cuál es la mejor manera de ver si estamos más allá de eso?La mejor manera de determinar la cantidad de servidores necesarios

Tengo una aplicación ASP.Net que tiene un par de cientos de usuarios. Algunos aspectos son bastante intensivos en el uso de los procesadores, pero hasta ahora nos ha ido bien con un solo servidor para ejecutar SqlServer y el sitio. Está ejecutando Windows Server 2003, 3.4 GHz con 3.5 GB de RAM.

Pero últimamente he empezado a notar ralentizaciones varias veces, y me pregunto cuál es la mejor manera de determinar si el servidor está sobrecargado por el uso de la aplicación o si necesito hacer algo para arreglar la aplicación (Realmente no quiero perder mucho tiempo buscando pequeñas optimizaciones si estoy esperando demasiado de la caja).

Respuesta

7

Lo que se necesita es algo de información sobre Capacity Planning ..

La planificación de capacidad es el proceso de planificación de los períodos de uso pico de crecimiento y de pronóstico con el fin de cumplir con los requisitos del sistema y la capacidad de aplicación. Implica extensas pruebas de rendimiento para establecer la utilización de los recursos de la aplicación y el rendimiento de la transacción bajo carga. En primer lugar, mide la cantidad de visitantes que recibe el sitio actualmente y cuánta demanda cada usuario coloca en el servidor, y luego calcula los recursos informáticos (CPU, RAM, espacio en disco y ancho de banda de red) necesarios para respaldar el presente y el futuro niveles de uso.

1

Si tiene acceso a algunas herramientas de creación de perfiles (como las de la edición Team Suite de Visual Studio) puede intentar configurar un servidor de prueba y ejecutar algunas solicitudes sintéticas para ver si hay alguna parte específica del el código tarda demasiado en ejecutarse. Probablemente deberías verificar algunos gráficos del uso de la CPU y la memoria a lo largo del tiempo antes de hacer esto, para ver si puede ser eso. (Un número similar al "promedio de carga" de UNIX podría ser una medida útil, no sé si Windows tiene algo parecido. Básicamente es la cantidad promedio de subprocesos que desean tiempo de CPU para cada intervalo de tiempo).

También verifique lo obvio, que no se está quedando sin ancho de banda.

0

En ese hardware, una aplicación .NET debe poder atender aproximadamente 200-400 solicitudes por segundo. Si solo tiene unos pocos cientos de usuarios, dudo que esté viendo incluso 2 solicitudes por segundo, por lo que creo que tiene mucha capacidad en esa casilla, incluso con SQL Server ejecutándose.

Sin conocer todos los detalles, yo diría no, no verá ninguna mejora en el rendimiento agregando servidores.

Por cierto, si no está usando el Output Cache, comenzaría allí.

1

Mida, mida, mida. Rico Mariani siempre dice esto, y tiene razón.

Medida req/seg, RAM, CPU, Sesiones, etc.

Es posible llegar a una estrategia de almacenamiento en caché (caché de salida, el almacenamiento en caché de datos, dependencias de almacenamiento en caché, y así sucesivamente.)

Véase también cómo está funcionando su SQL Server ... los índices son un buen lugar para comenzar, pero no es lo único que se puede ver ...

Cuestiones relacionadas