It is also important to mention that java7 G1 garbage collector gives much better results for certain installations (of course test it before deploying it on production). The pauses are much more predictable and, in my case, much shorter.
G1 is definitely an interesting piece of work. It's geared toward very large heaps where you need more predictable pause times, and is intended to replace the concurrent mark/sweep GC.
To enable G1 on Java 7: -XX:+UseG1GC. Prepend -J if passing to the 'jruby' command.
Here is how to get Oracle Java7 on Ubuntu: