본문 바로가기

Server Story..../Linux

ab 사용방법 ( 아파치 웹서버 테스트 )

[ab 사용방법]

ab는 Apache Web server의 상태를 측정하는 툴이며 초당 Apache server가 얼마나 많은 요청을 처리할수 있는지를 측정할수 있다.

[옵션]
-k
HTTP KeepAlive (연결 지속성) 요소를 사용 가능 하게 한다. 이것은 하나의 HTTP session에서 여러 개의 요청을 처리할 수 있다.
기본값은 연결 지속성 기능을 사용하지 않는다.
-i
GET 방식 대신에 HTTP 'HEAD'를 사용한다. POST와 섞어서 사용할수 없다.
-n 요청수 (request)
측정을 하기 위한 요청수를 지정한다. 따로 지정하지 않는다면 하나의 요청만이 수행된다.
-t 시간제한
측정을 어느 정도까지 할 지 초단위로 지정한다. 따로 지정하지 않으면 측정 세션에 대해서 50000개의 요청을 자동으로 정의한다.
고정된 시간 동안 서버를 측정하기 위하여 사용한다. 기본적으로 시간을 제한하지는 않는다.
-c 동시접속수
동시에 요청을 처리할 수 있는 수량을 지정한다. 기본값으로는 한번에 하나의 요청만을 수행한다.
즉 동시 접속을 하지 않는다는 의미이다.

-p POST file
아파치 웹서버에 어떠한 HTTP POST 요청을 보내기 위한 data를 가진 파일을 지정한다.

-A Authorization username:password
서버로 신용증명을 하는 기본 인증을 지원한다. 사용자 이름과 패스워드는 하나의 ':'로 구분하고, uuencoded로 변환한 데이터를 보낸다. 문자열은 서버가 필요로 하든 안하든 상관없이 보내며, 401 인증을 보내는 것을 필요로 한다.

-p Proxy-Authorization username:password
프락시 서버로 신용증명을 하는 기본 인증을 지원한다.
사용자 이름과 패스워드는 하나의 ':'로 구분하고, uuencoded로 변환한 데이터를 보낸다. 문자열은 프락시가 필요로 하든 안하든 상관없이 보내며, 407 인증을 보내는 것을 필요로 한다.

-C Cookie name=value
요청에 'Cookie:' line을 추가한다. 이 인자는 'name=value'의 형태를 가진다. 이 옵션은 반복된다.

-H Header string
요청에 임의의 헤더를 추가한다. 이 인자는 유효한 헤더의 형태를 가지며, 보통 하나의 쌍으로 이루어진 필드 값을 콜론(:)으로 구분을 한다.

-T content-type
POST data에 대한 content-type header를 지정한다.

-v
출력 레벨을 지정한다. 4단계는 결과값 상단에 HTML 헤더를 출력하며, 3단계는 결과물 상단에 응답 코드(예를 들어 404, 200등)를 출력하며, 2단계는 경고와 정보 메세지를 출력한다.

-w
HTML table로 결과물을 출력한다. 기본 table은 2칼럼이며 흰색 바탕이다.
-x attributes
<table> 에 대한 속성을 지정한다. 속성은 <table 속성> 과 같이 들어간다.
-y attributes
<tr>에 대한 속성값을 지정한다.
-z attributes
<td>에 대한 속성값을 지정한다.
-V
버전 정보를 출력하고 프로그램을 종료한다.
-h
사용법에 대한 정보를 출력한다.


[사용예제]

# /usr/local/apache/bin/ab -n 100 -c 10 http://www.domain.com/
10 명의 유저가 동시에 http://www.domain.com/ 을 요청
각각의 시뮬레이트 유저는 요청을 10 번씩 하게 됩니다.

# /usr/local/apache/bin/ab -n 1500 -c 50 http://www.domain.com/
요청을 30 x 50   (50 명의 사용자가, 각각 30 번의 요청)

결과예)
Benchmarking www.domain.com (be patient).....done
Server Software:                           ---> 아파치 버전표시                                
Server Hostname:        www.domain.com  ---> 특정사이트의 도메인명
Server Port:            80                        ---> 웹서비스 사용포트
Document Path:          /                ---> 초기문서가 존재하는 웹문서 root 위치
Document Length:        0 bytes                ---> 초기문서의 용량크기(index.html)
Concurrency Level:      10
Time taken for tests:   0.013 seconds        ---> 응답시간 (매우 중요한 결과값임)
Complete requests:      100                ---> 요구에 응답완료한 세션수
Failed requests:        100                ---> 요구에 응답실패한 세션수
   (Connect: 100, Length: 0, Exceptions: 0)
Broken pipe errors:     0
Total transferred:      0 bytes                ---> 총 전송바이트수
HTML transferred:       0 bytes                ---> 총 전송한 html 바이트수
Requests per second:    7692.31 [#/sec] (mean)   ---> 초당응답요구수
Time per request:       1.30 [ms] (mean)        ---> 요구에 응답한 시간

Time per request:       0.13 [ms] (mean, across all concurrent requests)
Transfer rate:          0.00 [Kbytes/sec] received

Connnection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0     1    0.4      1     3
Processing:     0     0    0.0      0     0
Waiting:        0     0    0.0      0     0
Total:          0     1    0.4      1     3

Percentage of the requests served within a certain time (ms)
  50%      1
  66%      1
  75%      1
  80%      1
  90%      1
  95%      2
  98%      2
  99%      3
100%      3 (last request)


옵션

의미

-n requests

요청을 수행할 개수

-c concurrency

요청을 만들 개수로 동시 사용자 개념으로 이해하면 되겠다.

-t timelimit

최대 몇 초까지 응답을 기다릴 것인지를 가르킨다.

-p postfile

POST 의 데이터 파일을 포함

-T content-type

POSTing 에 대한 문서타입의 헤더를 결정

-v verbosity

얼마나 자세한 정보를 화면에 출력해 줄 것인지 결정

-w

HTML 문서형식으로 테이블로 만들어 결과를 화면에 출력

-I

GET 대신 HEAD를 사용

-x attributes

HTML 문의 테이블(table)에 대한 특정 문자열을 삽입

예를들어 -x border=2 와 같이 주었을 경우 -w 만 주었을 때의<table> 과 달리 <table border=2> 와 같이 들어간다. <그림>

-y attributes

테이블의 Tr 에 대한 특성의 값을 삽입

-z attributes

테이블의 Td 또는 Th 에 대한 특성의 값을 삽입

-C attribute

Apache=1234 와 같은 쿠키를 더한다.

-H attribute

Accept-Encoding: zip 과 같은 임의의 헤더를 일반적인 헤더라인 다음에 삽입한다. 예를들면 ab c 10 n 10 H Accept-Encoding: zip v 2 http://www.apache.kr.net:80/ ;

GET / HTTP/1.0

User-Agent: ApacheBench/1.3a

Host: www.apache.kr.net

Accept: */*

Accept-Encoding: zip

-A attribute

기존 암호인증을 추가하며 , 사용자 이름과 패스워드의 값들은 : 으로 구분되어 진다.

-p attribute

기본 프록시 인증 방법을 사용하며, 이에 대한 값인 사용자 이름과 패스워드는 : 으로 구분되어 진다.

-V

프로그램에 대한 버전의 정보를 출력

-k

HTTP 프로토콜의 지속연결 (KeepAlive) 기능을 사용

-h

각 옵션에 대한 설명


'Server Story.... > Linux' 카테고리의 다른 글

cp (copy)  (0) 2010.09.29
리눅스(데비안)에서 SSH 설치, 설정하기  (0) 2010.09.14
버그 관리툴 Mantis 2/2  (0) 2010.06.28
버그 리포트 관리툴 , Mantis 설치 1/2  (0) 2010.06.28
tar.gz 압축 하기. 압축 풀기  (0) 2010.06.22