Apache2 bei hohe Auslastung endless loop

MArc

Erfahrenes Mitglied
Hallo liebes Forum,

ich komme gerade nicht mehr weiter und vielleicht
hat jemand eine Idee bzgl. folgendem Problem.

Ich habe diverse Server als Webkisten im einsatz:
Debian, Apache2.2.9, PHP5, Mysql 5

Die eine Kiste hat probleme mit einer Hand voll Requests:
i7 8x3.33ghz, 12gb ram

Von einem anderen Server im gleichen Netz feuer ich mit dem Apache-Benchmark auf eine php-Datei:

Code:
ab -n 10000 -c 500 http://gazz8.localnet/index.php

folgend der Inhalt der PHP-Datei:

PHP:
<?php
for( $i=0; $i<500; $i++){
    if( is_file( '.' ) )
        $j++;
}
?>

Bei obigen Request hat der Server 50% auslastung, änder ich die Werte auf folgendes:

Code:
ab -n 15000 -c 700 http://gazz8.localnet/index.php

schießt die CPU auslastung auf 100%, der Benchmark fährt in Timeout und die Load geht ins unendliche. Die Ram-Auslastung schwangt lediglich zwischen ~500mb (ruhezustand) und 1GB.

Apache kommt nicht mehr zur ruhe und es bleibt Stundenlang auf 100% Auslastung. Das komische (daher verdacht auf endless loop):
Nachdem der Server 100% auslastung hat, beenden die Apache-Prozesse nicht mehr - es ist also nicht so, dass er weiter arbeitet
und es einfach dauert, nein. Eine hand voll Apache-Prozesse hängen mit 8-10% auslastung ab - und das ohne zu sterben stundenlang.

Apache nimmt auch keine Request mehr entgegen. Alle Timeout - Server unbrauchbar.

Nur der Restart von Apache hilft.

Feuer ich die Requests auf eine statische HTML-Datei, kann ich von drei Servern aus gleichzeitig folgenden Benchmark auf den gazz8.localnet-Server feuern und ich bekomme den Server nichtmal annäherend an 40% Auslastung.

Code:
ab -n 45000 -c 800 http://gazz8.localnet/index.html

Apache läuft im prefork. PHP mit mod_php.
Apache.conf: http://pastebin.com/m58d74a36
PHP.ini: http://pastebin.com/m128eec17

Habe noch ein Screenshot von den Prozessen gemacht, damit man die Situation besser erkennt.
http://img15.imageshack.us/img15/2073/srvhtop.jpg

Für jeden Hinweis bin ich sehr dankbar.

Grüße,
MArc
 
Zuletzt bearbeitet:
Hallo Nachwelt,

habe das Problem lokalisiert: eAccelerator haengt bei hoher Last.
Bug ist bereits bekannt -> http://www.eaccelerator.net/ticket/368

Loesung ist, den APC zu installieren. Den Server kann ich nun
wieder mit ~ 2,6mil php-zugriffen befeuern, ohne dass die Last ins
unendliche geht.

Gruesse,
MArc
 

Neue Beiträge

Zurück