For suggestions on how to gather GC data and analyze it, see these white papers:
Java Garbage Collection Statistical Analysis 101
Java Garbage Collection Performance Analysis 201
at http://www.cmg.org/cgi-bin/search.cgi?q=java+peter+johnson&x=30&y=10
Which version of the JVM are you using? If earlier than 1.6, you should also set the young generation size. I recommend about 1/3 to 1/4 the heap size, so 1g should be about right (see the white papers for details).
The full GC every 2 minutes seems to indicate that there is a thread that runs every two minutes and calls Syste,.gc(). I assume that once you set -XX:+DisableExplicitGC that you no longer see the full GCs every two minutes.