출처 : http://httpd.apache.org/docs/2.2/ko/programs/ab.html
1. 개요
2. 옵션
-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>의 속성으로 사용할 문자열.
3. 샘플
# 동시 접속자수(세션수) 10개로 최대 100개의 요청을 지정한 URL에 보내 응답을 받는 테스트
[root@zabbix ~]# ab -c 10 -n 100 http://localhost/zabbix/overview.php
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient).....done
Server Software: Apache/2.2.17
Server Hostname: localhost
Server Port: 80
Document Path: /zabbix/overview.php
Document Length: 12717 bytes
Concurrency Level: 10
Time taken for tests: 28.047 seconds
Complete requests: 100
Failed requests: 17
(Connect: 0, Receive: 0, Length: 17, Exceptions: 0)
Write errors: 0
Total transferred: 1312283 bytes
HTML transferred: 1271683 bytes
Requests per second: 3.57 [#/sec] (mean)
Time per request: 2804.683 [ms] (mean)
Time per request: 280.468 [ms] (mean, across all concurrent requests)
Transfer rate: 45.69 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 7.1 0 38
Processing: 2279 2776 333.4 2673 3540
Waiting: 2278 2772 333.0 2667 3539
Total: 2279 2778 332.7 2691 3540
# 결과 항목 의미
- Server Software : 아파치 버전
- Server Hostname : 사이트 이름(도메인명)
- Server Port : 사용 포트번호
- Document Path : 초기 문서가 존재하는 웹문서 root 위치
- Time take for tests : 응답 시간(매우 중요한 결과 값임)
- Document Length : 초기문서(대부분 index.html, index.htm)의 용량크기
- Complete requests : 요구에 응답 완료한 세션수
- Failed requests : 요구에 응답 실패한 세션수
- Broken pipe errors : 실패한 에러수
- Total transferred : 총 전송 바이트수
- HTTP transferred : 총 전송한 HTML 바이트수
- Requests per second : 초당 응답 요구수
- Time per request : 요구에 응답한 시간(단위 micro second, 중요한 결과값)
- Time per request : 요구에 응답한 시간
- Transfer rate : 초당 전송 가능한 용량
': Web' 카테고리의 다른 글
카카오 MAP 을 이용하여 위/경도 좌표 구하는 방법 (0) | 2019.11.06 |
---|---|
htaccess 로 PHP, CSS, JS 압축하기 (0) | 2012.10.25 |
Apache 서버 .htaccess 활용 (사이트 접근 제어 - 아이피 제어) (0) | 2012.10.25 |
톰캣 앞에 꼭 아파치를 두어야 하나 (0) | 2012.06.08 |
tomcat out of memory 메모리 설정 (0) | 2012.05.22 |