2014-03-19 14 views
14

Ich bekomme manchmal mnesia overloaded Fehlermeldung bei der Verwendung in erster Linie async_dirty Abfragen und ram_copies Tabellen. Um zu verstehen, was vor sich geht, möchte ich mehr Informationen über den MNS-Status wie die Anzahl der Abfragen pro Sekunde oder die Größe der Abfragewarteschlange erhalten. Ich habe viel gesucht und zwei mögliche Ansätze gefunden.Wie zu überwachen, Last?

Die erste ist mnesia:system_info Funktion, die eine Liste der aktuellen Transaktionen zurückgeben kann. Es scheint jedoch nicht in der Lage zu sein, Informationen über nicht-transaktionale Abfragen bereitzustellen.

Die zweite abonniert mnesia events, aber auf diese Weise ist einige aktive Hintergrundverarbeitung erforderlich, sowie das manuelle Abonnieren jeder Tabellenereignisse.

Gibt es bessere Möglichkeiten, diese Informationen zu erhalten?

+1

Können Sie das konkretisieren müssen, welche Art von Informationen wünschen Sie? Das ist nicht ganz klar. –

+0

@IGIVECRAPANSWERS, Informationen zur Abfrageausführungsrate. Es kann die Anzahl der Element-Lese-/Schreibvorgänge sein, die innerhalb der letzten Sekunde ausgeführt werden. Es kann auch die Anzahl der elementaren Lese-/Schreibvorgänge in der Warteschlange sein, aber nicht beendet. – citxx

Antwort

0

Standardmäßig ist es begrenzt mit 4.
Sie müssen dc_dump_limit von 4 auf 50 oder etwas ändern. Dann wird es für Sie arbeiten.

+0

'dc_dump_limit' steuert, wie oft' disc_copies' Tabellen aus dem Speicher ausgegeben werden. In meinem Fall wird es nicht helfen, weil ich keine 'disc_copies' Tabellen habe. Wie auch immer, die Frage ist, wie man diese "Last" misst, die Überlastung verursacht. – citxx

+0

-mnesia dc_dump_limit Anzahl und (Log)> (Dateigröße (Tab)/ Dc_dump_limit) seine ein Konfigurationsparameter. –

1

Ich weiß, das ist nicht die direkteste Antwort, und ich bin nicht so vertraut mit dem Code wie ich vor vier Jahren, aber ich hatte einmal die gleiche Frage und machte eine Erlang-App, die Mneschen Schreibstatistiken überwacht ein SVG graph von Durchsatz:

Mnesia Graphs

Wenn es irgendwie etwas, was Sie wollen, üben die Tests der Funktionalität: https://github.com/woahdae/mnesia_graphs/blob/master/test/mnesia_graphs_srv_tests.erl

Wenn es wirklich etwas, was Sie wollen, könnte ich einen zweiten Blick auf, das Projekt. Ich arbeite wieder in Erlang, also ist es eine gute Übung.

Auch noch eine Erinnerung daran, wer eine gute README ist: Sie selbst, vier Jahre später!

+0

Ok. Es sieht so aus, als ob es keine Möglichkeit gibt, aktives Monitoring zu vermeiden. Danke für die Antwort. Ich sehe mir deinen Code an. – citxx

0

Vor 16 Erlang 1> appmon:start(). Nachdem Sie 1> observer:start(). Für alle Zeiten verwenden, müssen Sie 32-Bit-WxWidget