These are the steps I go through to tune the JVM, optimally. Ideally any major code changes should involve at least double-checking that the JVM is performing well with those changes and I recommend leaving GC logging running.
The FusionReactor team just released something which will help greatly in this regard, production debugging; more on that soon.
Our articles will be broken into at least two parts, firstly installing and setting up the tools and then using them with sample results.
Flight recorder is part of the Java Mission Control SE Advanced options.
Java Server JVM's Always Need To Be Tuned