VM crashed beim Download großer Dateien

C

C:S

Foren As
Hallo,
ich habe auf einem frisch eingerichteten Lenny-Root per Xen unter anderem eine VM (auch mit Lenny) laufen, auf der eine Webseite mit ca. 60 Besuchern/Stunde (wenns gut läuft) mit Apache, PHP und MySql läuft.
Jetzt crashed diese VM immer mal wieder. Nachdem ich bis jetzt immer ratlos die Logs durchgesehen habe ist mir beim letzten mal aufgefallen, dass jedesmal als letzte Aktion eines Besuchers auf der Webseite vor dem Crash eine große Datei (großes Zip-Archiv oder Film) gedownloadet wurde. Dadurch schießt Apache in der Prozessliste ganz nach oben ( http://screencast.com/t/ZDcxOWI1YTY ) und die VM scheint einzufrieren. Der VM stehen 512Mb Ram zur Verfügung.

Hat irgendjemand eine Idee, was ich gegen das Problem tun kann? Eine Übergangslösung wäre sicherlich, große Dateien auszulagern, aber das ist natürlich alles andere als optimal.

Gruß, CS
 
512 MB sind nicht viel, und der apache genehmigt sich je nach Config mal gerne ein paar MB. Und wenn die Kiste dann anfängt zu swappen, kann der Anschein entstehen das diese eingefroren ist!
Hast du die RAM Auslastung mal überprüft, bzw ob die VM swappt ?
 
Hm, Swap war seit heut früh konstant bei 60mb... werde auf jeden Fall mal weng MySql optimieren damit Apache mehr Platz hat - und mal gucken, evtl. gibts ja eine nette Einstellung bei Apache die bei Ram-/Uploadproblemen hilft (weiß da jemand was?).
Gruß, CS
 
Ich habe zwar ein etwas anderes Szenario - ich kann Deine Beschreibung des frierenden Systems insofern unterschreiben das meine VM direkt komplett neu gebootet wurde, ohne irgendeinen LOG Hinweis. In meinem Fall war es zu wenig RAM (ich hatte anscheinend nur 128MB zugeordnet) - nach dem richtigen Konfigurieren mit (in meinem Fall) 2 GB für jede VM war alles wieder im Lot.

Was mir in letzter Zeit auffällt ist ein nicht zu reproduzierendes Problem mit "idle thread"s und Netzwerkverbindungen, es scheint so als ob sich "Lenny"s Ausgabe mit irgendetwas stößt wenn man bridged Networking einsetzt und acpi. Leider half auch das starre deaktivieren von acpi nicht aus. Aktuell kann ich das Problem nicht mehr reproduzieren, es scheint erstmal wieder weg - in der letzten Woche hatte es zu reichhaltiger KernelPanic geführt - diese wurde dann nach 15 Sekunden (panic=15) neu gebootet und für ca. 6 Stunden war wieder ruhe - das Thema ist bekannt und hier nachzuschlagen..

Andere Grundprobleme - aber gleiches Thema
Noch einer
Noch einer
Noch einer

Gibt es bei Dir ähnliche Nachrichten (/var/log/messages oder kern.log) oder reden wir über 2 Probleme?

Erste Instanz - mehr RAM oder sicherstellen das swap Space separiert wird (und nicht Swap in der VM gehandelt) - ich lege meinen Swap immer grundsätzlich ausserhalb der VM bzw. mit einem separaten Laufwerk auf einer wirklich anderen - physikalischen Partition an...

Einstellung bei Apache die bei Ram-/Uploadproblemen hilft

Ich würde es mal - Apache kastrieren nennen - jedoch sei gesagt, wenn Du einen aktiven und gut besuchten Webserver Dein eigen nennst, dann würde ich eher in Performance und mehr Hardware Geld stecken. Anbei, reden wir über einen Root Server als Host oder eine VM in VM oder sowas?

Apache Performance Tuning

Zitate aus anderen Threads ... :

Wie bekomme ich Apache schlanker hin? Er genehmigt sich >250MB...
Unter dem Aspekt solltest Du eventuell erwägen, anstelle des Prefork MPM-Moduls das Worker MPM-Modul einzusetzen. Im Worker-Modul werden die einzelnen Prozesse besser ausgenutzt, da jeder Prozess sich wiederum in Threads aufteilt. Pro Thread kann auch ein Request (pseudo-)parallel bearbeitet werden, aber mit wesentlich weniger Overhead als bei dedizierten Prozessen. Im Klartext: Bei mpm_worker kommt man mit weniger Prozessen aus als bei Prefork, um dieselbe Responsiveness zu erzielen und nutzt so die gegebenen Ressourcen besser aus.

DAS HIER würde ich definitiv befolgen wollen - aber meinen Apache würde ich auch sehr ungerne missen...

Wie kann ich Apache schlanker, schneller, besser.......höher......
Es gibt Webserver, die wesentlich schlanker implementiert sind als Apache (z. B. Lighttpd, NGinx, Gatling, ...) und die ebenfalls gut dafür geeignet sind, PHP-Seiten auszuliefern. Mit NGinx und PHP via FastCGI sowie einem anständigen Opcode-Cache sollte da noch einiges rauszuholen sein.
LG Stefan
 
Zuletzt bearbeitet:
@Hobbystern vielen Dank erstmal für deine Ausführliche Antwort!
Gibt es bei Dir ähnliche Nachrichten (/var/log/messages oder kern.log) oder reden wir über 2 Probleme?
Um die Logs auf deine Symptome zu untersuchen bin ich leider zu spät dran, die Logs wurden bereits gelöscht - beim nächsten mal werde ichs nachschauen.


Anbei, reden wir über einen Root Server als Host oder eine VM in VM oder sowas?
Hetzner Root Server, will durch die VMs Mailserver, Produktiv- und Testsystem voneinander trennen.

Erste Instanz - mehr RAM oder sicherstellen das swap Space separiert wird (und nicht Swap in der VM gehandelt)
Für jede VM gibts zwei Images die beim Start gemountet werden - eins mit OS + Daten etc., das andere als Swap-Partition.

DAS HIER würde ich definitiv befolgen wollen - aber meinen Apache würde ich auch sehr ungerne missen...
Klingt gut, wieso hat man dann aber überhaupt das Prefork MPM-Modul?

Wie kann ich Apache schlanker, schneller, besser.......höher......
Ja, habe ich mir auch schon überlegt, werde ich wenn überhaupt aber erst nach reichlicher Überlegung machen (Produktivsystem, never change a winning team und so -.-).
Gruß, CS
 
Öhm, Worker geht gar nicht mit mod_php, oder? mist...
 
Bin ich mir ehrlich gesagt nicht sicher, es ist halt "schlanker" :-)
 
Habe nach einem komplette Reboot im syslog lauter Einträge à la
Code:
Sep 29 21:24:48 mailserver kernel: [714962.943116] clocksource/0: Time went backwards: ret=76fb1aa35f delta=-3441004360800367 shadow=76fa1ca11b offset=fe466d
gefunden. Laut Xen-Wiki steht diese Meldung häufig mit Crashs in Verbindung, werde also einen der angebotenen Workarounds versuchen - vll. hab ich ja Glück und es lag daran (scheint ein häufigeres Problem mit virtuellem Lenny zu sein...)
 
Hallo,

Du solltest Dich einmal mit dem Thema "Zeitsynchronisierug in virtuellen Maschinen" (hier : VirtualBox) auseinandersetzen. Aber hier (engl)findest Du mehr Infos über Zeitsync und Virtualisierung

Unter VMWare habe ich zus. zur Sync durch VM immer einen Nettimer bzw. auf Linux Basis ntp eingesetzt und ihn alle halbe Stunde synchronisieren lassen - da dort Protokolldateien liefen die eine asynchrone Zeit gar nicht mögen, es sollte aber auf jeden Fall konfigurierbar sein.

Ich bin paranoid, daher habe ich auf dem Host - wie auch auf jedem Gast den gleichen Timeserver jedesmal doppelt prüfen lassen.

Dein Problem direkt wird in der XEN Wiki angesprochen - und zwar hier.

Soweit - LG Stefan
 
Ähmja, das ist doch der gleiche Link wie von mir (oder?), Workaround I hat mir weitergeholfen.
Danke für die anderen Links.
Gruß, CS
 
Zurück
Oben