ab - 아파치 웹서버 성능검사 도구 - Apache HTTP Server Version 2.4

Apache Server 2.4

Apache HTTP Server Version 2.4

<-

ab - 아파치 웹서버 성능검사 도구

이 문서는 최신판 번역이 아닙니다. 최근에 변경된 내용은 영어 문서를 참고하세요.

ab는 아파치 하이퍼텍스트 전송 프로토콜 (HTTP) 서버의 성능을 검사하는(benchmarking) 도구이다. 현재 아파치가 어떻게 동작하는지 알려준다. 특히 아파치가 현재 초당 몇개의 요청을 서비스하는지 알려준다.

Support Apache!

참고

top

개요

ab [ -A auth-username:password ] [ -c concurrency ] [ -C cookie-name=value ] [ -d ] [ -e csv-file ] [ -g gnuplot-file ] [ -h ] [ -H custom-header ] [ -i ] [ -k ] [ -n requests ] [ -p POST-file ] [ -P proxy-auth-username:password ] [ -q ] [ -s ] [ -S ] [ -t timelimit ] [ -T content-type ] [ -v verbosity] [ -V ] [ -w ] [ -x <table>-attributes ] [ -X proxy[:port] ] [ -y <tr>-attributes ] [ -z <td>-attributes ] [http://]hostname[:port]/path

top

옵션

-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 자료 파일.
-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>의 속성으로 사용할 문자열.
top

버그

정적으로 길이가 고정된 버퍼를 많이 사용한다. 명령행 아규먼트, 서버의 응답 헤더, 다른 외부 입력들을 같이 읽어들이면서 문제가 발생할 수 있다.

이 프로그램은 HTTP/1.x를 완전히 구현하지 않는다; 단지 '기대하는' 형식의 응답만을 받는다. strstr(3)을 매우 많이 사용기때문에 속도가 문제가 될 수 있다; , 서버 성능보다는 ab 성능을 측정하게 될 수도 있다.