nosql:log_file_verhalten_oracle_nosql_db_11gr2
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
nosql:log_file_verhalten_oracle_nosql_db_11gr2 [2013/08/19 17:51] – gpipperr | nosql:log_file_verhalten_oracle_nosql_db_11gr2 [2013/10/08 14:23] – [Die Datendateien / Transaktionslogs analysieren] 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> | ||
- | .. | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | .. | ||
- | </ | ||
- | |||
- | |||
- | ===== Die Datendateien / Transaktionslogs analysieren ===== | ||
- | |||
- | Mit den Tools der Berkely Java DB in .\lib\je.jar können die Store Node Datenbanken ausgewertet werden. | ||
- | |||
- | Damit diese Klassen verwendet werden können, müssen aber die KV Jar’s mit in den Klassenpfad aufgenommen werden. | ||
- | |||
- | **Nicht für produktive Umgebungen! \\ | ||
- | Seiteneffekte im laufenden Betrieb können nicht ausgeschlossen werden!** | ||
- | |||
- | |||
- | === Die Log Einträge auswerten/ ausgeben === | ||
- | |||
- | Mit Hilfe der Original Berkeley DB Management Methoden kann auf das Transaktionslog zugegriffen werden: | ||
- | |||
- | Statistik der Log's ausgeben: | ||
- | <code cmd> | ||
- | |||
- | REM in das Sofware Verzeichnis wechseln: | ||
- | cd D: | ||
- | java -jar .\lib\je.jar DbPrintLog -h D: | ||
- | |||
- | REM Note that DbPrintLog -S gives the average record size under Log statistics, in the LN (leaf node) row, at the avg bytes column. | ||
- | |||
- | </ | ||
- | |||
- | Alle Inhalte der Logs ohne den Schalter s | ||
- | |||
- | <code cmd> | ||
- | java -classpath " | ||
- | </ | ||
- | |||
- | Tipp:In der MS Powershell nicht vergessen mit "" | ||
- | |||
- | |||
- | === Datenbank Größe / Partitionen und Anzahl Datensätze pro Partition ausgeben=== | ||
- | |||
- | |||
- | Füllgrad und Größe der Daten/ | ||
- | <code java> | ||
- | |||
- | java -classpath " | ||
- | |||
- | File Size (KB) % Used | ||
- | -------- | ||
- | 00000001 | ||
- | 00000002 | ||
- | | ||
- | (LN size correction factor: 0.9585644) | ||
- | |||
- | </ | ||
- | |||
- | **LN** steht für Leaf Node. | ||
- | |||
- | |||
- | Datenbanken anzeigen lassen (Damit werden auch die Partitionen sichtbar!) mit **" | ||
- | <code cmd> | ||
- | |||
- | java -classpath " | ||
- | |||
- | </ | ||
- | |||
- | Anzahl der Einträge in den Partitionen anzeigen lassen mit **" | ||
- | <code cmd> | ||
- | |||
- | java -classpath .\lib\kvclient.jar; | ||
- | |||
- | </ | ||
- | |||
- | |||
- | Die Details der Partitionen anzeigen lassen **" | ||
- | <code cmd> | ||
- | |||
- | java -classpath " | ||
- | |||
- | </ | ||
- | |||
- | |||
- | === DB Statistik mit DbFilterStats auslesen === | ||
- | |||
- | Mit Unterstützung der Klasse **“ DbFilterStats“** kann auch einfacher die Performance CSV Datei ausgewertet werden. | ||
- | |||
- | Dazu wird angegeben welche Spalte(n) (Namen der Spalten durch Komma getrennt) ausgelesen werden soll. | ||
- | |||
- | <code cmd> | ||
- | |||
- | java -classpath .\lib\kvclient.jar; | ||
- | |||
- | </ | ||
- | |||
- | siehe [[http:// | ||
- | |||
- | |||
- | === Group Metadata ausgeben === | ||
- | |||
- | <code powershell> | ||
- | # Get the group metadata from each member of the group, directly off their persistent copy | ||
- | |||
- | java -classpath " | ||
- | |||
- | |||
- | </ | ||
- | |||
- | Von obiger Ausgabe den Host und Port eintrag in der Zeile Node: verwenden um direkt dem Node Cache abzufragen: | ||
- | |||
- | <code powershell> | ||
- | # Get the group metadata from the current master in a running group | ||
- | java -classpath " | ||
- | |||
- | </ | ||
- | |||
- | |||
- | ==== Quellen ==== | ||
- | |||
- | * http:// | ||
- | * http:// | ||
- | | ||
- | * http:// | ||
- | * http:// | ||
- | * http:// | ||
- | |||
- | * http:// | ||
- | |||
- | * http:// | ||
- | * http:// | ||
- | | ||
- | |||
- | * https:// |
nosql/log_file_verhalten_oracle_nosql_db_11gr2.txt · Zuletzt geändert: 2014/06/21 19:21 von gpipperr