I see that for the first hour, things go along just fine, then rapidly deteriorate. It would appear that your working set size is gretaer than 600MB, and with the heap settings you have, once you reach 600MB in the old generattion the JVM will perform only major collections and no minor collections. Wolf-Dieter's recommendation to log the GC data and then also analyze it is a good one. You will probably have to increase your heap size. I assume you are running a 32-bit OS in which case you will be limited to about a 1.5GB heap.
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