OHI Value-Based Payments
 PreviousHomeNext 
2.7 System Sizing GuideBook Index2.7.3 Connection Pool Sizing Guidelines

2.7.2 JVM Options

A full list of JVM options can be found at Java HotSpot VM Options.

Setting

Description

-Xms

Initial java heap size.

-Xmn

Minimum java heap size.

-Xmx

Maximum java heap size.

-XX:PermSize

The default value is 64MB for a server JVM. Setting it to a more appropriate value eliminates the overhead of increasing this part of the heap.

-XX:MaxPermSize

Maximum size of the permanent generation.

-XX:NewSize

Size of the new generation.

-XX:MaxNewSize

Maximum size of the new generation.

Heap size does not determine the amount of memory the JVM will use.

Java will allocate a certain amount of memory for the native part of the JVM, as well as a per thread call stack and reserved code cache for JIT compilation. The native part of JVM allocation can not be influenced and depends on a number of factors including platform and heap heuristics.

-XX:PermSize

The perm size should be set to 1024 Megabytes.

-XX:MaxPermSize

The maximum perm size should be set to 1024 Megabytes.

-Xms -Xmn -Xmx

Oracle recommends that -Xmn and -Xmx be set to the same value. This eliminates potentially costly heap reallocations, and can reduce the amount of heap fragmentation that can occur. Setting -Xms is then unnecessary since the heap size itself is static.

-XX:NewSize and -XX:MaxNewSize

Oracle recommends that these be set to the same value. As a rule of thumb, make sure that these are set to 30% of the heap size.

2.7.2.1 UI Related Memory Sizing

Oracle recommends allocating 5 Megabytes of heap per tab per user session. A session maps mostly directly to a user, and a tab is an OHI Components major UI element. For example: if someone is using the OHI Claims application and has 3 tabs open in the browser (e.g. a tab for searching claims and 2 tabs for changing claims) the total heap size allocated for the users session is 15 Megabytes. Note that the number of tabs is limited to a maximum of 15 per user.

2.7.2.2 Processing Related Memory Sizing

Oracle recommends allocating 50 Megabytes of heap per processing thread. The maximum number of task or activity processing threads is controlled by the Core Work Manager Max Threads Constraint that can be set via the WebLogic Console.

2.7.2.3 Web Services Related Memory Sizing

Similar to the sizing for task or activity processing threads, Oracle recommends allocating 50 Megabytes of heap for servicing a Web Service request.

2.7.2.4 Working Space Memory

Once the UI and processing contributions have been calculated, the entire value should be increased by 30%. This accounts for working space for the garbage collector. Oracle recommends the use of the through put collector (concurrent mark and sweep or CMS) as well as the parallel new generation collector. Both of these collectors require extra working space for carrying over objects during concurrent collection.

2.7.2.4.1 Sample Worksheet for heap size calculations
PermSize

1024m

User Sessions

30

Tabs per User

3

Megabytes per tab per user

5

UI Memory
450m

30 * 3 * 5

Processing Threads

16

Threads for servicing Web Services requests

16

Megabytes per Thread

50

Processing Memory
1600m

(16 + 16) * 50

Total Memory 3074m

PermSize + UI Memory + Processing Memory

Heap Setting (-Xmn -Xmx)

~4000m

3074Mb * 1.3 (garbage collector overhead)

New Size ( -XX:NewSize -XX:MaxNewSize )
1333m

4000Mb / 3

In this scenario, the -Xmn and -Xmx values would be set to a minimum of approximately 4000 Megabytes in the shell script for setting environment variables for the OHI Components application.

2.7.2.5 Allocating too little Memory

Allocating too little memory can have significant performance impacts. It can lead to garbage collector issues, system freeze and severe system performance issues.

2.7.2.6 Allocating too much Memory

Allocating too much memory can lead to lengthy garbage collection pauses and lengthy memory defragmentation (also known as compaction). That in turn may lead to system failures. Make sure that the maximum heap size does not exceed 8192 megabytes. If more memory is required to service all requests then set up additional managed servers in the same domain / cluster for running the system.

 PreviousHomeNext 
2.7 System Sizing Guide2.7.3 Connection Pool Sizing Guidelines