...
You can always ADD cores for CPU-intensive applications, but avoid reducing cores else it will take to long for GC cycles to complete.
Similarly, you can always REDUCE the percentage of MAX&MIN Heap compared to total RAM down from 0.75 to 0.50, if you have a heavy app load.
Using this formula, guidelines for instance sizing are as follows:
...
Look in the controller/bin directory for the "setenv" and/or "inc" files .pre" (depending on ODL release version) to edit the JAVA_MAX_MEM, JAVA_MIN_MEM, and EXTRA_JAVA_OPTS (and others). These are then consumed by the various start/stop/... scripts. As of ODL Fluorine, you should also set ENABLE_PREFERRED_GC=false to ensure the default CMS is not automatically configured by ODL (which performs poorly with very large heaps).
The setenv.post can be used to unset JAVA_MAX_MEM and JAVA_MIN_MEM so commands like "stop" and "status" don't throw bogus errors with large heap in use.
[optional Java option to preallocate all RAM, not just reserve it: -XX:+AlwaysPreTouch -- makes start times slow, but guarantees host is healthy and actually has the RAM]
...