Guerilla Projektmanagement

IT Projekte und Zeuch

Spaß mit modrails / passenger und Speicherproblemen

modrailsaka passenger ist wie mod_php für Rails (ja, jetzt wird es technisch).

Man kann mit passenger extrem einfach Rails Anwendungen unter Apache laufen lassen. Leider haben viele Leute Speicherprobleme im Zusammenhang mit passenger gemeldet. Ich hatte dazu letzte Nacht ein sehr seltsames Erlebnis:

Eine große Rails Anwendung sollte auf einen neuen (virtualisierten) Server umziehen. Sicherheitshalber habe ich dem Server 2GB Speicher gegeben. Leider schien dies für passenger nicht zu reichen. Selbst mit nur 3 oder 4 Instanzen habe ich den Speicher zu >80% verbraucht. Und nach spät. 1-2 Stunden fing die Maschine an zu swappen oder Apache wollte gar nicht mehr mitspielen.

Da ich aber mal schlafen wollte, habe ich den Server von 2GB auf 3GB erhöht. Das ging aber leider nicht, da nicht mehr gengu Speicher für diese virtuelle Maschine verfügbar war. Ok, aber 2.3GB waren möglich – besser als nichts.

Also die Maschine mit dem leicht höheren Speichern neu gestartet. Ergebnis: Statt 1.7GB haben die Anwendungen nur noch 500Mb Speicher verbraucht. Also hätten die 2GB auch gereicht…

Auf jeden Fall ist es extrem kompliziert, passenger und Apache vernünftig zu konfigurieren. Meine Ergebnisse bislang:

1. Lieber weniger Instanzen aufsetzen:
RailsMaxPoolSize 4
RailsPoolIdleTime 800

3 ist ok, ab 6 wird es bei mir komischerweise wieder langsamer. Standard für RailsMaxPoolSize ist 20 – das würde ich mich
nicht trauen.
RailsPoolIdleZime habe ich einfach hoch gesetzt. Warum sollte ich eine Instanz wieder beenden? Braucht duch nur Zeit zum Neustart. Die Gefahr ist natürlich, dass die einzelnen Prozesse immer mehr Speicher verbrauchen. Das werde ich beobachten.

2. Apache prefork vs. Apache worker: prefork
Bei den Einstellungen muss man einfach mal ein wenig experimentieren.
Hier sind meine, but ymmw:


StartServers 3
MinSpareServers 2
MaxSpareServers 4
MaxClients 50
MaxRequestsPerChild 0

Wenn das dann erstmal läuft, rennt der Server wirklich gut. Ich erkenne einen spürbaren Vorteil gegebenüber einem mongrel-cluster

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

What is 11 + 11 ?
Please leave these two fields as-is:
IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)