Solaris: unendlichen forks

Asturio

Asturio

Asturio Kee
Hallo Zusammen,

:hilfe2:
Wir entwickeln hier für Apache + FastCGI einige CGIs in C. Das FastCGI, ist eigentlich ein Modul für Apache, welche C-CGIs schneller bedienen lassen. Apache lädt die CGI binary, und diese bleibt im Speicher resident, und so muss die nicht bei jedem Aufruf von Platte neu geladen werden. Auf der Entwicklungsmaschine (ein Sparc E3500) wird in der Regel die Binary in einem Verzeichnis kompiliert, und über die laufende Binary kopiert. Und so kann man die neue Version testen. In der Regel hat man da 2 Nebeneffekte: entweder stürzt die laufende Applikation erstmal ab (mit einem Internal Server Error), und beim 2. Reload wird die neue Version gestartet. ODER der CGI hängt sich auf, und man startet den Apache nachträglich neu. Gestern hatten wir aber einen neuen unangenemeren Effekt. Das CGI hat sich unendlich(?) geforkt, so dass kaum was anderes mehr lief (Load von 900 erreicht). Diese hunderte von gleich amok gelaufene Prozesse konnte man auch nicht killen:

kill -9 `ps -ef | grep PROCESSOWNER | awk '{print $2}'` hat nie alles gekillt. Was anderes blieb mir nicht übrig als die Kiste zu rebooten (was auch eventuell mal nicht klappen muss).X(

Dazu habe ich 3 Fragen::oldman
- Wieso kommt sowas zustande?
- Wie kann ich sowas vermeiden?
und
- Was kann ich noch versuchen, wenn sowas eventuell nochmal passiert??(

Grüße,

Asturio
 
Uff. Sehr spezieller Fall, aber prinzipiell zu Apache, Modulen und Cache:

apachectl graceful

ausführen, nachdem ein Binary geändert wurde - alles andere ist ziemliches Schindluder. Natürlich sollte man auf einer Entwicklermaschine auch in der httpd.conf die Anzahl der Kindprozesse geringer stellen, als den Defaultwert. Das sollte schon mal die forks dezimieren.
Ansonsten tut's pkill -9 $PROZESSNAME eigentlich ganz ordentlich als Prozessnotbremse.

P.S.: apachectl findest Du im bin (apache1) oder sbin (apache2) Verzeichnis der jeweiligen Installation - unter Solaris 10 kann man ja etliche davon haben; also aufpassen, dass du nicht einen neuen startest, anstatt den aktiven httpd zu restarten.
Vielleicht wäre auch XAMPP (unter http://www.apachefriends.org) was für Euch, der ist als stand-alone Entwicklungsserver recht beliebt.
 
Zuletzt bearbeitet:

Ähnliche Themen

NagiosGrapher 1.7.1 funktioniert nicht

Squid nur zum maskieren der eigenen IP, nicht für Webserver auf port 80

PHP via CGI Installation/Konfiguration bei Strato - bzw. Welche Foto-Galerie nutzen??

Zurück
Oben