Don't set NewRatio to 1. This means that the young gen and old gen are the same sizes. The JVM will do a full collection if the old gen does not have enough to hold all of the object in the young gen (note I wrote 'all', and not 'alive', the determination of whether to do a full vs minor collection takesp lace before the JVM figures out how many objects will survive a minor collection). I recommend setting it to 3 or 4.
From the data you posted, the "bad" run seems to be tenuring objects immediately.
If you suspect a memory leak, take a heap dump and anlayze it with VisualVM.
You might want to gather and plot the GC stastics. 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
Also, dig through this forum, it contains many tuning suggestions (including more details about using VisualVM and spotting memory leaks)