웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
ab 를 이용한 간편한 아파치 성능 측정
2002.11.15 18:07
다아시는 내용 인지는 모르겠지만 없는것 같아서 올립니다.
레드햇에는 rpm으로 제공되는 아파치 성능 측정툴이 있습니다. 튜닝시에 사용 하면 유용 합니다.
다음은 동시접속수 10 ( -c 옵션 ), 10번 접속 ( -n 옵션) 해서 나오는 ab 의 샘플 입니다.
이 옵션값을 적당하게 조절해서 퍼포먼스가 얼마인지 측정해 보면 되겠습니다.
( 서버는 편집하여 고친 겁니다. kr.yahoo.com 으로 .. 오해 없으시기를 .. )
# ab -n 10 -c 10 http://kr.yahoo.com/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.116 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
Benchmarking kr.yahoo.com (be patient).....done
Server Software: Apache/1.3.19 ; 아파치 버젼을 보여 줍니다.
Server Hostname: kr.yahoo.com
Server Port: 80 ; 포트가 80이 아닐경우 옵션을 주어야 합니다.
Document Path: /
Document Length: 36043 bytes
Concurrency Level: 10
Time taken for tests: 1.801191 seconds
Complete requests: 10
Failed requests: 0
Write errors: 0
Total transferred: 363330 bytes
HTML transferred: 360430 bytes
Requests per second: 5.55 [#/sec] (mean)
Time per request: 1801.191 [ms] (mean)
Time per request: 180.119 [ms] (mean, across all concurrent requests)
Transfer rate: 196.54 [Kbytes/sec] received
Connection Times (ms) ; 밀리세컨드 단위로 접속 통계를 보여 줍니다.
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 1300 1657 144.9 1713 1800
Waiting: 622 849 163.5 889 1135
Total: 1300 1657 144.9 1713 1800
Percentage of the requests served within a certain time (ms)
50% 1713
66% 1733
75% 1747
80% 1775
90% 1800
95% 1800
98% 1800
99% 1800
100% 1800 (longest request)
----------------------------------------------------------------------------
ab 툴을 이용해서 간편하게 웹서버의 성능을 알아 볼수 있습니다. 너무 쉽죠 ?
귀차니즘에 빠진 분들을 위해 한글 man 페이지 ( 출처:kldp.org) 를 추가 합니다.
ab [ -k ] [ -i ] [ -n 요청수 ] [ -t 시간제한 ] [ -c 동시접속 ] [ -p POST file ] [ -A 인증 유저이름:패스워드 ] [ -P 프락시인증 유저이름:패스워드 ] [ -H Custom header ] [ -C Cookie name=value ] [ -T content-type ] [ -v verbosity ] ] [ -w HTML 출력 ] ] [ -x <table> 속성 ] ] [ -y <tr> 속성 ] ] [ -z <td> 속성 ] [http://]서버이름[:port]/path
ab [ -V ] [ -h ]
설명
ab는 Apache Web server의 상태를 측정하는 툴이며 초당 Apache server가 얼마나 많은 요청을 처리할수 있는지를 측정할수 있다.
옵션
-k
HTTP KeepAlive (연결 지속성) 요소를 사용 가능 하게 한다. 이것은 하나의 HTTP session에서 여러 개의 요청을 처리할 수 있다. 기본값은 연결 지속성 기능을 사용하지 않는다.
-i
GET 방식 대신에 HTTP 'HEAD'를 사용한다. POST와 섞어서 사용할수 없다.
-n 요청수
측정을 하기 위한 요청수를 지정한다. 따로 지정하지 않는다면 하나의 요청만이 수행된다.
-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
사용법에 대한 정보를 출력한다.
버그
고정 길이를 가진 다양한 정적 선언 버퍼가 있다. 이 사실로 인해서 비효율적인 명령 라인의 인자와 서버로부터의 헤더 응답, 그리고 다른 외부 입력과의 결합으로 인해 버퍼 오버 플로우가 발생할 수 있다.
Ab는 HTTP/1.x를 완전하게 충족시키지는 못한다. 대신 어떠한 형태의 응답도 수용할 수 있다. 프로그램에 의한 strstr(3)의 과도한 사용은 비정상적인 수행 결과를 가져오며, CPU 리소스를 잡아 먹게 된다. 서버의 한계에 도달하기 전에 ab에 의하여 한계에 접근 하지 않도록 ab를 수행해야 한다.
레드햇에는 rpm으로 제공되는 아파치 성능 측정툴이 있습니다. 튜닝시에 사용 하면 유용 합니다.
다음은 동시접속수 10 ( -c 옵션 ), 10번 접속 ( -n 옵션) 해서 나오는 ab 의 샘플 입니다.
이 옵션값을 적당하게 조절해서 퍼포먼스가 얼마인지 측정해 보면 되겠습니다.
( 서버는 편집하여 고친 겁니다. kr.yahoo.com 으로 .. 오해 없으시기를 .. )
# ab -n 10 -c 10 http://kr.yahoo.com/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.116 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
Benchmarking kr.yahoo.com (be patient).....done
Server Software: Apache/1.3.19 ; 아파치 버젼을 보여 줍니다.
Server Hostname: kr.yahoo.com
Server Port: 80 ; 포트가 80이 아닐경우 옵션을 주어야 합니다.
Document Path: /
Document Length: 36043 bytes
Concurrency Level: 10
Time taken for tests: 1.801191 seconds
Complete requests: 10
Failed requests: 0
Write errors: 0
Total transferred: 363330 bytes
HTML transferred: 360430 bytes
Requests per second: 5.55 [#/sec] (mean)
Time per request: 1801.191 [ms] (mean)
Time per request: 180.119 [ms] (mean, across all concurrent requests)
Transfer rate: 196.54 [Kbytes/sec] received
Connection Times (ms) ; 밀리세컨드 단위로 접속 통계를 보여 줍니다.
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 1300 1657 144.9 1713 1800
Waiting: 622 849 163.5 889 1135
Total: 1300 1657 144.9 1713 1800
Percentage of the requests served within a certain time (ms)
50% 1713
66% 1733
75% 1747
80% 1775
90% 1800
95% 1800
98% 1800
99% 1800
100% 1800 (longest request)
----------------------------------------------------------------------------
ab 툴을 이용해서 간편하게 웹서버의 성능을 알아 볼수 있습니다. 너무 쉽죠 ?
귀차니즘에 빠진 분들을 위해 한글 man 페이지 ( 출처:kldp.org) 를 추가 합니다.
ab [ -k ] [ -i ] [ -n 요청수 ] [ -t 시간제한 ] [ -c 동시접속 ] [ -p POST file ] [ -A 인증 유저이름:패스워드 ] [ -P 프락시인증 유저이름:패스워드 ] [ -H Custom header ] [ -C Cookie name=value ] [ -T content-type ] [ -v verbosity ] ] [ -w HTML 출력 ] ] [ -x <table> 속성 ] ] [ -y <tr> 속성 ] ] [ -z <td> 속성 ] [http://]서버이름[:port]/path
ab [ -V ] [ -h ]
설명
ab는 Apache Web server의 상태를 측정하는 툴이며 초당 Apache server가 얼마나 많은 요청을 처리할수 있는지를 측정할수 있다.
옵션
-k
HTTP KeepAlive (연결 지속성) 요소를 사용 가능 하게 한다. 이것은 하나의 HTTP session에서 여러 개의 요청을 처리할 수 있다. 기본값은 연결 지속성 기능을 사용하지 않는다.
-i
GET 방식 대신에 HTTP 'HEAD'를 사용한다. POST와 섞어서 사용할수 없다.
-n 요청수
측정을 하기 위한 요청수를 지정한다. 따로 지정하지 않는다면 하나의 요청만이 수행된다.
-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
사용법에 대한 정보를 출력한다.
버그
고정 길이를 가진 다양한 정적 선언 버퍼가 있다. 이 사실로 인해서 비효율적인 명령 라인의 인자와 서버로부터의 헤더 응답, 그리고 다른 외부 입력과의 결합으로 인해 버퍼 오버 플로우가 발생할 수 있다.
Ab는 HTTP/1.x를 완전하게 충족시키지는 못한다. 대신 어떠한 형태의 응답도 수용할 수 있다. 프로그램에 의한 strstr(3)의 과도한 사용은 비정상적인 수행 결과를 가져오며, CPU 리소스를 잡아 먹게 된다. 서버의 한계에 도달하기 전에 ab에 의하여 한계에 접근 하지 않도록 ab를 수행해야 한다.
댓글 2
-
styx
2003.01.05 08:32
-
리베로
2003.02.10 23:09
styx님. 그 프로그램 취약합니다.
따로 메일 or 메세지 보내드리죠
제목 | 글쓴이 | 날짜 |
---|---|---|
리눅스 서버를 구축해 보자! #1 [11] | 꼬토 | 2002.11.21 |
ab 를 이용한 간편한 아파치 성능 측정 [2] | 정인배 | 2002.11.15 |
윈xp pro 를 net 서버로 바꾸기
[7]
![]() | 정회철 | 2002.11.13 |
사용자 자동 등록 쉘스크립트 [1] | 편리 | 2002.11.05 |
OpenBSD3.2 설치가이드 - 완결 [3] | pravda | 2002.11.02 |
[Apache] 윈도우 NT 계열에 서비스 등록하기
[1]
![]() | 스카이 | 2002.09.08 |
웹호스팅의 꽃 A.P.M.~ 을 알아보자! (1부) [9] | 임현 | 2002.08.25 |
http://도메인/~아이디 를 http://도메인/아이디 로 ^^ [11] | 임현 | 2002.07.31 |
오랜만에 올리는 팁이군요. - 웹호스팅 쉽게해보기! - [8] | 임현 | 2002.07.28 |
특정 파일(ex: mp3,avi,mpg)만 찾아서 자동으로 삭제하기! | 임현 | 2002.06.27 |
Mysql 데이타베이스 백업및 복구(2)... [5] | 이휘은 | 2002.06.22 |
간단팁 서버 Info! [4] | 임현 | 2002.06.21 |
하드디스크의 모든성능을 써버리자! [4] | 임현 | 2002.06.14 |
[알아서 나쁠것없는 10원짜리 팁!] 수십 수백명사용자의 일괄생성 방법! [6] | 임현 | 2002.05.09 |
Apache2.0.35 + php4.3.0-devel 설치하기;; [15] | Cksoft | 2002.04.08 |
리눅스 아주 간단한 사용자 계정 주기-_- [7] | i- | 2002.03.12 |
근사모의 APM_steup3설치 법 [5] | 뽀유★ | 2002.03.01 |
아파치 가상 유저 설정하기 [6] | i- | 2002.02.24 |
에러페이지를 서버관리자가 지정한 페이지로. [1] | teenteenv | 2002.02.21 |
[APM자동설치] APM_Setup 3 ( Apache, PHP4, MySQL, Perl, Tomcat ) [6] | 근땅e | 2002.02.06 |
웹으로 해봤습니다.