It depends quite a bit on the JVM that you are using…
First find your idle server memory usage. If you are not using incremental GC, start the server, leave it idle, and wait until the server memory graph shows a sawtooth down. The low point of the graph is your approximate idle memory usage. The high point is irrelevant as it is caused by unreferenced memory. If you are using incremental GC (default in most java 1.4 jvms), pick a low point from overnight. It should be pretty clear.
You will want the min to be at least this value plus the minimum processing requirement just to make sure that your server can be allocated enough memory to run reasonably.
The jvm partitions the heap into a “young generation” and an “old generation”, and these and other settings determine how exactly garbage collection happens. I assume that your real goal in setting these values properly is to make your server perform as well as it can, so you should also consider the whole range of jvm gc tuning options in addition.
The definitive guide for tuning gc is at:
[url=“Oracle Java Technologies | Oracle”]Oracle Java Technologies | Oracle
It also includes descriptions of the heap, -Xms, and -Xmx
From Sun: “Setting -Xms and -Xmx to the same value increases predictability by removing the most important sizing decision from the virtual machine. On the other hand, the virtual machine can’t compensate if you make a poor choice”
#webMethods#Integration-Server-and-ESB#Flow-and-Java-services