nosql:log_file_verhalten_oracle_nosql_db_11gr2
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende Überarbeitung | |||
nosql:log_file_verhalten_oracle_nosql_db_11gr2 [2013/10/08 14:23] – [Die Datendateien / Transaktionslogs analysieren] gpipperr | nosql:log_file_verhalten_oracle_nosql_db_11gr2 [2014/06/21 19:21] (aktuell) – gpipperr | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ===== Oracle NoSQL 2.1.18 - Datenwachstum und Datendatei/ | ||
+ | |||
+ | |||
+ | Bei ersten Lasttests fällt auf, das jede Operation (Einfügen, Updaten, Löschen) die scheinbare Größe des Stores auf der Platte stetig stark wachsen lässt. | ||
+ | |||
+ | Die unter der NoSQL liegende Berkeley Java DB (Version 5.0.83 in der 2.2.18) trennt die klassischen Datendateien und Transaktionslogs einer Datenbank nicht voneinander, | ||
+ | |||
+ | Ein Background Job, der Cleaner, der Berkeley Java DB bereinigt die Datenbank Dateien bei Bedarf im Hintergrund, | ||
+ | |||
+ | Um die I/O Last des Systems möglichst niedrig zu halten, findet das Umkopieren/ | ||
+ | |||
+ | |||
+ | In der Berkeley Java DB wird dieses Verhalten besonders über die folgenden Parameter gesteuert: | ||
+ | |||
+ | |||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | * je.cleaner.threads | ||
+ | * Anzahl der Cleaner Threads | ||
+ | * je.cleaner.bytesInterval | ||
+ | * Starte den Cleaner nach x geschriebenen Bytes | ||
+ | * Falls 0 bei der Byte zahl die der Hälfte eines Logs entspricht | ||
+ | * je.cleaner.minAge | ||
+ | * Wieviele Dateien müssen älter sind als die neueste damit der Cleaner arbeitet | ||
+ | * je.cleaner.minUtilization | ||
+ | * Cleaner hält die "total disk space utilization percentage" | ||
+ | * je.cleaner.minFileUtilization | ||
+ | * Cleaner bereinigt das Log soblad der Füllgrad unter diesen Wert fällt | ||
+ | * Einfügen von Daten per Batchlauf kann beobachtet werden, das die Logs nur ungefähr bis zu diesem Prozentsatz gefüllt werden | ||
+ | * je.log.fileMax | ||
+ | * Maximale Größe einer Log Datei | ||
+ | * je.log.bufferSize | ||
+ | * Minimale Größe einer Log Datei bei der Neuanlage | ||
+ | | ||
+ | Weitere wichtige Parameter sind: | ||
+ | * je.checkpointer.bytesInterval | ||
+ | * Starte den Checkpointer alle x Byte | ||
+ | * je.cleaner.expunge | ||
+ | * Falls " | ||
+ | * je.log.fileCacheSize | ||
+ | * Größe des Filehandle Caches | ||
+ | |||
+ | Solange nicht sicherstellt ist, das die Informationen nicht doch noch für ein Recovery benötigt werden, kann kein Cleaning Prozess auf dem Log statt finden! Diese Checkpoints werden vom Checkpoint Prozess gesetzt. daher ist es wichtig auch den " | ||
+ | |||
+ | |||
+ | Die Parameter im Detail finden Sie hier [[http:// | ||
+ | / | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Die aktuellen Einstellungen lassen sich ab der NoSQL Version 2.1.18 über die Datei „je.config.csv" | ||
+ | |||
+ | Am einfachsten für die Auswertung die Datei nach Windows kopieren und in Excel als CSV Datei importieren, | ||
+ | |||
+ | |||
+ | ===Wie und vor allen wann wird das Ganze dann aber jetzt wieder kleiner?=== | ||
+ | |||
+ | |||
+ | Die Statistik für das Cleaner Verhalten kann über die " | ||
+ | |||
+ | Im ersten Test mit dem default Einstellung wird beim Erreichen von 1GB „jdb“ Datei Größe eine neue Datei angelegt. Im Test wurden Daten eingefügt und wieder gelöscht, die Datendateien wachen, der Cleaner Prozess scheint aber sehr spät erst zu reagieren. | ||
+ | |||
+ | Werden allerdings die Parameter über eine je.properties recht " | ||
+ | |||
+ | Es ist noch zu pürfen, ob nicht für kleine/ | ||
+ | |||
+ | ===Wo aber lassen sich diese Wert in der NoSQL Umgebung anpassen? | ||
+ | |||
+ | |||
+ | In einer Standard Berkeley DB können die entsprechenden Parameter für den Cleaner Task über die JE Parameter | ||
+ | |||
+ | In der Dokumentation wird von **< | ||
+ | |||
+ | Beispiel für eine je.properties mit sehr kleinen Werte um das Verhalten zu testen: | ||
+ | <code java> | ||
+ | je.cleaner.threads=2 | ||
+ | je.cleaner.bytesInterval=1048576 | ||
+ | je.cleaner.minAge=2 | ||
+ | je.cleaner.minUtilization=60 | ||
+ | je.cleaner.minFileUtilization=20 | ||
+ | je.log.fileMax=1024000 | ||
+ | je.log.bufferSize=10000 | ||
+ | je.checkpointer.bytesInterval=1048576 | ||
+ | je.cleaner.expunge=true | ||
+ | je.log.fileCacheSize=1024 | ||
+ | </ | ||
+ | |||
+ | Im der Trace/Log Datei beim Starten des RN wird der angepasste Parameter dann auch dokumentiert, | ||
+ | |||
+ | Allerdings muss auf die I/O Last auf dem System stark geachtet werden, mit den obigen Einstellungen hat sich die DB auch nach längerer Zeit nicht mehr " | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === Konfiguration der Default Wert im Code === | ||
+ | |||
+ | Für die Default Werte siehe die Java Datei " | ||
+ | |||
+ | <code java> | ||
+ | .. | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | .. | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Quellen ==== | ||
+ | |||
+ | * http:// | ||
+ | * http:// | ||
+ | | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * http:// | ||
+ | |||
+ | * http:// | ||
+ | |||
+ | * http:// | ||
+ | * http:// | ||
+ | | ||
+ | |||
+ | * https:// | ||
+ | |||
+ | |||
+ | Nachfragen im Forum | ||
+ | * https:// | ||
nosql/log_file_verhalten_oracle_nosql_db_11gr2.txt · Zuletzt geändert: 2014/06/21 19:21 von gpipperr