When the JVM memory usage for a server is getting critically high.
A memory garbage collection strategy should be changed to a more aggressive one to free up memory faster.
See the "Adaptive Sizing for Performance" section of the following URL
http://www.oracle.com/technetwork/systems/garbagecollection2-155839.html#2
The recommendation is to use the following JVM arguments
-XX:-UseParallelGC -XX:+UseAdaptiveSizePolicy
We have had great memory management success with using the -XX:-UseParallelGC option in the past.
This is a very simple change but should be coupled with performance testing.
Note that the current ChemCart garbage collector strategy is Low Pause collection.
-XX:-UseConcMarkSweepGC