웹서버 스트레스 테스트

리눅스/APACHE|2015. 1. 16. 16:44
반응형

웹서버 스트레스 테스트

 

방법 1.
    

    - ab 사용법 
         -n requests 요청을 수행할 개수 
         -c concurrency 요청을 만들 개수로 동시 사용자 개념  
         -v verbosity 얼마나 자세한 정보를 화면에 출력해 줄 것인지 결정 
         -w HTML 문서형식으로 테이블로 만들어 결과를 화면에 출력 
         -k HTTP 프로토콜의 지속연결 (KeepAlive) 기능을 사용 
 
        ./ab -n 100 -c 10 http://www.xxxxx.com:80/ 
        10 명의 유저가 동시에 http://www.xxxxx.com/index.html 을 요청 
        각각의 시뮬레이트 유저는 요청을 10 번씩 하게 됩니다. 
 
        ab -n 1500 -c 50 http://www.xxxxx.com:80/ 
        요청을 30 x 50 (50 명의 사용자가, 각각 30 번의 요청)

 

방법 2.


     가끔 네트웍 카드를 테스트 해야 할 경우가 있는데, 이 때 최대로 트래픽을 주는 방법입니다. 
     우선 순수하게 네트웍 트래픽만을 이용하여 부하를 줘야 하기 때문에 disk나 기타 다른 IO장 
     치의 영향을 최소화 해야 합니다. 이를 위하여 /dev/zero와 /dev/null 가상 장치를 이용 합니다. 
 
     우선 테스트 할 기계를 A라고 하고 그 상대로 B라는 기계를 준비 합니다. 물론 B는 A보다 적어도 
     많은 밴드위스를 지원하는 네트웍 카드가 장착 되어 있어야 하겠죠.

 

    1. A와 B 모두 rsh이 가능 하도록 .rhost등을 설정 합니다. 
 
    2. B로 root로긴 하여 다음 명령을 실행 합니다. 
 
          # dd if=/dev/zero | rsh A dd of=/dev/null &

         최대의 부하를 주기 위해 위 명령을 두 세번 반복 합니다.

 

    3. A로 로긴 하여 netstat -i 명령으로 트래픽을 확인 하실 수 있습니다. 
 
         # netstat -i 1 
         input le0 output input (Total) output 
         packets errs packets errs colls packets errs packets errs colls 
         825933 0 606554 0 0 853023 0 633644 0 0 
         730 0 366 0 0 730 0 366 0 0 
         848 0 427 0 0 848 0 427 0 0 
         815 0 413 0 0 815 0 413 0 0 
         849 0 425 0 0 849 0 425 0 0 
         868 0 436 0 0 868 0 436 0 0 
         862 0 432 0 0 862 0 432 0 0 
 
     위의 결과 10Mbps 인터페이스인 le0 의 in + out 패킷은 초당 평균 약 1300개 정도이고 
     이것은 1300 * 1500Bytes (MTU) = 1.95MBytes/s 가 되겠네요. 이를 다시 bps로 바꾸면 
     15.6Mbps 가 되고 full duplex이므로 괜찮은 throughput 이라고 할 수 있습니다. 
 
     4. 확인이 끝났으면 B에 실행 되고 있던 백그라운드 작업을 kill 명령으로 종료 시킵니다. 


방법3 (프로그램 툴사용) siege

 

    시즈의 특징 
 
     '시즈’라는 이름은 이 툴의 모든 것을 말한다. 서버를 에워싸 서버가 어떤 이유로 문제를 
     일으켰는지를 보여주는 것이다. 유닉스 기반의 명령행 기반 툴인 시즈는 GNU GPL 오픈소스 
     라이선스를 따르기 때문에 사용, 수정, 배포가 모두 무료다. 
 
     시즈는 단일 URL의 부하 테스트는 물론 많은 URL을 메모리로 불러들여 사용자가 설정한 
     시뮬레이션 유저만큼의 부하를 동시에 테스트할 수 있다. 또한 기록된 총히트수와 전송된 
     바이트수, 반응시간, 병행성(Concurrency), 리턴 상태 등을 보여주며, HTTP 1.0/1.1 프로토콜, 
     GET/POST 디렉티브, 쿠키, 트랜잭션 로깅, 기본적인 인증 등을 지원한다
 
     builder.com 사이트에서 다운로드

     tar zxvf siege-latest.tar.gz
     ./configure
     make
     make install

 

    - 실행하기 
 
     시즈는 웹서버를 테스트하는 다양한 옵션을 제공한다. 가장 간편한 실행 방법은 단일 URL 
     테스트다. 이것은 특정 페이지가 대량 트래픽에 어떻게 반응하는지를 잘 보여준다. 이때 
     중요한 옵션 두 가지가 동시 접속자수(-c 옵션, 디폴트는 10)와, 반복 쿼리수 혹은 시간으로 
     표현되는 테스트 기간(-t)이다. 예를 들어 25명이 동시에 1분간 접속하는 환경이라면 다음과 
     같이 실행하면 된다. 
 
     $ siege -c25 -t1M [테스트될 주소](www.naver.com)

 

 

[출처] 잡동사니 | 풍운아 (http://blog.paran.com/bandi2030/21544231)

반응형

댓글()