vFabric Elastic Memory for Java (EM4J) 1.2 Release Notes
What's in the Release Notes
These release notes cover the following topics:
What's New in vFabric EM4J 1.2
The VMware® vFabric™ Elastic Memory for Java (EM4J) 1.2 release brings vSphere administrators improved visibility into memory usage on ESXi virtual machines running Java workloads. The EM4J Console UI displays detailed graphs of virtual machine and Java heap memory usage over time, eliminating the guess work in right-sizing virtual memory and Java heap memory. This release includes usability enhancements to the EM4J plug-in for the vSphere Web Client (also known as the Console UI) and improved memory usage statistics from the Console Guest Collector (CGC).
The helper scripts that enable the EM4J agent with Apache Tomcat are updated to use the EM4J 1.2.0 agent. See Knowledge Base Article 2011244 and Knowledge Base Article 2011243 for information about using this feature. The setenv.sh script selects the correct shared library for the machine architecture automatically, so it is no longer necessary to edit the script to specify the library.
The EM4J 1.2 release includes performance enhancements and bug fixes to all components, including the EM4J ballooning agent, CGC, Console UI, and documentation.
EM4J Console UI 1.2.0 Update
The EM4J 1.2 December 6, 2012 update adds a vSphere 5.1-compatible EM4J Console UI plug-in for the vSphere Web Client. The product download page now offers two ZIP files, one for vSphere 5.0 and another for vSphere 5.1. You must install the correct plug-in for your version of vSphere.
See Install the vSphere Web Client EM4J Plug-in for updated installation instructions. See vSphere 5.1: Monitoring Memory with the vSphere Web Client for updated instructions for the new plug-in.
The following issue has been identified in this release of vFabric EM4J.
Large memory pages may not be correctly detected (JEM-470)
The OS manages large page memory separately from regular free memory. Memory is allocated to the large page pool at startup and is available only to applications authorized to use it. A JVM must specifically request large page memory by including the -XX:+UseLargePages command-line option.
The EM4J plug-in for the vSphere Web Console displays large page memory in the "Other memory" category until it is allocated to JVM heap. This behavior is described in the Large Pages section of the EM4J user guide. When a JVM configured to use large pages starts up, the graph on the Workloads > History tab shows the Other memory line (green) falling as the Committed heap memory line (brown) rises, indicating that the JVM takes heap memory from the large page memory pool. The following graph is an example of how this might appear in the vSphere Web Console.
A graph displays unexpected results for large pages if a JVM configured to use large pages runs as the root user. A Console Guest Collector (CGC) running as a non-root user cannot detect the large page mapping and reports incorrect data to the Console UI. The following graph is an example of how this situation might appear in the Console UI.
The large page memory pool is correctly shown in the Other memory category, but when the JVM runs, the CGC reports memory taken from free memory instead of the large memory pool. Therefore, the green line stays relatively constant and the Potential Heap Size line (light blue) rises by the amount of heap consumed, exceeding the vRAM Size line (dark blue).
It is best practice to run tc Server as an unprivileged user, so this problem should be rare. If it is necessary to run the JVM as root, the problem can be avoided by also running the CGC as root.
The following issues have been resolved in this release of vFabric EM4J.