: 안녕하세요.
: apache2.0 알파 테스트 때부터 php 와 함께
: 노력해 봤는데 실패의 연속이였습니다. 하지만
: 이번에는 성공했습니다.
:
: 마침 apache 사이트에 가보니 apache2.0 베타
: 버젼이 나왔더군요. 그렇지만 apache2.0 cvs 버젼
: 가져왔습니다. 또 php 에서 cvs 최근 버젼으로 가져
: 왔습니다.
:
: apache 는 DSO 로 컴파일이 안 되더군요.
: 그래서 다시 apache2.0 베타 버젼 가져와서
: 컴파일 해보니 DSO 로 컴파일 됩니다.
: (./configure --prefix=/usr/var/apache2 --enable-so
: --with-mpm=prefork 로 컴파일 했습니다. )
:
: 다음은 php4 쪽인데, 이게 최근 소스 트리인데도 불구하고
: 아파치 쪽의 함수와 맞지 않는 쪽이 있어서 그냥 컴파일이
: 안됩니다. 따라서 약간 수정해서 컴파일이 되었습니다.
: 소스트리에서 sapi/apache2filter/sapi_apache2.c 부분의 248라인 근처에
: if ((rv = ap_get_brigade(f->next, bb, mode, readbytes)) 를
: if ((rv = ap_get_brigade(f->next, bb, mode)) 로 고쳐주시면 됩니다.
: php컴파일 마치고
: (./configure --prefix=/usr/var
: --with-apxs2=/usr/var/apache2/bin/apxs
: --with-config-file-path=/usr/var/apache2/conf
: --with-mysql=/usr
: --enable-debug=no --enable-tracks-vars
: 로 컴파일 했습니다.)
: 설치한후 아파치 설정이 필요합니다.
:
: 아파치 설정은 기존 1.3.xx 와 비슷합니다.
:
: 다만 php 사용을 위해
: <Files *.php>
: SetOutputFilter PHP
: SetInputFilter PHP
: </Files>
: 을 추가해 주시면 됩니다.
:
: 아파치 기동을 하면 php 와 같이 동작할겁니다.
:
: 평가: 1. 설정을 잘못한 것인지 php 의 경우 상대 경로가 먹지 않습니다.
: 그래서 몇몇을 절대경로로 바꿔주고 돌려보면 잘 돌아갑니다.
: 앞으로 개선되리라 생각됩니다. ( 절대경로로 바꿔서 적수 보드도
: 돌려봤습니다만, 절대경로<->상대경로 차이 때문에 고려해 볼게
: 많더군요, 적수보드도 돌아가긴 돌아갔습니다.
:
: 2. 속도에 관해서는 php 쪽이 직접 쓰는게 아니라 필터 역할로
: 작용하는듯 싶습니다. php쪽은 아직은 느린듯 싶습니다. php 쓰지
: 않는 쪽은 기존과 비슷한 듯 싶습니다.
:
: 3. 부하에 관해서는 잘 모르겠습니다. ab로 테스트 해봤는데,
: 비슷한듯 싶습니다.( 2.0 대에 들어있는 ab는 자세해 졌더군요.)
:
:
: 결론: 아직은 쓰기 이릅니다, php 쪽도 완전하지 않은 것 같고,
: apache 2.0 안정 버젼이 나온다 하더라도, 특이한 기능 (ipv6)이
: 널리 사용되거나,또는 탁월한 성능을 보여주기 전까지는
: 기존 1.3 대가 사용되리라 생각됩니다. 하여간 잘 동작해 주어서
: 기쁩니다.
:
: ps. apache 2.0.16 + php 4.0.7-dev
:
: --
: 이 곳에 서명을 적어주십시오
.. 위에 꺽쇠가 표시가 안되네요.
setoutfilter 윗부분에 설정이 하나더있는데
꺽쇠 안 부분이라 표시가 안되네요. -.-
자세한것은 같이 들어있는 문서 참고해 보시길,,
추가합니다:
벤치마크 결과, 둘다 각자 버젼의 ab를 썼고 -n 1500 -c 50 옵션을
주었으며 test.php 의 내용은 phpinfo 만 썼습니다.
아파치 옵션은 2.0 고유 옵션 빼고는 비슷하며, 둘다 zend optimizer
썼습니다. (주소 부분은 가립니다.)
# /usr/var/apache2/bin/ab -n 1500 -c 50 *******/test.php
This is ApacheBench, Version 1.3e <$Revision:1.69 $> apache-2.0
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-2001 The Apache Software
Foundation, http://www.apache.org/ Benchmarking ******* (be patient) Completed 150 requests
Completed 300 requests
Completed 450 requests
Completed 600 requests
Completed 750 requests
Completed 900 requests
Completed 1050 requests
Completed 1200 requests
Completed 1350 requests
Finished 1500 requests
Server Software: Apache/2.0.16
Server Hostname: *******
Server Port: 80
Document Path: /test.php
Document Length: 279 bytes
Concurrency Level: 50
Time taken for tests: 0.83394 seconds
Complete requests: 1500
Failed requests: 0
Write errors: 0
Non-2xx responses: 1500
Total transferred: 753000 bytes
HTML transferred: 418500 bytes
Requests per second: 17.99 [#/sec] (mean)
Time per request: 2779.80 [ms] (mean)
Time per request: 55.60 [ms] (mean, across all concurent requests)
Transfer rate: 9.03 [Kbytes/sec] received
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 3
Processing: 43 1171 1060.4 1083 29987
Waiting: 42 957 1069.0 877 29986
Total: 43 1171 1060.4 1083 29987
Percentage of the requests served within a certain time (ms)
50% 1083
66% 1118
75% 1147
80% 1168
90% 1265
95% 1394
98% 2318
99% 2320
100% 29987 (last request)
# /usr/var/apache/bin/ab -n 1500 -c 50 *******/test.php
This is ApacheBench, Version 1.3d <$Revision:1.49 $> apache-1.3
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-1999 The Apache Group, h
ttp://www.apache.org/ Benchmarking ******* (be patient) Completed 150 requests
Completed 300 requests
Completed 450 requests
Completed 600 requests
Completed 750 requests
Completed 900 requests
Completed 1050 requests
Completed 1200 requests
Completed 1350 requests
Finished 1500 requests
Server Software: Apache/1.3.20-dev
Server Hostname: *******
Server Port: 80
Document Path: /test.php
Document Length: 283 bytes
Concurrency Level: 50
Time taken for tests: 3.429 seconds
Complete requests: 1500
Failed requests: 0
Broken pipe errors: 0
Non-2xx responses: 1500
Total transferred: 762000 bytes
HTML transferred: 424500 bytes
Requests per second: 437.45 [#/sec] (mean)
Time per request: 114.30 [ms] (mean)
Time per request: 2.29 [ms] (mean, across all concurent requests)
Transfer rate: 222.22 [Kbytes/sec] received
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 6 8.0 4 86
Processing: 61 103 36.5 94 225
Waiting: 44 103 36.4 93 225
Total: 61 109 35.5 99 225
Percentage of the requests served within a certain time (ms)
50% 99
66% 106
75% 112
80% 127
90% 180
95% 190
98% 203
99% 206
100% 225 (last request)
실제로 해보니 많이 차이나는 군요,,
또 추가합니다. 아파치2.0 쪽의 ab가 1.3.xx쪽의 ab와 많이 다른듯
싶습니다. 아파치 2.0 을 1.3 쪽의 ab로 벤치 하니 결과가
좋게 나오는 군요. 비교 하시려면 이쪽과 비교해 보시길,,,
# ./ab -n 1500 -c 50 *******/test.php
This is ApacheBench, Version 1.3d <$Revision:1.49 $> apache-1.3
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-1999 The Apache Group, h
ttp://www.apache.org/ Benchmarking ******* (be patient) Completed 150 requests
Completed 300 requests
Completed 450 requests
Completed 600 requests
Completed 750 requests
Completed 900 requests
Completed 1050 requests
Completed 1200 requests
Completed 1350 requests
Finished 1500 requests
Server Software: Apache/2.0.16
Server Hostname: *******
Server Port: 80
Document Path: /test.php
Document Length: 279 bytes
Concurrency Level: 50
Time taken for tests: 4.641 seconds
Complete requests: 1500
Failed requests: 0
Broken pipe errors: 0
Non-2xx responses: 1510
Total transferred: 758020 bytes
HTML transferred: 421290 bytes
Requests per second: 323.21 [#/sec] (mean)
Time per request: 154.70 [ms] (mean)
Time per request: 3.09 [ms] (mean, across all concurent requests)
Transfer rate: 163.33 [Kbytes/sec] received
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 1 21 17.6 16 166
Processing: 52 129 43.8 120 296
Waiting: 21 128 43.9 119 296
Total: 52 149 43.8 141 308
Percentage of the requests served within a certain time (ms)
50% 141
66% 162
75% 170
80% 182
90% 222
95% 241
98% 254
99% 264
100% 308 (last request)
ps. 뭐가 어떻게 된건지,,, -.-