Rob Poulos wrote:I guess i was more or less looking for a rule of thumb settings and work from there.
for example: given 8GB of physical memory you should never exceed allocating more than 50% (4GB) of physical memory for the JVM.
Er, that basic question was answered in 1969 when Denning wrote up Working Sets. The answer is that computers are better at managing memory than programmers, so all the theory of overlays and other manual memory management went away.
His second observation is that computers that are memory constrained work better with more real memory than with more virtual memory.
What do you think is going to use the other half of the physical memory?
If the machine is running lots of services, say Apache, DNS, postfix, etc, then it may make some sense. But it seems to me that heuristics are the way to go. Start with 100% to the JVM, back it down by 20% and repeat the tests, mapping performance, throughput or response time as you wish.
Find the knee of the curve, and go back a bit bigger.
If needed, buy more memory. Keep buying more memory (its dirt cheap) until you peg the CPU. Then buy more CPU.