Configuring the Java Virtual Machine
A common way to do this is by specifying command-line arguments in the script file that starts the application server itself, but there are other methods of changing the JVM configuration that differ by brand of server. See the instructions for Sun JVM and IBM JVM to learn how to change the configurations.
Sun JVM
Command-line arguments specify the memory allocation for the server.
-Xms???m
determines the minimum amount of memory the server reserves. If that amount is not available, the application server does not start.-Xmx???m
determines the maximum amount of memory the server reserves, if available.
Important: Mitratech recommends setting the maximum and minimum memory arguments to the same number, for example: -Xms2048m -Xmx2048m
- Insert the numeric amounts to allocate as much memory as you can for the application server. Make sure that it is at least -Xms2048m -Xmx2048m.
- Directly after the above recommended memory flags, add the following parameters:
- -XX:PermSize=256m
- -XX:MaxPermSize=256m
- Ensure that the final string looks like the following (all within one line):
- -Xms2048m -Xmx2048m -XX:PermSize=256m
- -XX:MaxPermSize=256m -XX:NewSize=100m
Note: These are recommended values for 32-bit operating systems. If you are using a 64-bit operating system, you can alter these values to match your configuration.
Optional Recommended Arguments
There are some optional, recommended arguments that can help tune performance. To apply them, append the following arguments to the ones listed above. All of the arguments should be listed on a single line:
-server -XX:+HeapDumpOnOutOfMemoryError
-XX:+UseConcMarkSweepGC
-Dsun.rmi.dgc.client.gcInterval=3600000
-Dsun.rmi.dgc.server.gcInterval=3600000
-verbose:gc
-Dcollaborati.connection.readTimeout=<number of minutes>
Most of these advanced Java Virtual Machine arguments relate to garbage collection in memory. The last argument shown relates to Collaborati. Default value is 60 minutes and it is rare that you would need to change it. If you anticipate dealing with unusually large volumes of data through Collaborati, you should set this argument to a larger value, to avoid timeouts during synchronization. An example of large volumes would be timekeeper counts of 2000 or more.
For more details on performance tuning your Java environment and garbage collection, see your Sun documentation.
IBM JVM
Heap size should be set to 4000 (MB) for both initial and maximum size, presuming a load of 800 users. If your load is smaller you may be able to reduce the heap size proportionately.
Optional Recommended Arguments
There is a recommended argument that can help tune performance. Specify the following argument in the command line:
Xgcpolicy:gencon -Xmn1000m
If you are running a heap size different than 4000 then you should adjust -Xmn correspondingly to stay at 25% of the heap size.
Another argument relates to Collaborati Spend Management (CSM). The syntax of the argument is:
Dcollaborati.connection.readTimeout=<number of minutes>
Default value is 60 minutes and it is rare that you would need to change it. If you anticipate dealing with unusually large volumes of data through CSM, you should set this argument to a larger value, to avoid timeouts during synchronization. An example of large volumes would be timekeeper counts of 2000 or more.