Neuer Server Apache2 prefork / php5 -> Load explodiert nach 10 min.

Apache, Lighttpd, nginx, Cherokee
who
Posts: 3
Joined: 2007-03-18 14:00
Location: Fulda

Neuer Server Apache2 prefork / php5 -> Load explodiert nach 10 min.

Post by who » 2007-11-24 16:49

Hi, bin total vezweifelt. Haben uns 2 Server angeschafft, einen DB und einen WWW-Server. Lassen ein Joomla Projekt laufen, recht gut besucht, 800 gleichzeitig eingeloggte User sind keine Seltenheit.
Der Webserver ist ein dualcore mit 4 gb RAM / Debian / prefork /php5
Leider verursacht der Apache nach einige Minuten eineisn sehr hohen Load, also über 80. Bisher lief das ganze auf einem Server, ist zwar manchmal abgeschmiert, aber nur zu aboluten Spitzenzeiten. Die neue Kiste sofort...
Der Db-Server langweilt sich,: Load 0.5.
Meine httpd.conf sieht folgendermassen aus:

Code: Select all

ServerRoot "/etc/apache2"                                   /etc/apache2/apache2.conf (50)
LockFile /var/lock/apache2/accept.lock                      /etc/apache2/apache2.conf (57)
PidFile /var/run/apache2.pid                                /etc/apache2/apache2.conf (65)
TimeOut 300                                                 /etc/apache2/apache2.conf (70)
KeepAlive on                                                /etc/apache2/apache2.conf (76)
MaxKeepAliveRequests 0                                      /etc/apache2/apache2.conf (83)
KeepAliveTimeout 5                                          /etc/apache2/apache2.conf (89)
<IfModule mpm_prefork_module>                              /etc/apache2/apache2.conf (101)
StartServers 10                                            /etc/apache2/apache2.conf (102)
MinSpareServers 10                                         /etc/apache2/apache2.conf (103)
MaxSpareServers 20                                         /etc/apache2/apache2.conf (104)
ServerLimit 250                                            /etc/apache2/apache2.conf (105)
MaxClients 250                                             /etc/apache2/apache2.conf (106)
</IfModule>                                                /etc/apache2/apache2.conf (107)
User www-data                                              /etc/apache2/apache2.conf (125)
Group www-data                                             /etc/apache2/apache2.conf (126)
AccessFileName .htaccess                                   /etc/apache2/apache2.conf (134)
<Files ~ "^.ht">
 Order allow,deny                                          /etc/apache2/apache2.conf (141)
 Deny from all                                             /etc/apache2/apache2.conf (142)
</Files>
TypesConfig /etc/mime.types                                /etc/apache2/apache2.conf (145)
DefaultType text/plain                                     /etc/apache2/apache2.conf (156)
HostNameLookups off                                        /etc/apache2/apache2.conf (167)
ErrorLog /var/log/apache2/error.log                        /etc/apache2/apache2.conf (175)
LogLevel warn                                              /etc/apache2/apache2.conf (182)
Include /etc/apache2/mods-enabled/*.load                   /etc/apache2/apache2.conf (185)
Include /etc/apache2/mods-enabled/*.conf                   /etc/apache2/apache2.conf (186)
Include /etc/apache2/httpd.conf                            /etc/apache2/apache2.conf (189)
Include /etc/apache2/ports.conf                            /etc/apache2/apache2.conf (192)
Include /etc/apache2/conf.d/                               /etc/apache2/apache2.conf (195)
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i"  ..  /etc/apache2/apache2.conf (201)
LogFormat "%h %l %u %t "%r" %>s %b" common               /etc/apache2/apache2.conf (202)
LogFormat "%{Referer}i -> %U" referer                      /etc/apache2/apache2.conf (203)
LogFormat "%{User-agent}i" agent                           /etc/apache2/apache2.conf (204)
ServerTokens Full                                          /etc/apache2/apache2.conf (214)
ServerSignature On                                         /etc/apache2/apache2.conf (224)
<IfModule alias_module>                                    /etc/apache2/apache2.conf (226)
Alias /icons/ "/usr/share/apache2/icons/"                  /etc/apache2/apache2.conf (240)
<Directory "/usr/share/apache2/icons">
 Options Indexes MultiViews                                /etc/apache2/apache2.conf (243)
 AllowOverride None                                        /etc/apache2/apache2.conf (244)
 Order allow,deny                                          /etc/apache2/apache2.conf (245)
 Allow from all                                            /etc/apache2/apache2.conf (246)
</Directory>
</IfModule>                                               

                           /etc/apache2/mods-available/php5.conf (4)
Listen *:80                                                    /etc/apache2/ports.conf (1)
AddDefaultCharset UTF-8                                    /etc/apache2/conf.d/charset (1)
NameVirtualHost *                                 /etc/apache2/sites-available/default (1)


apchetop direkt nach dem Start;

Code: Select all

last hit: 15:36:38         atop runtime:  0 days, 00:00:09             15:36:39
All:          331 reqs (  36.8/sec)       1738.2K (  193.1K/sec)    5377.5B/req
2xx:     136 (41.1%) 3xx:     194 (58.6%) 4xx:     1 ( 0.3%) 5xx:     0 ( 0.0%)
R (  9s):     331 reqs (  36.8/sec)       1738.2K (  193.1K/sec)    5377.5B/req
2xx:     136 (41.1%) 3xx:     194 (58.6%) 4xx:     1 ( 0.3%) 5xx:     0 ( 0.0%)


Ein paar minute später ist der Load bei ca 20. apachetop:

Code: Select all

last hit: 15:39:49         atop runtime:  0 days, 00:03:19             15:39:49
All:        16943 reqs (  85.1/sec)         87.7M (  451.1K/sec)    5425.3B/req
2xx:   12115 (71.5%) 3xx:    4781 (28.2%) 4xx:    47 ( 0.3%) 5xx:     0 ( 0.0%)
R ( 30s):    3140 reqs ( 104.7/sec)         14.2M (  484.9K/sec)    4743.7B/req
2xx:    2147 (68.4%) 3xx:     979 (31.2%) 4xx:    14 ( 0.4%) 5xx:     0 ( 0.0%)


Woran könnte es liegen? Habe schon so viele Konfigrationsmöglihkeiten (apache) durchprobiert, nützt alles nichts...

tomek
Posts: 243
Joined: 2003-08-05 09:44
Location: Paderborn

Re: Neuer Server Apache2 prefork / php5 -> Load explodiert nach 10 min.

Post by tomek » 2007-11-24 18:52

Zieht sich Apache2 dann bei dir sehr viel Speicher rein und fängt der Server an zu swappen oder woraus resultiert bei dir der hohe Load?

Worauf ich hinaus will:
http://www.rootforum.org/forum/view ... hp?t=47692 (2. Posting)

who
Posts: 3
Joined: 2007-03-18 14:00
Location: Fulda

Re: Neuer Server Apache2 prefork / php5 -> Load explodiert nach 10 min.

Post by who » 2007-11-25 13:26

Nein, der Speicher scheint es nicht zu sein, denke ich zumindest, die CPU ist es viel eher. Der Swappt auch nicht.

Mein Kernelprotokoll sieht auch seltsam aus:

Code: Select all

Nov 25 12:19:39 rs9000043693 kernel: possible SYN flooding on port 80. Sending cookies.
Nov 25 12:19:54 rs9000043693 kernel: TCP: Treason uncloaked! Peer 84.171.100.191:1157/80 shrinks window 4249710081:4249716161. Repaired.
Nov 25 12:20:50 rs9000043693 kernel: possible SYN flooding on port 80. Sending cookies.
Nov 25 12:22:02 rs9000043693 kernel: TCP: Treason uncloaked! Peer 217.230.69.119:49183/80 shrinks window 92687182:92692118. Repaired.
Nov 25 12:23:05 rs9000043693 kernel: possible SYN flooding on port 80. Sending cookies.
Nov 25 12:24:23 rs9000043693 kernel: possible SYN flooding on port 80. Sending cookies.
Nov 25 12:25:47 rs9000043693 kernel: possible SYN flooding on port 80. Sending cookies.
Nov 25 12:28:39 rs9000043693 kernel: possible SYN flooding on port 80. Sending cookies.
Nov 25 12:32:15 rs9000043693 kernel: possible SYN flooding on port 80. Sending cookies.
Nov 25 12:39:06 rs9000043693 kernel: TCP: Treason uncloaked! Peer 217.230.91.160:1755/80 shrinks window 1164767598:1164775287. Repaired.
Nov 25 12:43:09 rs9000043693 kernel: possible SYN flooding on port 80. Sending cookies.
Nov 25 12:45:08 rs9000043693 kernel: possible SYN flooding on port 80. Sending cookies.
Nov 25 12:51:45 rs9000043693 kernel: possible SYN flooding on port 80. Sending cookies.
Nov 25 12:58:07 rs9000043693 kernel: possible SYN flooding on port 80. Sending cookies.
Nov 25 12:59:29 rs9000043693 kernel: TCP: Treason uncloaked! Peer 84.188.127.219:2451/80 shrinks window 2463829780:2463842848. Repaired.
Nov 25 13:03:23 rs9000043693 kernel: TCP: Treason uncloaked! Peer 84.171.100.191:2338/80 shrinks window 2710975345:2710976314. Repaired.
Nov 25 13:03:24 rs9000043693 kernel: TCP: Treason uncloaked! Peer 84.171.100.191:2338/80 shrinks window 2710975345:2710976314. Repaired.
Nov 25 13:12:47 rs9000043693 kernel: possible SYN flooding on port 80. Sending cookies.
Nov 25 13:19:01 rs9000043693 kernel: TCP: Treason uncloaked! Peer 84.171.119.226:1980/80 shrinks window 3705380806:3705392146. Repaired.
Nov 25 13:19:01 rs9000043693 kernel: TCP: Treason uncloaked! Peer 84.171.119.226:1981/80 shrinks window 3711775544:3711788144. Repaired.


Server-Stst:

Code: Select all

Server uptime: 21 minutes 48 seconds
Total accesses: 157203 - Total Traffic: 602.6 MB
CPU Usage: u2002.72 s167.87 cu.36 cs0 - 166% CPU load
120 requests/sec - 471.7 kB/second - 4019 B/request
255 requests currently being processed, 0 idle workers.

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

Re: Neuer Server Apache2 prefork / php5 -> Load explodiert nach 10 min.

Post by oxygen » 2007-11-25 17:02

Am besten würdest du eine aktuelle Apache Version (2.2.x) mit mpm_worker und einer aktuellen PHP Version verwenden.
Zugegeben, bei Debian geht das nicht. Da müsstest du auf SuSE oder Gentoo umsteigen.

Du könntest zumindest mal ein paar kleinere Optimierungen versuchen:

Code: Select all

TimeOut 30
KeepAlive on
MaxKeepAliveRequests 100
KeepAliveTimeout 5
MaxClients 100

Du solltest einen PHP Opcode Cache wie APC oder XCache installieren, falls noch nicht geschehen.
Verzichte auf nicht umbedingt nötige Apache und PHP Module.
Möglicherweise kann auch ein Reserve Proxy nützlich sein, ist aber schwer zu sagen ohne die Website zu kennen.

who
Posts: 3
Joined: 2007-03-18 14:00
Location: Fulda

Re: Neuer Server Apache2 prefork / php5 -> Load explodiert nach 10 min.

Post by who » 2007-11-25 18:57

Hey, der xcache bringt wirklich einiges!! Der Load hält sich mittlerweile im einstelligen Bereich, auch bei vielen Usern online. Der server-status zeigt nun auch nach 10 Minuten ca.50% an. Vielen Dank für den Tip!