Frage

Ich bin mit ejabberd + mochiweb auf unserem Server. Je länger ich halte ejabberd und mochiweb läuft, desto mehr Speicher verbraucht wird (letzte Nacht war es raubend 35% des Speichers. Jetzt ist es etwas über 50%). Ich dachte, dies ist nur eine Mnesia Garbage Collection Problem war - so habe ich installiert Erlang R13B3 und neu gestartet ejabberd. Das hat es allerdings nicht beheben.

Also ich bemerkt, dass jetzt bei etwas über 50% des gesamten Speicherverbrauch, sieht es aus wie Start des ejabberd, „loszulassen“ Speicher und bleiben bei rund 50%. Ist das normal? Ist ~ 50% ein Schwellenwert für ejabberd, so dass, wenn sie es erreicht er sagt: „Hey Zeit, um tatsächlich etwas Speicher gehen zu lassen ...“ und vielleicht hält es den Rest der Umgebung für den schnellen Zugriff (wie Caching Mnesia?)

Ich schätze jede Eingabe. Vielen Dank!

War es hilfreich?

Lösung 2

Es stellt sich heraus, gibt es kein Speicherleck (yay!) Ejabberd nur Aufnahme ist <40MB. Schließlich sah ich das Licht, wenn ich die Verwendung von Diagrammen auf EngineYard gesehen - nur 288MB tatsächlich verwendet wird, 550MB gepuffert wird und 175MB Cache gespeichert wird. Mein ejabberd Server ein Update alle 2,5 Sekunden von jedem Client, so dass könnte erklären, warum so viel gepuffert / zwischengespeichert wird.

Vielen Dank für Ihre Hilfe.

Andere Tipps

Ausführen erlang:memory(). in der Shell ab und zu. Sie können auch erlang:system_info(Type). mit allocated_areas geben und versuchen allocator. Diese sollten Sie einen Hinweis auf welcher Art von Speicher undicht ist.

Sie können auch Setup memsup warnen Sie über Prozesse zu viel Zuteilen Speicher.

Neu erstellte Atome in erlang Prozesse erhalten nie Müll gesammelt. Dies könnte ein Problem sein, wenn Prozesse von einem algorith registriert sind, die Atom-Namen aus zufälligen zB erzeugt. zufällig Strings erstellt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top