Massenhaft Replies - Apache am Boden

Apache, Lighttpd, nginx, Cherokee
Anonymous

Massenhaft Replies - Apache am Boden

Post by Anonymous » 2007-08-19 17:39

Hallo,

wir haben durchgehend ca. 200 Besucher auf unserer Seite und ca. alle 20 Minuten gibt es eine gigantische Lag-Phase bis hin zum Timeout.

Nun habe ich eben mal einen Blick in server-status geworfen und gehe ich mal stark davon aus, dass der Lag durch diese zahlreichen Replies verursacht wird.
Kann mir vielleicht jemand sagen wie die zustande kommen?



Server Version: Apache/2.2.3 (Debian) PHP/5.2.0-8+etch7
Server Built: Jun 19 2007 09:09:03

Current Time: Sunday, 19-Aug-2007 16:50:21 CEST
Restart Time: Sunday, 19-Aug-2007 15:26:25 CEST
Parent Server Generation: 6
Server uptime: 1 hour 23 minutes 55 seconds
231 requests currently being processed, 0 idle workers

WWWWWRWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWKWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWCWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWW...W.WW.W...W.WW...W..W....WW..W.W....W

Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"C" Closing connection, "L" Logging, "G" Gracefully finishing,
"I" Idle cleanup of worker, "." Open slot with no current process

PID Key:

12890 in state: W , 13265 in state: W , 13015 in state: W
13279 in state: W , 12891 in state: W , 12892 in state: R
13335 in state: W , 13319 in state: W , 13266 in state: W
12909 in state: W , 13337 in state: W , 13268 in state: W
13386 in state: W , 13387 in state: W , 13388 in state: W
13270 in state: W , 13271 in state: W , 12628 in state: W
13289 in state: W , 12918 in state: W , 13368 in state: W
13369 in state: W , 12999 in state: W , 13339 in state: W


Meine Apache2 config:

Code: Select all


ServerRoot "/etc/apache2"

LockFile /var/lock/apache2/accept.lock

PidFile /var/run/apache2.pid

Timeout 60

KeepAlive On

MaxKeepAliveRequests 50

KeepAliveTimeout 2

<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 20
MaxSpareServers 40
MaxClients 256
MaxRequestsPerChild 200
</IfModule>

<IfModule mpm_worker_module>
StartServers 5
MinSpareServers 20
MaxSpareServers 40
MaxClients 256
MaxRequestsPerChild 200

</IfModule>
<IfModule prefork.c>
StartServers 5
MinSpareServers 20
MaxSpareServers 40
MaxClients 256
MaxRequestsPerChild 200
</IfModule>




Hier nochmal die Systemauslastung:
Tasks: 370 total, 4 running, 366 sleeping, 0 stopped, 0 zombie
Cpu(s): 37.7%us, 25.7%sy, 0.0%ni, 36.2%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Mem: 2028012k total, 1237216k used, 790796k free, 48684k buffers
Swap: 3903752k total, 0k used, 3903752k free, 387672k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2199 mysql 16 0 505m 227m 5028 S 108 11.5 267:15.57 mysqld
13888 www-data 15 0 98280 9008 3808 S 1 0.4 0:00.03 apache2
13368 www-data 15 0 99136 9.9m 5052 S 1 0.5 0:00.60 apache2
13415 www-data 15 0 97892 9524 4692 S 1 0.5 0:00.69 apache2
13646 www-data 15 0 98988 9.9m 4996 S 1 0.5 0:00.38 apache2
13713 www-data 15 0 98996 9.8m 5008 S 1 0.5 0:00.35 apache2
13811 www-data 15 0 98324 8892 3772 S 1 0.4 0:00.02 apache2
12945 www-data 16 0 97.7m 10m 5060 S 0 0.5 0:01.72 apache2
13266 www-data 16 0 98.4m 11m 5076 S 0 0.6 0:01.26 apache2
13268 www-data 15 0 99064 10m 5064 S 0 0.5 0:00.93 apache2

oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim

Re: Massenhaft Replies - Apache am Boden

Post by oxygen » 2007-08-19 18:35

Welchen MPM verwendest du? Optimal wäre worker (und nicht prefork).
Ansonsten MaxRequestsPreChild auf 200 ist zu wenig. 10000 oder 20000 sollte hier eher passen.

Laut deinem TOP Auszug versursacht auch der MySQL sehr viel Last. Vielleicht liegt hier auch das Problem. Solltest du dir mal anschauen.

Anonymous

Re: Massenhaft Replies - Apache am Boden

Post by Anonymous » 2007-08-19 19:26

Ich versteh es einfach nicht, der server läuft doch super, nur alle 20min gehen alle requests auf W, wieso?

Hab MaxRequestsPerChild jetzt auf 10000