Wir verwenden Aerospike in unseren Projekten und seltsames Problem gefangen. Wir haben einen 3-Knoten-Cluster und nach einigen Knoten Neustart funktioniert es nicht mehr. Also machen wir Test um unser Problem zu erklärenAerospike Cluster nicht sauber zur Verfügung Blöcke
Wir machen Testcluster. 3 Knoten Replikation count = 2
Hier ist unsere Namespace Config
namespace test{
replication-factor 2
memory-size 100M
high-water-memory-pct 90
high-water-disk-pct 90
stop-writes-pct 95
single-bin true
default-ttl 0
storage-engine device {
cold-start-empty true
file /tmp/test.dat
write-block-size 1M
}
Wir 100Mb Testdaten danach schreiben wir haben diese Situation
verfügbar pct gleich etwa 66% und Disk Usage über 34%
Alle gut: slight_smile:
Aber wir hielten einen Knoten. Nach der Migration sehen wir, dass verfügbar pct = 49% und Festplattennutzung 50%
Return Knoten und nach der Migration clustern sehen wir, dass Festplattennutzung vorheriges etwa 32% wurde, aber verfügbar pct auf alte Knoten bleiben 49%
verfügbar pct = 31%
Wiederholen Sie noch einmal bekommen wir diese Situation verfügbar pct = 0%
Unser Cluster abgestürzt, Clients erhalten AerospikeException: Fehlercode 8: Server-Speicherfehler
So wie wir zur Verfügung pct reinigen?
Bitte können Sie defrag-q in Ihrem Protokoll grep und posten Sie die Ergebnisse? –
Ich glaube, Sie Namespace ist zu klein für die Standard-Post-Write-Warteschlange. Versuchen Sie, dies in der Konfiguration auf 0 zu setzen und den Test zu wiederholen. – kporter
kporter wahrscheinlich genagelt es. Die Standardpostschreibwarteschlange würde 256 × 1 MB (Schreibblockgröße) pro Gerät sein. Blöcke in der Nachschreibwarteschlange können nicht defragmentiert werden. Es auf 8 oder etwas kleiner zu senken sollte helfen. – Meher