웹마스터 팁

다아시는 내용 인지는 모르겠지만 없는것 같아서 올립니다.

레드햇에는 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를 수행해야 한다.  
제목 글쓴이 날짜
cron과 rsync 그리고 replication 을 이용한 데이터 백업 [3] 최종우 2002.12.03
cron을 이용한 자동 백업 받기 최종우 2002.12.02
리눅스 보안 : 기초적인 방화벽 : portsentry 설치하기 [2] 정인배 2002.11.29
[FreeBSD] qmail+mysql+vpopmail+qmailadmin 설치 [1] DeX™ 2002.11.26
[FreeBSD] bind를 몰아낼 djbdns 설치하기 [5] DeX™ 2002.11.26
Apache + PHP + Mysql확실한 연동 및 리눅스 재설치 정보 [2] file 최종우 2002.11.26
리눅스 mysql 사용자 계정주기/삭제하기 [4] 정인배 2002.11.22
리눅스 서버를 구축해 보자! #2 [5] 꼬토 2002.11.22
리눅스 서버를 구축해 보자! #1 [11] 꼬토 2002.11.21
리눅스(레드헷8.0 배포판 기준) 처음 설치하시는 분들을 위한 apm 초간단 팁 [8] 김종환 2002.11.17
리눅스 시스템관리 고급 명령어 정인배 2002.11.16
ab 를 이용한 간편한 아파치 성능 측정 [2] 정인배 2002.11.15
윈xp pro 를 net 서버로 바꾸기 [7] file 정회철 2002.11.13
[Lindox] 설치 강좌 쓸때 유용한 명령어 [4] NeSTY♨™ 2002.11.05
[기초] 퍼미션 값에 대해서 [4] NeST™y 2002.11.05
[Lindox] 실수로 기본 명령어삭제시 강제 복구하기 NeSTY♨™ 2002.11.05
[Lindox] 가상콘솔 줄여서 메모리 절약하기.. NeSTY♨™ 2002.11.05
[기초]커널 2.4.x, quota 셋팅법 NeST™y 2002.11.05
사용자 자동 등록 쉘스크립트 [1] 편리 2002.11.05
OpenBSD3.2 설치가이드 - 완결 [3] pravda 2002.11.02