rrd-tool-alternative für high volume
Ich bin daran interessiert zu wissen, wenn es irgendeine alternative zu rrdtool für die Protokollierung von Zeit-Serien-Daten. Ich bin auf der Suche auf etwas, das skaliert werden kann, die für eine große Anzahl von Geräten zu überwachen.
Von dem, was ich zu diesem Thema gelesen, rrdtool ist der I/O gebunden, wenn Sie traf es mit großen Mengen von Daten. Da habe ich die Vision, diese zu skalieren, um eine sehr große Anzahl von Geräten zu überwachen, bin ich neugierig, ob es irgendeine alternative, die würde nicht ersticken, die auf I/O. Vorzuziehen SQL basiert, aber nicht unbedingt.
Dank
- Wenn es E/A-gebunden ist, wäre das nicht gut sein? Es heißt, Sie können eine hardware-Lösung wie RAID, solid-state-Festplatten, oder mehrere Maschinen, die zu verfolgen nicht verknüpften Daten?
- mein Punkt ... die Frage ist nur, wie gut ist der HW verwendet ... der rrdcached die Nutzung ist ganz optimal ... eine Datenbank (am Ende des Tages) hat auch zum schreiben Zeug auf der Festplatte, aber da es viel mehr Allgemeine Zwecke, ich bezweifle, dass es in der Lage todo es so effizient wie rrdtool ...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn I/O-performance der wichtigsten sorgen dann Sie wollen, so etwas wie rrdcached die verfügbar ist in der aktuellen version (1.4) des RRDTools.
Den I/O-overhead ist nicht eine Funktion der Daten, die geschrieben werden, denn jeder Wert von 8 bytes pro Daten-Quelle. Die I/O-Bandbreite kommt von der Tatsache, eine ganze Branche (in der Regel 4k) muss gelesen werden bevor Sie geschrieben werden. Plötzlich schreiben 8 bytes, die Sie haben geschrieben/gelesen 8k bytes.
Den rrdcached verschmilzt all diese schreiben Sie zusammen, so, wenn ein RRD aktualisiert wird, das Verhältnis von nützlichen Daten (tatsächliche DS-Werte) zu verlorener Daten (der Ersatz-bytes des Sektors) reduziert wird.
Alle die RRDTools, wird automatisch die Arbeit mit rrdcached, wenn Sie erkennen, es läuft (über eine Umgebungsvariable). Dies ermöglicht Ihnen auslösen flushes bei Bedarf, zum Beispiel bei der Erzeugung eines Graphen aus den Daten.
Während der Umstellung auf eine SQL-basierte Lösung, die helfen kann, betrachten Sie die zusätzlichen I/O-erforderlich sind, zu unterstützen SQL. Da Sie nicht dazu neigen, verwenden Sie den RRD-Daten in dieser Art von random-access-Muster-eine Datenbank ist ein bisschen wie ein Vorschlaghammer für das problem. Beim kleben mit RRDTool halten, den Zugang zu allen eco-system von tools, die verstehen und kann die Arbeit mit den Dateien, was nützlich ist, vor allem wenn Sie bereits vertraut mit ihm.
Gibt es einige Zeitreihen-Datenbanken, die eine hohe Verfügbarkeit und/oder Skalierbarkeit als Ziele.
Vielleicht einen Blick auf
Ein Freund von mir hat einige Arbeit vor einer Weile auf einem SQL-backend für store round-robin-Daten: http://rrs.decibel.org
Ich vermute aber, dass da Fragen Sie über "Geräte-monitor", dem Sie suchen können, für eine vollständige Lösung.
Wenn I/O-Operationen pro Sekunde ist Ihre Haupt-Engpass und Sie sind mit Linux, es gibt einen einfachen hack, kostet nur Speicher. Verwenden Sie einen tmpfs mount auf der Bühne Ihre RRD schreibt.
Alle i/o-Operationen durchgeführt werden wird, im Speicher und wird nicht Schaden der Engpässe im tun, disk i/o (dies ist sogar schneller als die Verwendung von solid state disks). Sie können dann mit einem cron-job und rsync zu kopieren nur geändert RRDs auf der Festplatte einmal alle paar Minuten.
Erstellen Sie die Verzeichnisse
Erstellen Sie eine 500MB-maximale RAM-Dateisystem mit den passenden Optionen
Kopieren Sie das alte RRD-Dateien in den neuen mount-point
Konfigurieren Sie Ihre rrd-writing-Anwendung zu schreiben, um die neuen mount-Punkt
Setzen Sie einen cron-job synchronisiert nur die geänderten RRDs auf der Festplatte, einmal alle 2 Minuten
Vergessen Sie nicht, eine Kopie Ihrer gespeicherten RRD-Dateien in die mount-Punkt vor starten Sie Ihren rrd-schreiben-Anwendung! Möglicherweise müssen Sie editieren Sie das init-Skript für diesen service, um sicherzustellen, die Dateien sind da, bevor es beginnt. Wenn es startet, ohne die Dateien in place, new kahlen erstellt werden, und Sie werden sehr verwirrt, sobald die lese-Verzeichnis wird überschrieben mit leeren RRDs.
Wenn an einem gewissen Punkt müssen Sie, um die Größe des tmpfs-mount, die Sie tun können, die on-the-fly: