2015-07-30 9 views
5

Ich verwende einen Datastax AMI-Cluster mit zwei Knoten in AWS. Gestern hat Cassandra angefangen, Verbindungen von allem abzulehnen. Die Systemprotokolle zeigten nichts. Nach einer Lot von von Basteln, entdeckte ich, dass die Commit-Protokolle den gesamten Speicherplatz auf dem zugewiesenen Mount gefüllt hatte und dies schien die Verbindungsverweigerung zu verursachen (löschte einige der Commit-Protokolle, neu gestartet und konnte eine Verbindung herstellen).So verhindern Sie, dass Cassandra-Commit-Protokolle Speicherplatz belegen

Ich bin auf DataStax AMI 2.5.1 und 2.1.7 Cassandra

Wenn ich mich entscheide alles von Grund auf neu wischen und neu starten, wie stelle ich sicher, dass dies nicht wieder passiert?

Antwort

6

Sie könnten versuchen, die commitlog_total_space_in_mb Einstellung in Ihrem cassandra.yaml zu senken. Der Standardwert ist 8192 MB für 64-Bit-Systeme (er sollte in Ihrer .yaml Datei auskommentiert sein ... Sie müssen ihn bei der Einstellung rückgängig machen). Es ist normalerweise eine gute Idee, dies zu planen, wenn Sie Ihre Festplatte (n) dimensionieren.

Sie können dies überprüfen, indem Sie ein du auf Ihrem commitlog Verzeichnis ausgeführt wird:

$ du -d 1 -h ./commitlog 
8.1G ./commitlog 

Obwohl ein kleineren Protokollspeicher begeht häufige Wallungen (erhöhte Disk-I/O) verursachen, so dass Sie wollen, würden Behalte das im Auge.

+0

Aus der [docs] (http://docs.datastax.com/en/cassandra/2.1/cassandra/configuration/configCassandra_yaml_r.html): Wichtig: Nachdem Sie die Eigenschaften in der Datei cassandra.yaml geändert haben, müssen Sie die Datei neu starten Knoten, damit die Änderungen wirksam werden. Es ist in den folgenden Verzeichnissen: Cassandra Paketinstallationen:/etc/cassandra Cassandra Tarball Installationen: install_location/conf DataStax Enterprise-Paket Installationen:/etc/dse/cassandra DataStax Unternehmen Tarball Installationen: install_location/resources/cassandra/conf – Patrick

1

Zusätzlich zur Verringerung der Commitlog-Größe, wie von BryceAtNetwork23 vorgeschlagen, wird eine angemessene Lösung, um sicherzustellen, dass es nicht erneut auftritt, eine Überwachung des Festplatten-Setups haben, damit Sie benachrichtigt werden, wenn es voll ist und Zeit zum Handeln/Erhöhen hat die Festplattengröße.

Wenn Sie DataStax verwenden, können Sie in OpsCenter eine entsprechende Warnung einrichten. Habe das nicht selbst in der Cloud benutzt, aber ich kann mir vorstellen, dass es funktionieren würde. Warnungen können durch Klicken auf Warnungen im oberen Banner -> Warnungen verwalten -> Warnung hinzufügen festgelegt werden. Konfigurieren Sie die zu überwachenden Mounts und die Schwellenwerte, die ausgelöst werden sollen.

Oder, ich bin sicher, es gibt bessere Tools zur Überwachung des Speicherplatzes da draußen.

+0

Gute Idee! Die DataStax-Leute sagen immer, dass ein großer Fehler darin besteht, OpsCenter nicht zu verwenden (oder zu verwenden). – Aaron