Im Allgemeinen kann ein gut gestalteter Cluster JAHRE lang leben, ohne berührt zu werden. Ich hatte Cluster, die jahrelang ohne Probleme liefen. Hier sind jedoch einige Richtlinien:
Überwachung ist enorm wichtig:
1) Überwachen Sie die Latenzen. Verwenden Sie opscenter oder Ihre bevorzugten Metrik-Tools, um die Latenzen zu verfolgen. Steigende Latenzen können Anzeichen für Probleme sein, einschließlich GC-Pausen (häufiger bei Lese-Workloads als bei Schreib-Workloads), stabile Probleme und dergleichen.
2) Überwachung der stabilen Anzahl. Die Anzahl der SSTables erhöht sich, wenn Sie die Komprimierung überschreiten (jede sstable wird genau einmal geschrieben - Löschvorgänge werden durch Kombinieren alter sstables zu neuen sstables durch Komprimierung behandelt).
3) Überwachen Sie Änderungen des Knotenstatus (nach oben / unten usw.). Wenn Knoten flattern, untersuchen Sie dies, da dies nicht normal ist.
4) Behalten Sie den Überblick über Ihre Festplattennutzung - traditionell müssen Sie unter 50% bleiben (insbesondere, wenn Sie die STCS-Komprimierung verwenden).
Es gibt einige grundlegende Dinge, die Sie regelmäßig tun sollten und nicht tun sollten:
1) Nicht explizit ausführen nodetool compact
. Sie erwähnen, dass Sie es getan haben, es ist nicht tödlich, aber es erzeugt sehr große Ställe, die dann weniger wahrscheinlich an der zukünftigen Verdichtung teilnehmen. Sie müssen es nicht unbedingt weiter ausführen, aber manchmal kann es hilfreich sein, gelöschte / überschriebene Daten zu entfernen.
2) nodetool repair
wird normalerweise alle gc_grace_seconds
(standardmäßig 10 Tage) empfohlen . Es gibt Workloads, bei denen dies weniger wichtig ist. Der Hauptgrund für die Reparatur besteht darin, sicherzustellen, dass Löschmarkierungen ( tombstones
) übertragen werden, bevor sie ablaufen (sie leben gc_grace_seconds
, wenn ein Knoten zum Zeitpunkt des Löschens ausgefallen ist , werden diese Daten möglicherweise wieder lebendig ohne die Reparatur!). Wenn Sie keine Löschvorgänge ausführen und mit ausreichender Konsistenz abfragen (z. B. Lesen und Schreiben bei QUORUM), können Sie tatsächlich ein Leben ohne Reparatur führen.
3) Wenn Sie reparieren möchten, sollten Sie eine inkrementelle Reparatur in Betracht ziehen und jeweils kleine Bereiche reparieren.
4) Verdichtungsstrategien sind wichtig - sehr viel. STCS eignet sich hervorragend zum Schreiben, LCS eignet sich hervorragend zum Lesen. DTCS hat einige Macken.
5) Datenmodelle sind wichtig - genau wie RDBMS / SQL-Umgebungen Probleme bekommen, wenn nicht indizierte Abfragen große Tabellen treffen, kann Cassandra bei sehr großen Zeilen / Partitionen problematisch sein.
6) Schnappschüsse sind billig. Sehr billig. Fast augenblicklich, nur harte Links, kosten sie fast sofort keinen Speicherplatz. Verwenden Sie Snapshot, bevor Sie Versionen aktualisieren, insbesondere Hauptversionen.
7) Seien Sie vorsichtig beim Löschen. Wie in # 2 angedeutet, erstellt delete mehr Daten auf der Festplatte und gibt sie MINDESTENS nicht frei gc_grace_seconds
.
Wenn alles andere schief geht:
Ich habe Artikel gesehen, die darauf hinweisen, dass Cassandra in Prod einen dedizierten Kopf für die Verwaltung von Clustern jeder Größe benötigt. Ich weiß nicht, dass dies unbedingt der Fall ist. Wenn Sie jedoch Bedenken haben, sollten Sie einen externen Berater (TheLastPickle, Pythian) beauftragen ) oder haben Sie einen Supportvertrag (Datastax), um sich zu beruhigen.