2009-09-26 6 views
7

많은 PDF 파일을 만들고 해당 파일을 제공하는 응용 프로그램을 개발했습니다. (정상적인 Servlet-Buffering 서빙).내 응용 프로그램의 확장 성을 확인하는 방법

내 요청이 여러 요청을 통해 효율적으로 작동하는 것을 확인하는 방법은 무엇입니까? 로드/확장 성/효율성을 테스트하는 데 사용할 수있는 도구가 있습니까? 현재 서버 구성에서 코드가 처리하는 병렬 요청 수는 얼마나됩니까?

답변

1

같은로드 테스터를 사용할 수 있습니다. 그라인더는 스크립팅을 지원합니다. jmeter를 사용하면 junit을로드 테스트 클라이언트로 전환 할 수 있습니다. 개인적으로 junit 지원과 jQuery 제어 및보고 기능 때문에 jmeter를 좋아합니다. jmeter는 HTTP와 비누를 지원합니다. 또한 사용자 정의 요구에 맞게 플러그인을 작성할 수 있습니다.

1

JMeter도 권장합니다. 브라우저의 페이지 요청을 기록하여 JMeter 테스트 (HTTP Proxy Server)를 생성 할 수도 있습니다.

1

응용 프로그램이로드 상태에서 작동하는 방식을 확인하려면 감시 도구가 있어야합니다.

좋은 시작은 최신 Sun JDK에있는 jvisualvm입니다.

1

당신이 할 수있는 가장 간단한 방법은 Unix 기반 시스템을 실행 중이거나 Windows 용 Apache Webserver 2.x와 함께 제공되는 경우 이미 설치된 Apache 벤치 마크입니다.

예제 사용;

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

이 출력을 제공합니다.

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은 단일 스레드 도구입니다. 이는 SMP 서버 (다중 스레드 또는 다중 프로세스)를 포화시킬 수 없음을 의미합니다.

AB 구문을 사용하는 weighttp을 고려해야합니다 (유일한 차이점은 -t4는 4 초 테스트 대신 4 개의 작업자 스레드를 사용한다는 것입니다).

관련 문제