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

Apache HTTP Server Version 2.2

Apache > HTTP Server > Documentation > Version 2.2 > Programs

#### Please note

This document refers to a legacy release (2.2) of Apache httpd. The active release (2.4) is documented here. If you have not already upgraded, please follow this link for more information.

You may follow this link to go to the current version of this document.

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

가능한 언어: en | ko | tr

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

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

### 참고

- httpd

- Comments

## 개요

`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`

## 옵션

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

## 버그

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

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

가능한 언어: en | ko | tr

## Comments

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.