2009-03-28 3 views
1

Ich habe ein paar linux (ubuntu) server, die jede nacht zusammenarbeiten, um etwas schwere verarbeitung zu machen. Sagen. Ich habe 2 Worker-Server und 1 großen Indizierungsserver. Die Worker-Server füttern den Indizierungsserver. Der Indizierungsserver arbeitet unter einer hohen Last (basierend auf der Eingabe, die er von den Worker-Servern erhält).wie man nagios oder munin verwendet, um stats aus der externen anwendung/server abzufragen

Ich möchte die Worker-Server in Abhängigkeit von der Last der Indizierung mit einer Geschwindigkeit arbeiten lassen können -server, um den maximalen Durchsatz zu gewährleisten. Ich weiß, dass der Durchsatz durch andere Faktoren beeinflusst wird, aber der Indizierungsserver ist im Wesentlichen CPU-gebunden und eine grobe Anleitung (so wurde mir gesagt) ist sicherzustellen, dass die gemessene Last in etwa der Anzahl der realen Prozessoren im Indizierungsserver entspricht.

Dafür muss ich in regelmäßigen Abständen die Last (10 Sekunden, 1 Minute, 5 Minuten oder so) des Indizierungsservers innerhalb einer Worker-Anwendung, die auf einem Worker-Server läuft, abfragen.

Nun würde ich sowieso eine Monitroing-Lösung wie Nagious oder Munin für die nahe Zukunft brauchen, also fragte mich, wie man den einen oder anderen benutzt, um Statistiken aus einer Anwendung abzufragen?

Danke, britské

Antwort

1

Wenn Ihre Bedürfnisse, die basisch sind, könnten Sie nur die Verwendung von SNMP. Die meisten Linux-Distributionen verfügen über die API snmp-devel, php-snmp (oder so gut wie jede andere Sprache), um die Daten einfach analysieren zu können.

Ein Fall, in den ich einmal hineingeraten bin, haben schwer beladene Server manchmal langsame Netzwerk-I/O, so API-Aufrufe, um Informationen auf Remote-Maschinen zu erhalten blockieren möglicherweise bis eine Zeitüberschreitung auftritt. Sie könnten in Betracht ziehen, ein einzelnes Kind/einen einzelnen Thread nur der Aufgabe zu widmen, die anderen zu beobachten.

Die andere Option ist etwas auf jedem Server curling() ing (oder andere Methoden) seine Vitalwerte zu einem Ort, wo der Rest lesen kann. Da es so aussieht, als ob Sie meistens den Inhalt von/proc/loadavg und/proc/meminfo benötigen, könnte das besser sein.

Verwandte Themen