Skip to main content
pdf?stylesheet=default
Blackboard Help

Sizing the Java Object Heap

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 32-bit deployments, Blackboard recommends initially sizing the Java Heap to a value as close to 1.7GB that the JVM will permit with start-up. Allocating smaller amounts of memory is very fast because there is no need to search for free memory segments in the RAM. If properly managed, a memory allocation of 1.7 GB should be sufficient for 32-bit JVMs. 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 125 to 256 MB. If the memory resources continue to become saturated or are 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/technolog.../vmoptions.jsp.

For 32-bit operating systems, Windows and Linux versions of the Sun JVM cannot be sized greater than 1.7 GB.

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/technolog.../vmoptions.jsp.