Tuning EM12c- Onto the Next Tier, JAVA
I’ve already talked about the recommendations we make for properly sizing an Enterprise Manager 12c and many already know about tuning a database, but let’s look at the tuning that may be a bit foreign to DBAs. We’ll start with Java.
We all know that it’s part of the EM12c architecture, but we often don’t realize that it requires attention to assist in Enterprise Manager running efficiently.
The Java component of the Enterprise Manager stack must be maintained- which includes applying java updates and also including the JAVA timezone information, which is so often overlooked. The JAVA TZUpdater is important for global deployments, crucial to those deployments that span multiple geographic zones.
To apply the TZUpdater, once downloaded, you run the following:
>$ORACLE_HOME/jdk/bin/java -jar tzupdater.jar
All patches, updates and any security or critical fixes must be applied to ensure you are up to date with your Java environment.
Upgrading the JDK is quite simple, as it requires you to simply replace the current $ORACLE_HOME/jdk directory with the newest download, (think like OPatch… :)) At the same time, you want to use Java versions 1.6.0- 1.6.0_43 with EM12c. Avoid JDK 1.7, which isn’t supported.
JAVA Heap size
The JAVA heap size is set by default to 2GB, (2048 value.) A larger heap size allows for more processing to be performed in parallel. For smaller environments, this value might be adequate, but as your EM12c grows, it is important to check and see if the value is still satisfying and if not, increase it. Increasing the value is referred to as vertical scaling and allows the existing OMS to handle more in with memory and capacity vs. just adding additional OMS’.
To update the vaules, you would perform this via an emctl command. In the following example, we are updating the heap size to double the default, resulting in a value of 4GB, (4096):
>emctl set property -name JAVA_EM_MEM_ARGS -value "-Xms256m -Xmx4096m -XX:MaxPermSize=768M -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:CompileThreshold=8000 -XX:PermSize=128m"
We’ve moved almost all of our EM12c installations to 64-bit, but if you are still using a 32-bit version, know that there is a 1.7GB limit on the heap size for JAVA. Increasing past this will not increase performance, so don’t configure it past the 1.7GB value for 32-bit installation.
Remember to modify only the ‘-Xmx’ parameter to change the heap size for JAVA. Leave all other parameters at their default, including the defaults for the values of the ‘-Xms’ and/or ‘-XX’ parameters.
JDaaS, JVMD as a Service
OK, so this isn’t about improvements for EM12c performance, but I think this is just so cool, I had to add a “blurb” about it here. This is new to EM12c, Release 4, (188.8.131.52.)
JDaaS is designed to enable Information Technology environments to allow their users to consume JVMD functionality in a self-service manner & manage all their JVMs within a new self-service portal
The Self Service Portal Admininistrators, (SSA) can enable JVMD on their JVMs regardless of JVMs being targets in EMCC. To enable the cloud, all that is required is to set the Quotas, set as Roles and are in terms of number of monitored JVM servers. Users then use this functionality by downloading an agent from the SSA and deploy in on the JVM they wish to monitor.
This is the first of many posts on tuning recommendations that are often made by the SCP team as we work with Oracle’s customers, but this should help folks to start realizing how much more power they have with EM12c- not just to control the JAVA used by the EM12c environment, but some of the JVM in the applications, too!