The Java Object Heap (Java Heap) stores Java objects, including instances of classes and the data that the objects contain, such as primitives and references. The amount of memory allocated to the JVM as a whole and to its individual regions is different for every Blackboard Learn deployment. As with the maximum thread count value for Tomcat, the appropriate size of the Java Heap will vary depending on application usage.
Each JVM has built-in flags such as -verbosegc and -Xloggc that can be used to determine actual memory usage. If using verbosegc, the access requests to both Apache and Tomcat will be logged, and as such is typically used to diagnose performance or stability issues. Memory consumption can be monitored using operating system tools, such as Windows Task Manager, Prstat, NetStat, or Top, or third-party tools, such as Quest Foglight or Sun™ JConsole.
On 64-bit deployments, Blackboard recommends initially sizing the Java Heap to a value between 2GB and 4GB. Some customers have deployed substantially larger JVMs then 4GB with success. If the memory resources of a JVM with an allocation less than 1.7 GB become saturated or are consumed, increase the memory allocation in increments of 500MB to 1 GB. If the memory resources continue to become saturated or be consumed, consider adding additional JVMs as discussed in the previous section. Additional non-standard HotSpot options can also be applied to improve overall memory throughput and management. To learn more about the JVM options supported by Java, see http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp.