Originally posted by Pradeep Bhat: How do we tune a app server for memory and other settings. How dow we decide the hardware and JVM settings etc. Are there any guidelines to be followed.Thanks
1) create a load testing script that reminds your production usage profile as closely as possible 2) start the server with profiling enabled 3) hook your profiler software to the server's JVM 4) start the load test 5) interpret the profiler's results to figure out where is the current bottleneck 6) fix the bottleneck 7) repeat from 2
Ah. I re-read your question and realized that my answer was slightly biased towards tuning your code, not the JVM. Anyway, the key is to measure instead of making wild guesses. When you have a load testing script, just run it through with various JVM settings and see how the results change.
Regarding hardware, that comes from experience. If you know some other project which had a similar usage profile, ask what kind of hardware they were using and whether that configuration was too little or too much.