Apache2 웹서버의 속도가 너무 느리네요.

budle77의 이미지

저희 웹메일 서버가 좀 느려서요.
Apache2에서는 설정을 손본적이 없어서요. 손대기가 겁나네요. 이런 소심한... ㅡ.ㅡ
배포판은 SLES9입니다.
Apache2-2.0.49-27
여기에 PHP를 연동해서 사용합니다.

증상은... 아파치 프로세스수가 평소에는 60~80개 정도있다가 접속자수가 많아지면 100여개 정도 뜹니다.
그리고 웹페이지가 뜨는데 시간이 많이 걸립니다.

설정파일에 보니까

KeepAlive On
MaxKeepAliveRequests 1000
KeepAliveTimeout 15
요렇게 되어있습니다.
다른건... 아직 눈에 띄는게 없네요.

어떻게 개선의 여지가 있을까요?

budle77의 이미지

수세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를 목표로...

ibin의 이미지

웹메일의 경우 대부분 로그인이 필요한 페이지이고
각 페이지마다 자원사용율이 다를테니 ab로는 벤치마킹이 어려울 듯 합니다.
결과중 "Document Length: 124 bytes" 만 보시더라도 감이 오시겠죠.

일단 top 명령으로 CPU점유율, 로드 등을 먼저 점검해보셔서
어떤 쪽에서 부하가 걸리는지 확인을 해보시는게 순서일 듯 합니다.

budle77의 이미지

top으로 지켜봤더니

httpd2-prefork
UserAccountServ
saslauthd
imap
amavisd
syslogd

이상의 프로세스가 자원을 많이 차지하네요.
음...

===========================================
개발과 관리가 가능한 DBA를 목표로...

ibin의 이미지

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 포트)

한번 확인해보세요.

elflord의 이미지

ab에서 -c 1000은 일반 PC서버로서는 한계를 넘는 수치로 보입니다. 이걸 너무 높이 잡았기에 위에 ibin님이 지적한 대로 Document Length가 터무니 없이 작은 값이 나온거지요.

-c값을 낮추어서 Document Length값이 정상적으로 나오는 상황에서야 제대로된 벤치마크 수치가 확인 가능할 것으로 생각됩니다.

개인적으로는 ab는 그리 좋아하지 않아서 벤치마킹시에는 httpref를 주로 쓰고 있습니다.

그럼 이만 총총...[竹]
http://elflord.egloos.com


===== ===== ===== ===== =====
그럼 이만 총총...[竹]
http://elflord.egloos.com

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.