-XX:+CMSIncrementalPacing does nothing but statistic logging. Isn't needed and extra processing.
-XX:+UseParNewGC is another type of Garbage Collector. UseParNewGC is typically used for applications that use < 1GB. G1GC handles large memory sizes with way greater optimized collecting times.
-XX:+CMSClassUnloadingEnabled this is a bad choice for modding applications such as Minecraft. Most of Minecraft classes are called at runtime so when a garbage collection happens they'll be wiped out.
-XX:MinHeapFreeRatio=5 - This goes by percent of your min -Xms or heap size. This will start collect when the met occupancy min free size is met.
-XX:MaxHeapFreeRatio=10 This goes by percent of your max -Xmx or heap size. This will start collect when the met occupancy max free size is met.
I wouldn't use none of the above as the defaults handle well for Minecraft.
Also, are you using Java 8?
I've tried using G1GC in the past, and it never works, I always have to use NewGC. I have a 12 core AMD proc with 32gigs of ram on 1gig line. No clue why it doesn't work for me. (using Java 8 build 25.45-b02)
BTW, here is what I'm currently using at startup:
-server -Xmx2000M -Xms16000M -Djline.terminal=jline.UnsupportedTerminal -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX
![Stick Out Tongue :p :p](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
arallelGCThreads=8 -XX:ConcGCThreads=2 -jar "{JAR}" nogui