Tuning a JVM is a touch of art and science combined, there's no one answer for everyone. The situation you're seeing sounds like the default GC is doing a "mark now, sweep later" which can lead to pauses during the sweep. One set of options you can try:
JAVA_OPTS="-server -XX:-UseParallelGC -XX:-UseConcMarkSweepGC"
That combo of options basically runs another thread (well 2) in the background which constantly mark AND sweep the GC. The penalty you pay is a bit more CPU use but in this modern day of CPUs it's hardly noticeable for most people.
Here are all the options: http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html
You really need to read as many articles on 'java performance tuning' via Google as you can find, you need to profile your application (verbose GC) to find out what it's doing to get the correct combination of params to Java. Like anything else, just blindly throwing out options without knowing what they do can lead to worse performance, not better.