Apache2 웹서버의 속도가 너무 느리네요.
글쓴이: budle77 / 작성시간: 수, 2006/06/21 - 8:51오후
저희 웹메일 서버가 좀 느려서요.
Apache2에서는 설정을 손본적이 없어서요. 손대기가 겁나네요. 이런 소심한... ㅡ.ㅡ
배포판은 SLES9입니다.
Apache2-2.0.49-27
여기에 PHP를 연동해서 사용합니다.
증상은... 아파치 프로세스수가 평소에는 60~80개 정도있다가 접속자수가 많아지면 100여개 정도 뜹니다.
그리고 웹페이지가 뜨는데 시간이 많이 걸립니다.
설정파일에 보니까
KeepAlive On
MaxKeepAliveRequests 1000
KeepAliveTimeout 15
요렇게 되어있습니다.
다른건... 아직 눈에 띄는게 없네요.
어떻게 개선의 여지가 있을까요?
Forums:
ab2로 벤치마킹해본 결과입니다.
수세9버전에는 ab2가 설치되어있더군요.
아래는 그 결과입니다.
거의 1년만에 ab를 돌렸더니... 결과를 봐도 모르겠습니다.
ㅡ.ㅡ;
webmail:/usr/sbin # ./ab2 -c 1000 -n 1000 http://webmail.~/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.121.2.8 $> 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 webmail.~ (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Finished 1000 requests
Server Software: Apache/2.0.49
Server Hostname: webmail.~
Server Port: 80
Document Path: /
Document Length: 124 bytes
Concurrency Level: 1000
Time taken for tests: 1.17995 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 301000 bytes
HTML transferred: 124000 bytes
Requests per second: 982.32 [#/sec] (mean)
Time per request: 1017.995 [ms] (mean)
Time per request: 1.018 [ms] (mean, across all concurrent requests)
Transfer rate: 287.82 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 5 7.1 3 23
Processing: 7 89 136.2 51 612
Waiting: 6 87 136.6 49 611
Total: 29 95 134.8 56 612
Percentage of the requests served within a certain time (ms)
50% 56
66% 67
75% 69
80% 71
90% 79
95% 568
98% 599
99% 606
100% 612 (longest request)
===========================================
개발과 관리가 가능한 DBA를 목표로...
웹메일의 경우
웹메일의 경우 대부분 로그인이 필요한 페이지이고
각 페이지마다 자원사용율이 다를테니 ab로는 벤치마킹이 어려울 듯 합니다.
결과중 "Document Length: 124 bytes" 만 보시더라도 감이 오시겠죠.
일단 top 명령으로 CPU점유율, 로드 등을 먼저 점검해보셔서
어떤 쪽에서 부하가 걸리는지 확인을 해보시는게 순서일 듯 합니다.
top으로 봤더니
top으로 지켜봤더니
httpd2-prefork
UserAccountServ
saslauthd
imap
amavisd
syslogd
이상의 프로세스가 자원을 많이 차지하네요.
음...
===========================================
개발과 관리가 가능한 DBA를 목표로...
imap 데몬이
imap 데몬이 동작중인걸로 보아 PHP+IMAP 기반의 웹메일로 추측됩니다.
보통 IMAP 기반의 웹메일은 비교적 쉽게 제작이 가능한 반면에
서버 자원을 많이 낭비하게 되는 단점이 있는 것으로 알고 있습니다.
현재 상황에서는 보다 자세한 분석을 통해 하드웨어를 증설 혹은 교체하는게 가장 쉬운 방법일 듯 합니다.
ex)'vmstat 5'의 명령 등으로 CPU,I/O,MEMORY 사용률 체크.
그외에는 IMAP 기반이 아닌 file base, file&db base 방식의 웹메일로 교체하는 것도 한 방법이겠죠.
아파치 웹서버가 느려질때.. 확인사항 하나..
저는 윈도우에서 아파치 서버 돌리는데
한 1년 넘으니 웹페이지 접속하면 뜨는 시간이 느려지는 겁니다.
이것 저것 확인하다가 네트웍 트래픽을 보니 0.5%미만의 트래픽이 계속 발생되기에...
netstat -a, TCP/IP분석프로그램, 방화벽(Look 'n' Stop) 등등 프로그램으로 걸러보면
이상한데서(해외 여기저거..) 웹서버로 트래픽을 유발하고 있더군요..
아마도 바이러스가 자동스캔해서 트래픽을 만들어 내는거 같기도하고...
그래서 방화벽(Look 'n' Stop)으로 해당 IP만 차단시켜버립니다.
보통 IP C클래스 모두 막아버리죠.. 않쓰는 포트도 막으면 좋은데... 게을러서..
이상한 트래픽 발생되는 IP를 모두 막기는 힘들고해서..
요즘은 의심가는 트래픽의 IP가 사용하는 포트 list를 만들고 있습니다..(Ingoing 포트)
한번 확인해보세요.
ab에서 -c 1000은 일반
ab에서 -c 1000은 일반 PC서버로서는 한계를 넘는 수치로 보입니다. 이걸 너무 높이 잡았기에 위에 ibin님이 지적한 대로 Document Length가 터무니 없이 작은 값이 나온거지요.
-c값을 낮추어서 Document Length값이 정상적으로 나오는 상황에서야 제대로된 벤치마크 수치가 확인 가능할 것으로 생각됩니다.
개인적으로는 ab는 그리 좋아하지 않아서 벤치마킹시에는 httpref를 주로 쓰고 있습니다.
그럼 이만 총총...[竹]
http://elflord.egloos.com
===== ===== ===== ===== =====
그럼 이만 총총...[竹]
http://elflord.egloos.com
댓글 달기