===== 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