2009-09-05 12 views
5

Actualmente estoy trabajando en algunos códigos pesados ​​de Ajax y me pregunto cómo se escalará mi servidor a medida que más y más usuarios (afortunadamente) comiencen a usar mi aplicación web. Por el momento, solo estaba en mi servidor de prueba interno y me preguntaba cómo iba a simular unos cientos o miles de usuarios para poder ver cómo maneja una carga más pesada. Está escrito en PHP/MySQL y realmente no quería encontrar cientos de computadoras para configurar y probar manualmente :) Gracias de antemano, cualquier consejo o dirección es muy apreciada.Prueba de cómo escalar el código

Respuesta

11

Apache Benchmark. Se envía con el servidor web Apache. Funciona un poco como esto: Por 100 solicitudes utilizando 10 hilos simultáneos, utilice este comando:

ab -n 100 -c 10 http://localhost/ 

Vuelva a colocar la url localhost con una URL que su código AJAX se llama. El resultado le dará un buen informe sobre cómo se procesaron las solicitudes. Algunos de los números interesantes son:

Complete requests 
Failed requests 
Requests per second 
+0

En la misma línea que 'ab', hay Tsung - http://tsung.erlang-projects.org/ He estado usando y es una herramienta fantástica. – inerte

0

Lo que he hecho, lo que dará una idea muy aproximada, es escribir una aplicación que puede crear decenas o cientos de hilos, y golpeó al azar las docenas de servidores de veces cada una con usuarios únicos

Por lo tanto, tenía 100 usuarios de prueba únicos, y crearía 100 subprocesos y al azar seguiría haciendo algunas operaciones a intervalos aleatorios.

Esto le indicará si tiene algún problema de escala.

Sin embargo, al final, tendrá un problema, ya que solo tiene una conexión de red, por lo que acelerará un poco la velocidad, por lo que no es perfecta.

También puede usar junitperf para ayudar con esto, ya que puede ver si cada prueba tarda demasiado en responder.

La mejor opción es tomar estas pruebas, ponerlas en tantas máquinas como sea posible y ejecutarlas al mismo tiempo, tener 10 computadoras cada una simulando 10 o 100 personas es más efectivo que tener una computadora ser cada una de estas personas

No querrá que el servidor web y las pruebas estén en la misma computadora, de lo contrario se estropearán seriamente los resultados ya que el servidor web obtendrá solo algunos de los ciclos de la CPU.

0

Dado este problema, registraría una sesión de usuario. Luego, escriba el código del cliente que reproduce ese conjunto de llamadas.

Otra opción sería usar VMware. (tenga en cuenta que soy un empleado) Simplemente cree un montón de máquinas virtuales y conéctese a su sitio con cada una de ellas. Todavía significa mucho trabajo manual, pero al menos no necesita tantas máquinas para realizar las pruebas.

Cuestiones relacionadas