Unregistered
Registered User
Hallo zusammen,
folgendes Problem beschäftigt mich jetzt schon länger und ich finde keine akzeptable Lösung:
Erstmal die Daten:
Hardware:
Strato Rootserver High End SR mit dem Celeron 2400 512 MB etc ..
OS:
Suse 9.0 Image mit Visas 2.3 Prof. ( alle Updates drauf )
Apache Webserver:
Server Version: Apache/2.0.48 (Linux/SuSE)
Timeouts: connection: 300 keep-alive: 300
MPM Name: Prefork
MPM Information: Max Daemons: 150 Threaded: no Forked: yes
server-tuning.conf
SuPHP:
Version 0.5.2
Symptome:
Ich kann den Server durch ein schnellen Reload mit Strg+R eines total simplen PHP-Scripts fast zum Stillstand bringen.
z.B.
Dementsprechend gehts mit einer "normalen" Homepage, die auf dem Server gehostet wird ebenfalls.
Beobachtet man die Systemauslastung über top, so kann man sehen wie rapide die Systemauslastung ansteigt, bis letztendlich die ganze Maschine steht.
Das Problem liegt meiner Ansicht nach bei SuPHP, das bei jedem Reload einen neuen Prozess aufmacht. Somit läuft der Speicher voll, die Maschine fängt an zu swappen und kommt nahzu zum stehen.
Ich habe schon versucht die Einstellungen in der server-tuning.conf herunterzusetzen, leider bringt das auch keinen Erfolg. Ebenso habe ich versucht unnötige Module zu entladen um Ressourcen zu schonen, auch negativ. Ich muß die Prozesse für suphp für den jeweiligen Webnutzer irgendwie begrenzen, aber wie geht das ?
Schalte ich suphp komplett für den jeweiligen virituellen Host ab, gehts ohne Probleme.
EDIT:
Hier mal ein Auszug von ps aux :
Mittlerweile sehe ich für das Problem wirklich nur die einzige Lösung die Direktive "Maxclients" auf maximal 40 zu stellen um ein Speicherüberlauf bei einem schnellen Reload zu verhindern.
Wäre gut wenn jemand seine ps aux Werte mal posten könnte um einen Vergleichswert für /usr/bin/php zu haben, mit erscheint der Speicherbedarf zu hoch.
folgendes Problem beschäftigt mich jetzt schon länger und ich finde keine akzeptable Lösung:
Erstmal die Daten:
Hardware:
Strato Rootserver High End SR mit dem Celeron 2400 512 MB etc ..
OS:
Suse 9.0 Image mit Visas 2.3 Prof. ( alle Updates drauf )
Apache Webserver:
Server Version: Apache/2.0.48 (Linux/SuSE)
Timeouts: connection: 300 keep-alive: 300
MPM Name: Prefork
MPM Information: Max Daemons: 150 Threaded: no Forked: yes
server-tuning.conf
Code:
<IfModule prefork.c>
# number of server processes to start
StartServers 2
# minimum number of server processes which are kept spare
MinSpareServers 2
# maximum number of server processes which are kept spare
MaxSpareServers 6
# maximum number of server processes allowed to start
MaxClients 150
# maximum number of requests a server process serves
MaxRequestsPerChild 0
</IfModule>
SuPHP:
Version 0.5.2
Symptome:
Ich kann den Server durch ein schnellen Reload mit Strg+R eines total simplen PHP-Scripts fast zum Stillstand bringen.
z.B.
Code:
<?php
echo "Hallo wie gehts !";
?>
Beobachtet man die Systemauslastung über top, so kann man sehen wie rapide die Systemauslastung ansteigt, bis letztendlich die ganze Maschine steht.
Das Problem liegt meiner Ansicht nach bei SuPHP, das bei jedem Reload einen neuen Prozess aufmacht. Somit läuft der Speicher voll, die Maschine fängt an zu swappen und kommt nahzu zum stehen.
Ich habe schon versucht die Einstellungen in der server-tuning.conf herunterzusetzen, leider bringt das auch keinen Erfolg. Ebenso habe ich versucht unnötige Module zu entladen um Ressourcen zu schonen, auch negativ. Ich muß die Prozesse für suphp für den jeweiligen Webnutzer irgendwie begrenzen, aber wie geht das ?
Schalte ich suphp komplett für den jeweiligen virituellen Host ab, gehts ohne Probleme.
EDIT:
Hier mal ein Auszug von ps aux :
Code:
wwwrun 21404 0.1 2.2 27700 11672 ? S 15:50 0:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 21408 0.0 2.2 27568 11644 ? S 15:50 0:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
wwwrun 21409 0.1 2.2 27568 11644 ? S 15:50 0:00 /usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf
r080804 21413 12.8 2.2 58568 11332 ? S 15:50 0:00 /usr/bin/php
r080804 21414 15.2 2.1 58260 11004 ? R 15:50 0:00 /usr/bin/php
r080804 21415 13.7 2.1 58280 10972 ? R 15:50 0:00 /usr/bin/php
r080804 21416 12.5 1.9 57676 10180 ? R 15:50 0:00 /usr/bin/php
r080804 21417 12.0 2.0 57796 10388 ? R 15:50 0:00 /usr/bin/php
r080804 21418 12.2 1.9 57676 10188 ? S 15:50 0:00 /usr/bin/php
Mittlerweile sehe ich für das Problem wirklich nur die einzige Lösung die Direktive "Maxclients" auf maximal 40 zu stellen um ein Speicherüberlauf bei einem schnellen Reload zu verhindern.
Wäre gut wenn jemand seine ps aux Werte mal posten könnte um einen Vergleichswert für /usr/bin/php zu haben, mit erscheint der Speicherbedarf zu hoch.
Last edited by a moderator: