Apache Bench, ab는 아파치 서버의 성능을 검사하는 벤치마킹 도구이다.
다음의 옵션들을 적절히(?) 조합하여 아파치 웹서버에 request를 날릴 수 있다.
ab
[ -A auth-username:password ]
서버에게 BASIC Authentication 정보를 제공한다.
:
으로 구분한 사용자명과 암호를 base64 인코딩하여 전송한다. 서버가 정보를 요구하는지 (예를 들어, 401 인증 필요를 보내는지) 관계없이 문자열을 전송한다.
[ -c concurrency ]
동시에 요청하는 요청수. 기본적으로 한번에 한 요청만을 보낸다.
[ -C cookie-name=value ]
요청에
Cookie:
헤더를 추가한다. 아규먼트는 보통name=value
와 같은 쌍이다. 이 옵션은 여러번 사용할 수 있다.
[ -d ]
"percentage served within XX [ms] table"을 출력하지 않는다. (호환성을 위해).
[ -e csv-file ]
요청을 처리하는데 걸린 (밀리초 단위) 시간들의 (1%에서 100%) 누적백분율을 쉼표로 구분한 형식(CSV)으로 출력한다. 결과를 이미 '정리'하였기때문에 'gnuplot' 파일보다 보통 더 유용하다.
[ -g gnuplot-file ]
측정한 모든 값을 'gnuplot' 혹은 TSV (Tab separate values, 탭으로 구분한 값) 파일에 기록한다. Gnuplot, IDL, Mathematica, Igor, 심지어 Excel 같은 프로그램에서도 이런 파일을 쉽게 읽을 수 있다. 파일의 첫번째 줄에 항목이름이 나온다.
[ -h ]
사용법을 출력한다.
[ -H custom-header ]
요청에 헤더를 추가한다. 아규먼트는 보통 콜론으로 구분한 쌍인 (예를 들어,
"Accept-Encoding: zip/zop;8bit"
) 유효한 헤더줄이다.
[ -i ]
GET 대신
HEAD
요청을 한다
[ -k ]
HTTP KeepAlive 기능을 사용한다. 예를 들어, 한 HTTP 세션에서 여러 요청을 한다. 기본적으로 KeepAlive를 사용하지 않는다.
[ -n requests ]
성능을 검사하기위해 보내는 요청수. 기본값으로 요청을 한번만 보내기때문에 일반적인 성능검사 결과를 얻을 수 없다.
[ -p POST-file ]
POST 자료 파일. Post 방식으로 파일이 첨부된 리퀘스트를 전송할 때 사용한다.
[ -P proxy-auth-username:password ]
프록시를 통해 BASIC Authentication 정보를 제공한다.
:
로 구분한 사용자명과 암호를 base64 인코딩하여 전송한다. 프록시가 정보를 요구하는지 (예를 들어, 401 인증 필요를 보내는지) 관계없이 문자열을 전송한다.
[ -q ]
150개 이상 요청을 보낼때
ab
는 10% 혹은 매 100 요청당표준오류
에 진행상황을 출력한다.-q
옵션은 이 문구를 출력하지 않는다.
[ -s ]
기능을 추가하여 컴파일하였다면 (
ab -h
로 확인할 수 있다)http
프로토콜 대신 SSL을 사용한https
프로토콜을 사용한다. 이 기능은 실험적이고 매우 기초적이다. 아마도 사용을 꺼려할 것이다.
[ -S ]
중간값과 표준편차를 출력하지 않고, 평균과 중간값의 차이가 표준편차보다 크더라도 경고/오류를 출력하지 않는다. 최소/평균/최대 값을 출력한다. (호환성을 위해
[ -t timelimit ]
성능을 검사하는 최대 초단위 시간. 내부적으로
-n 50000
을 가정한다. 정해진 시간동안 서버 성능을 검사할때 사용한다. 기본적으로 시간제한 없이 검사한다.
[ -T content-type ]
POST 자료의 Content-type 헤더.
[ -v verbosity]
출력의 자세함 수준을 지정한다.
4
이상이면 헤더에 대한 정보를,3
이상이면 (404, 202, 등) 응답코드를,2
이상이면 경고(warning)와 정보(info)를 출력한다.
[ -V ]
버전을 출력하고 종료한다.
[ -w ]
결과를 HTML 표로 출력한다. 기본적으로 표를 흰 배경에 두 열로 작성한다.
[ -x <table>-attributes ]
<table>의 속성으로 사용할 문자열. 속성을
<table 여기에 >
추가한다.
[ -X proxy[:port] ]
프록시 서버를 사용하여 요청한다.
[ -y <tr>-attributes ]
<tr>의 속성으로 사용할 문자열.
[ -z <td>-attributes ]
<td>의 속성으로 사용할 문자열.
'Backend > Network' 카테고리의 다른 글
TLS Handshaking - 알기 쉽게 정리 (0) | 2011.05.13 |
---|---|
ARP (0) | 2011.05.13 |
예약된 IP주소 (0) | 2011.05.13 |
패킷 송/수신 처리 (0) | 2011.05.13 |
SIP 기본 통신 -두 번째 이야기 (0) | 2011.05.13 |