2009-09-26 24 views
7

He desarrollado una aplicación que creará muchos archivos PDF y servirá esos archivos. (Su porción normal de Servlet-Buffering).Cómo verificar la escalabilidad de mi aplicación

¿Cómo puedo asegurarme de que mi aplicación funciona eficientemente con múltiples solicitudes? ¿Hay alguna herramienta disponible para probar la carga/escalabilidad/eficiencia y cuántas solicitudes paralelas maneja mi código con la configuración actual del servidor?

Respuesta

1

Usted debe considerar el uso de herramientas de prueba de carga como grinder o jmeter. Grinder admite scripts mientras que jmeter le permite convertir junit en un cliente de prueba de carga. A mí personalmente me gusta el jmeter debido a la compatibilidad con Junit y también su excelente control e informes gui. jmeter support http y soap out of the box. Además, puede escribir sus propios complementos para adaptarse a sus necesidades personalizadas.

1

También recomendaría JMeter. También puede registrar las solicitudes de página de su navegador para crear una prueba de JMeter (HTTP Proxy Server).

1

También debe tener herramientas de vigilancia en su lugar para ver cómo se comporta la aplicación bajo carga.

Un buen comienzo es jvisualvm, que se encuentra en el último Sun JDK.

1

Lo más simple que puede hacer es Apache benchmark, que probablemente ya esté instalado si está ejecutando un sistema basado en Unix o viene con Apache Webserver 2.x para Windows.

Ejemplo de uso;

$ ab -n 1000 -c 20 http://www.google.com/ 

Me da esta salida;

This is ApacheBench, Version 2.3 <$Revision: 655654 $> 
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ 
Licensed to The Apache Software Foundation, http://www.apache.org/ 

Benchmarking www.google.com (be patient) 
Completed 100 requests 
Completed 200 requests 
Completed 300 requests 
Completed 400 requests 
Completed 500 requests 
Completed 600 requests 
Completed 700 requests 
Completed 800 requests 
Completed 900 requests 
Completed 1000 requests 
Finished 1000 requests 


Server Software:  gws 
Server Hostname:  www.google.com 
Server Port:   80 

Document Path:  /
Document Length:  218 bytes 

Concurrency Level:  20 
Time taken for tests: 1.826 seconds 
Complete requests:  1000 
Failed requests:  0 
Write errors:   0 
Non-2xx responses:  1000 
Total transferred:  807000 bytes 
HTML transferred:  218000 bytes 
Requests per second: 547.55 [#/sec] (mean) 
Time per request:  36.527 [ms] (mean) 
Time per request:  1.826 [ms] (mean, across all concurrent requests) 
Transfer rate:   431.51 [Kbytes/sec] received 

Connection Times (ms) 
       min mean[+/-sd] median max 
Connect:  9 12 14.7  10  337 
Processing: 11 24 26.8  17  306 
Waiting:  11 22 21.1  16  297 
Total:   21 36 30.5  28  350 

Percentage of the requests served within a certain time (ms) 
    50%  28 
    66%  36 
    75%  39 
    80%  41 
    90%  45 
    95%  54 
    98%  93 
    99% 253 
100% 350 (longest request) 
0

Apachebench es una herramienta de un solo hilo. Significa que no podrá saturar un servidor SMP (muti-thread o multiproceso).

Debería considerar weighttp, que usa la sintaxis AB (la única diferencia es que -t 4 significa utilizar 4 subprocesos de trabajo en lugar de una prueba de 4 segundos).

Cuestiones relacionadas