===== NoSQL Cache und Java Parameter der Oracle NoSQL Nodes einstellen oder anpassen =====
Vor dem Anlegen eines Stores können die Default Parameter für die Cache Size und die Java VM Optionen für neue Knoten über "change-policy -params" gesetzt werden:
# anmelden an der Admin Konsole
change-policy -params "cacheSize=100637312"
change-policy -params "javaMiscParams=-server -d64 -XX:+UseCompressedOops -XX:+AlwaysPreTouch -Xms256m -Xmx512m"
Nachträglich lässt sich der Speicherbedarf mit einem "plan change-parameters" einstellen.
Zum Beispiel für den SN1 und den Replication Node rg1-rn2:
plan change-parameters -service 1 -wait -params memoryMB=512
plan change-parameters -service rg1-rn2 -wait -params javaMiscParams="-Xms512M -Xmx512M -XX:ParallelGCThreads=4"
Beispiel for all RepNodes
plan -execute change-all-repnode-params -wait -params javaMiscParams="-Xms512M -Xmx512M -XX:ParallelGCThreads=4"
Auf SN Ebene sollte der Speicherparameter gleich oder größer als auf die RN's zusammen die unter dem SN laufen.
Sind die Wert zu hoch, können die Nodes nicht gestartet werden!
**!Achtung!**
Werden die Werte in den XML Configurationsdateien per Hand geändert, wirft ein späteres "verify" einen "Verification violation: [...] Mismatch between metadata in admin service ..."
=> Daher immer versuchen das über die Kommandozeile zu bearbeiten!
==== Der Cache Size Parameter ====
Einen Wert mit Hilfe der Berkely Methode "DbCacheSize" ermitteln:
java -jar .\lib\je.jar DbCacheSize -records 100 -key 20 -data 1000
Siehe auch [[http://docs.oracle.com/cd/E17277_02/html/java/com/sleepycat/je/util/DbCacheSize.html|DbCacheSize]]
Der Wert muss minimal 96KB ( 96 * 1024 ) betragen!
FAQ:
* [[http://www.oracle.com/technetwork/database/berkeleydb/je-faq-096044.html#WhatisthesmallestcachesizeIcansetwithJE| Cache Frage im Oracle FAQ]]
==== Java Memory Parameter ====
Anmerkung:
"To take full advantage of JE cache memory, it is strongly recommended that compressed oops (-XX:+UseCompressedOops) is specified when a 64-bit JVM is used and the maximum heap size is less than 32 GB. ..." ( siehe [[http://www.oracle.com/technetwork/database/berkeleydb/je-faq-096044.html#HowcanIestimatemyapplicationsoptimalcachesize| Oracle FAQ ]])
". Enabling GC statistics in the JVM can help too. (In the Java SE 5 JVM this is enabled with ("-verbose:gc", "-XX+PrintGCDetails", "-XX:+PrintGCTimeStamps") "
Zusammenfassungen:
* http://blog.mgm-tp.com/2013/03/garbage-collection-tuning/
* http://www.cubrid.org/blog/textyle/428187
Oracle Doku:
* http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
* http://docs.oracle.com/cd/E22289_01/html/821-1274/configuring-the-default-jvm-and-java-arguments.html
* http://www.oracle.com/technetwork/java/hotspotfaq-138619.html
* http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html
* http://docs.oracle.com/cd/E13209_01/wlcp/wlss30/configwlss/jvmgc.html