RAM läuft voll, weil server.php in einer Endlosschleife läuft

#1
Hallo zusammen,
ich habe das komische Phänomen, dass "server.php" (Teil von server.sh) irgendwann (manchmal nach Stunden, manchmal Tagen, Wochen) hängen bleibt und dann endlos oft gespawnt wird (wird ja jede Minute getriggert). Anschließend läuft das Script in einer Endlosschleife, da das Lock-file existiert. Ende vom Lied ist, dass der RAM voll ist, die VM ohne Ende swappt und dann Dienste hängen und schließlich gekillt werden.

Im Fehlerfall wurde mysqld gekillt und es liefen ca. 200 PHP-CLI-Jobs. Leider habe ich mangeln Zeit noch nicht genügend Debugging machen können, ich habe das Problem allerdings sowohl auf Deb 8 als auch 7. Ich betreibe ein Multiserver-Setup mit 11 Membern. Um das Problem in den Griff zu bekommen, arbeite ich gerade an einem Script, welches die php-Prozesse mit server.php killt, wenn es mehr als 3 drei gibt. Es wäre aber grundsätzlich sinnvoll dies auch in ISPC zu übernehmen, da die server.php ohnehin nur einmalig laufen darf.

Hier sieht man gut was passiert:


Kennt jemand das Problem?
 
#2
Ich habe das Problem so noch nicht gehabt. Du könntest testweise in server.sh schon den Check nach dem Lock-Fiile einbinden. Sowas wie
Code:
if [ ! -f /usr/local/ispconfig/server/temp/.ispconfig_lock ]; then
  cd /usr/local/ispconfig/server
  /usr/bin/php -q /usr/local/ispconfig/server/server.php
fi
 

Till

Administrator
#3
Sowas hatte ich auch noch nicht und an sich kann es nicht mehr als einmal laufen, wegen lockfile chcek. Ist vielleicht die Festplatte voll oder fehlt das temp Verzeichnis, in dem das Lockfile angelegt wird?
 
#4
Das Script kann schon öfter laufen. Im Check wird bis zu 2 Minuten das Lock-File geprüft und erst dann das Script beendet. Es müssen aber schon Massen an Änderungen sein, damit server.php derartig lange läuft.
 

Werbung

Top