JVM Arguments for Modded Minecraft (Updated 12/30/13)

flamedance58

New Member
Jul 29, 2019
39
0
0
Did all the changes and still averaging 5-10fps :/

The only thing I've changed in the past day has been my Java, so is there possibly some setting I reset or something?

[Edit] Going to try Optifine.
[Edit 2] Well that did nothing, don't think it even works.
 
Last edited:

UniZero

Popular Member
Oct 3, 2012
3,406
310
124
Scotland, UK
Did all the changes and still averaging 5-10fps :/

The only thing I've changed in the past day has been my Java, so is there possibly some setting I reset or something?

[Edit] Going to try Optifine.
[Edit 2] Well that did nothing, don't think it even works.

What graphics card does your system have? Do you have a lot of things running in the background?
 

flamedance58

New Member
Jul 29, 2019
39
0
0
Well I reformatted my computer and installed J7U45 and used the prescribed JVMs and the game runs again!
I'm thinking that something I did while jiggling my Java versions caused my Java to go nutty, I remember being told to go into Control Panel > System > Advanced Options > Environmental Variables and such and deleting something there.

Either way, thanks for your help and glad at least I did this and fixed whatever I did.
 

Gunner76th

New Member
Jul 29, 2019
13
0
0
So having gone through this thread forward and backwards, I would like a review of this startup script before I finalize it for use on our server. The server has an Intel (R) Core (TM) i3-4130 CPU @ 3.4GHz and 8 Gigs of memory installed. We are currently running the Direwolf20 1.0.12 modpack. Server is hosted by CreeperHost, it is a dedicated server, NOT a virtual server, and is located in Maidenhead UK. We have a max current player base of around 15 whitelisted members.

Currently our start script is as follows: java -Xms4048m -Xmx4048m -XX:permSize=256m -XX:NewRatio=3 -XX:SurvivorRatio=3 -XX:TargetSurvivorRatio=80 -XX:MaxTenuringThreshold=8 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:MaxGCPauseMillis=10 -XX:GCPauseIntervalMillis=50 -XX:MaxGCMinorPauseMillis=7 -XX:+ExplicitGCInvokesConcurrent -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60 -XX:+BindGCTaskThreadsToCPUs -Xnoclassgc -jar craftbukkit.jar nogui

After around 20 hours of up time, our TPS as reported by /forge tps is 20 in all dims with an overall mean tick of <20 usually between 10-15. Memory usage is reported to be around 55%< and CPU is generally around 40%< What we keep experiencing is sluggish performance, due to the lower tick rates, but with all Dims running at 20tps, we are not overly sure where the problem is. One theory is that the memory specified in -Xms and -Xmx should be increased from 4 gigs to 6 gigs, to provide the MC Server more room to work.

Is it possible that this is not the case, but rather we are experiencing GC cycles that are causing the slugishness, and if so, what changes could we make to improve TPS and thus reduce the need for such frequent server restarts?

One proposed change for the script is this: java
java -d64 -server -Xms6144m -Xmx6144m -XX:permSize=256m -XX:NewRatio=3 -XX:SurvivorRatio=3 -XX:TargetSurvivorRatio=80 -XX:MaxTenuringThreshold=8 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:UseSSE=4 -XX:MaxGCPauseMillis=10 -XX:GCPauseIntervalMillis=50 -XX:MaxGCMinorPauseMillis=7 -XX:+ExplicitGCInvokesConcurrent -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60 -XX:+BindGCTaskThreadsToCPUs -Xnoclassgc -jar craftbukkit.jar nogui

Would this do anything at all to help with overall mean TPS on the server or GC, or would this do nothing or worse, cause more issues? Like I said, we are looking to reduce the frequency that server reboots are required, and at the same time, increase Overall Mean Tick Time on the server. At the time of this posting, our server had been up for nearly 20 hours, with an average of 3 people on at any one time, with the current times reported by /forge tps:

16:46:09 [INFO] Dim -100 : Mean tick time: 28.131 ms. Mean TPS: 20.000
16:46:09 [INFO] Dim -31 : Mean tick time: 0.091 ms. Mean TPS: 20.000
16:46:09 [INFO] Dim 12 : Mean tick time: 5.705 ms. Mean TPS: 20.000
16:46:09 [INFO] Dim 11 : Mean tick time: 22.593 ms. Mean TPS: 20.000
16:46:09 [INFO] Dim 7 : Mean tick time: 0.203 ms. Mean TPS: 20.000
16:46:09 [INFO] Dim 6 : Mean tick time: 26.827 ms. Mean TPS: 20.000
16:46:09 [INFO] Dim -1 : Mean tick time: 3.380 ms. Mean TPS: 20.000
16:46:09 [INFO] Dim 0 : Mean tick time: 32.082 ms. Mean TPS: 20.000
16:46:09 [INFO] Overall : Mean tick time: 120.280 ms. Mean TPS: 8.314


If there is anything else I can provide you with to help, please let me know, and I will do my best to get the information. It is to the point, we are looking into either a mod or script that will conduct automatic server reboots every 24 hours just to combat the unknown TPS drops.
 

Eyamaz

New Member
Jul 29, 2019
2,373
0
0
-d64 -server : 64bit java defaults to this already
-XX:UseSSE=4 : is automatically set to the highest the system supports (this starts at 99 actually, and goes backwards.)
so these two options are not really needed.

try lowering -XX:CMSInitiatingOccupancyFraction=60 by 5 till the stutters stop, but i wouldnt lower it below 40. There is still some GC "stop the world" collections that can start happening that i'm looking to see if i can prevent. these are usually due to leaky worlds/chunks/etc. just remember that though jvm arguments can help, they are not a magic cureall.

I do recommend regular backups and restarts of servers though. usually once every 24 to 48 hours for restarts, depending on the size of the modpack and traffic, and backing up bi-daily, keeping 2 days of backups then discarding (if you have the storage space.)
 

Golrith

Over-Achiever
Trusted User
Nov 11, 2012
3,834
2,137
248
Wonder if anyone can help. I've got a new PC, i7-4770, 16gig mem, GTX 650 Ti gfx card. First night of playing MC (using the OP settings), I had 120 FPS. Since that night, after a series of updates to windows, graphics card, etc, etc. I'm now getting an average of 20 FPS spiking between 5-80. TPS is fine.

So, some update is causing an issue somewhere, but don't really know what could be the culprit. Any suggestions?
 

Yusunoha

New Member
Jul 29, 2019
6,440
-4
0
welp... remember that problem that I had, when I play Minecraft through the FTB launcher, I get about 30-40FPS, but if I load the same modpack through the vanilla launcher, I get between the 125-150FPS?
well, that was on my laptop, I thought this wouldn't be a problem on my normal computer, which has alot better specs compared to my laptop.

turns out that isn't the case and I've the same problem on my computer. when I play the direwolf20 modpack through the FTB launcher, I get about 30-40FPS, but when I play my custom modded world through the vanilla launcher, with about 200 mods, I get 125-150FPS...
 

Eyamaz

New Member
Jul 29, 2019
2,373
0
0
welp... remember that problem that I had, when I play Minecraft through the FTB launcher, I get about 30-40FPS, but if I load the same modpack through the vanilla launcher, I get between the 125-150FPS?
well, that was on my laptop, I thought this wouldn't be a problem on my normal computer, which has alot better specs compared to my laptop.

turns out that isn't the case and I've the same problem on my computer. when I play the direwolf20 modpack through the FTB launcher, I get about 30-40FPS, but when I play my custom modded world through the vanilla launcher, with about 200 mods, I get 125-150FPS...

are you using the .exe or .jar version of the launcher. i'll look into what is causing this.
 

Yusunoha

New Member
Jul 29, 2019
6,440
-4
0
are you using the .exe or .jar version of the launcher. i'll look into what is causing this.

I used the .exe launcher.
I'll also try using the .jar version and see if that helps...

EDIT: yup, that seems to have done the trick for me. thanks for the tip Eyamaz ;)
 
Last edited:

Henry Link

Popular Member
Dec 23, 2012
2,601
553
128
USA - East Coast
Eyamaz,

We are having the same issue as Gunner described. Our server is a KS1 from OVH (3.2 GHz i7, 8GB Ram) running Ubuntu and Java 64 7u45. Below is the line out of our script we use to start the server. Any ideas on how to get rid of the lag spikes we are seeing? I do have cron setup to reboot the server once a day and do backups of the server every 6 hours. We are running the DW20 1.6.4/1.0.12 pack. I have about 12 players on the whitelist but usually only about 2 to 4 at a time are actually on the server.

Code:
INVOCATION="java -Xms3G -Xmx3G -XX:PermSize=256m -XX:ReservedCodeCacheSize=512m -XX:NewRatio=4 -XX:SurvivorRatio=3 -XX:TargetSurvivorRatio=80 -XX:MaxTenuringThreshold=8 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=0 -XX:MaxGCPauseMillis=20 -XX:GCPauseIntervalMillis=250 -XX:MaxGCMinorPauseMillis=7 -XX:+CMSClassUnloadingEnabled -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=50 -XX:+BindGCTaskThreadsToCPUs -XX:+TieredCompilation -XX:Tier0ProfilingStartPercentage=0 -XX:Tier3InvocationThreshold=3 -XX:Tier3MinInvocationThreshold=2 -XX:Tier3CompileThreshold=2 -XX:Tier3BackEdgeThreshold=10 -XX:Tier4InvocationThreshold=4 -XX:Tier4MinInvocationThreshold=3 -XX:Tier4CompileThreshold=2 -XX:Tier4BackEdgeThreshold=8 -XX:TieredCompileTaskTimeout=5000 -XX:Tier3DelayOn=50 -XX:Tier3DelayOff=25 -XX:+UseFastEmptyMethods -XX:-DontCompileHugeMethods -XX:+AlwaysCompileLoopMethods -XX:+CICompilerCountPerCPU -XX:+UseStringCache -XX:+UseNUMA -jar $SERVICE nogui"

BTW: The arguments came from your original post just after the 1st DW20 1.6.4 pack was released.
 

Eyamaz

New Member
Jul 29, 2019
2,373
0
0
Eyamaz,

We are having the same issue as Gunner described. Our server is a KS1 from OVH (3.2 GHz i7, 8GB Ram) running Ubuntu and Java 64 7u45. Below is the line out of our script we use to start the server. Any ideas on how to get rid of the lag spikes we are seeing? I do have cron setup to reboot the server once a day and do backups of the server every 6 hours. We are running the DW20 1.6.4/1.0.12 pack. I have about 12 players on the whitelist but usually only about 2 to 4 at a time are actually on the server.

Code:
INVOCATION="java -Xms3G -Xmx3G -XX:PermSize=256m -XX:ReservedCodeCacheSize=512m -XX:NewRatio=4 -XX:SurvivorRatio=3 -XX:TargetSurvivorRatio=80 -XX:MaxTenuringThreshold=8 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=0 -XX:MaxGCPauseMillis=20 -XX:GCPauseIntervalMillis=250 -XX:MaxGCMinorPauseMillis=7 -XX:+CMSClassUnloadingEnabled -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=50 -XX:+BindGCTaskThreadsToCPUs -XX:+TieredCompilation -XX:Tier0ProfilingStartPercentage=0 -XX:Tier3InvocationThreshold=3 -XX:Tier3MinInvocationThreshold=2 -XX:Tier3CompileThreshold=2 -XX:Tier3BackEdgeThreshold=10 -XX:Tier4InvocationThreshold=4 -XX:Tier4MinInvocationThreshold=3 -XX:Tier4CompileThreshold=2 -XX:Tier4BackEdgeThreshold=8 -XX:TieredCompileTaskTimeout=5000 -XX:Tier3DelayOn=50 -XX:Tier3DelayOff=25 -XX:+UseFastEmptyMethods -XX:-DontCompileHugeMethods -XX:+AlwaysCompileLoopMethods -XX:+CICompilerCountPerCPU -XX:+UseStringCache -XX:+UseNUMA -jar $SERVICE nogui"

BTW: The arguments came from your original post just after the 1st DW20 1.6.4 pack was released.

oh dear, upgrade to the newer arguments. those arguments started causing issues with the compilation additions i didnt have time to finish working on. there were a few other arguments i changed also. so lets start with that first.
 

keybounce

New Member
Jul 29, 2019
1,925
0
0
After around 20 hours of up time, our TPS as reported by /forge tps is 20 in all dims with an overall mean tick of <20 usually between 10-15. Memory usage is reported to be around 55%< and CPU is generally around 40%< What we keep experiencing is sluggish performance, due to the lower tick rates, but with all Dims running at 20tps, we are not overly sure where the problem is. One theory is that the memory specified in -Xms and -Xmx should be increased from 4 gigs to 6 gigs, to provide the MC Server more room to work.

Is it possible that this is not the case, but rather we are experiencing GC cycles that are causing the slugishness, and if so, what changes could we make to improve TPS and thus reduce the need for such frequent server restarts?

There is no way to tell if GC is the issue without seeing the GC logs.

an Intel (R) Core (TM) i3-4130 CPU @ 3.4GHz and 8 Gigs of memory installed.

How many cores?

If it is one core, then CMS is hurting you.
If it is two cores, then CMS might be a hurt, or might be a benefit.

Both one and two cores are supposed to benefit from incremental mode, which runs the CMS in little bits, letting the game continue in-between.

16:46:09 [INFO] Dim -100 : Mean tick time: 28.131 ms. Mean TPS: 20.000
16:46:09 [INFO] Dim -31 : Mean tick time: 0.091 ms. Mean TPS: 20.000
16:46:09 [INFO] Dim 12 : Mean tick time: 5.705 ms. Mean TPS: 20.000
16:46:09 [INFO] Dim 11 : Mean tick time: 22.593 ms. Mean TPS: 20.000
16:46:09 [INFO] Dim 7 : Mean tick time: 0.203 ms. Mean TPS: 20.000
16:46:09 [INFO] Dim 6 : Mean tick time: 26.827 ms. Mean TPS: 20.000
16:46:09 [INFO] Dim -1 : Mean tick time: 3.380 ms. Mean TPS: 20.000
16:46:09 [INFO] Dim 0 : Mean tick time: 32.082 ms. Mean TPS: 20.000
16:46:09 [INFO] Overall : Mean tick time: 120.280 ms. Mean TPS: 8.314

Ignore the TPS of the dimensions; look at the overall TPS.

Now, get Opis. Opis's job is to show you where the slow entities and tile entities are.

Dim 0 (overworld), 6 (?), 11 (?), and -100 (deep dark) are all slow. Let Opis tell you why.
 

DREVL

Well-Known Member
Jul 10, 2013
1,251
380
99
oh dear, upgrade to the newer arguments. those arguments started causing issues with the compilation additions i didnt have time to finish working on. there were a few other arguments i changed also. so lets start with that first.
what are the newer arguments?
 

Eyamaz

New Member
Jul 29, 2019
2,373
0
0
what are the newer arguments?

The ones currently up. The ones in question were a previous iteration were I was also attempting to optimize compilation that I have since dropped working on (at least currently.)
 

Eyamaz

New Member
Jul 29, 2019
2,373
0
0
Always from the OP. If the (Updated +date+) changes, it means update the ones you are using too.