http 로드 테스트 siege

siege는 리눅스 기반의 http 로드테스트 도구 입니다.

siege는 짧은 시간안에 수많은 트래픽을 쉽게 보낼수 있습니다.


수백개의 http 리퀘스트를 특정 url로 보낼수 있죠.


이러한 기능을 이용해서 스트레스테스트가 가능합니다.



일단 다운받아보죠.


# wget http://www.joedog.org/pub/siege/siege-latest.tar.gz



http://www.joedog.org/pub/siege/siege-latest.tar.gz 이 경로에서 항상 최신 버전의 siege를 다운받을 수 있습니다.


압축을 풉니다.


#tar xvfz siege-latest.tar.gz



SSL이 없으면 설치하세요. siege는 https도 테스트가 가능합니다.


# yum install mod_ssl openssl


압축을 풀었으니 압축을 푼 siege 폴더로 이동합니다. 버전이 표시된 폴더가 생성되어 있을거예요.


# cd siege-2.72/


자 이제 설치해볼까요.


저는 ssl 경로를 추가하여 설정하겠습니다.



# ./configure --with-ssl=/usr/bin/openssl



checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... no
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for style of include used by make... none
checking for gcc... no
checking for cc... no
checking for cc... no
checking for cl... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.



이 과정에서 만약 위의 에러를 만난다면 아래의 명령어로 gcc를 설치한다음에 다시 시도합니다.


# yum install gcc*
# ./configure --with-ssl=/usr/bin/openssl



자 성공했다면


# make
# make install


만약 make 명령어를 입력하였는데 command not found 가 나타난다면


make도 설치해주세요.


# yum install make



설치가 되었다면 보통 /usr/local/bin 에 설치가 되어있을 거예요.


해당 디렉토리가 PATH에 등록이 되어 있다면


# siege -V


위 명령어로 설치가 잘되었는지 확인할 수 있습니다.



만약 PATH에 등록되어 있지 않다면 /usr/local/bin 폴더로 이동하여 실행하시면 됩니다.


# cd /usr/local/bin
# ./siege -V




자 이제 설치는 끝났고, 사용방법은 매우 쉽습니다.

만들고 싶은 만큼의 사용자(-c)와 시간(-t), 딜레이(-d)를 설정하여 테스트 할수 있습니다.


# siege -c25 -t1M -d1 www.example.com

# siege -c25 -t1M -d1 https://www.example.com


이 명령어는 25명의 가상의 유저가 1분동안 1초 간격으로 계속해서 접속한다는 의미입니다.


기본적으로는 http 프로토콜을 이용하고 https 프로토콜을 이용하는 경우에는 https를 적어주세요.




제가 포스팅하는 현시점에 siege 최신버전이 2.72버전입니다.


그런데 특정 환경에서 2.72버전에서의 https 프로토콜 테스트가 동작하지 않는다고 하네요.


이런 경우에는 2.70 버전을 설치하면 잘된다고 합니다.



모든 테스트를 마치면 아래의 결과보고서가 나타납니다.

Transactions:                   22188 hits
Availability:                 100.00 %
Elapsed time:                 599.61 secs
Data transferred:               0.19 MB
Response time:                  0.18 secs
Transaction rate:              37.00 trans/sec
Throughput:                     0.00 MB/sec
Concurrency:                    6.57
Successful transactions:       22188
Failed transactions:               0
Longest transaction:            0.58
Shortest transaction:           0.17



Availability 가 100%보다 미달인 경우 해당 수치만큼 일부가 접속을 하지 못했다는 의미입니다.


이러한 지표를 통해서 서비스운영품질을 높여나갈수 있어요.


모두 화이팅!

| 1 | ··· | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | ··· | 1883 |