Hello, Eyamaz.
Please help us to make best java configs ^_^
Windows 7 Pro 64bit
Gamai.Ru 2150 slots. 20 minecraft servers 100-150 slots. Avarage online 1500-2100 players.
6 server machines I7-4930K (6 core - 12 threads) 4500mhz, 64Gb DDR3 1600 mhz 9-9-9-26, RAMdisk 8Gb.
3 minecraft servers per machine running.
Here are our test java configs, but only you can help us to make them better (java 7u45 64bit). We really need your help...
1st server
:begin
ping localhost -n 5
"C:\Program Files\Java\jre7\bin\java1.exe" -Xms4G -Xmx4G -XX
ermSize=512m -XX:ReservedCodeCacheSize=1024m -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 -XX:UseSSE=4 -Dfile.encoding=UTF-8 -jar Spigot_build_830_handshakefix2.jar nogui --log-limit=100000000
goto begin
2nd server
:begin
ping localhost -n 5
"C:\Program Files\Java\jre7\bin\java2.exe" -Xms4G -Xmx4G -XX
ermSize=512m -XX:ReservedCodeCacheSize=1024m -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 -XX:UseSSE=4 -Dfile.encoding=UTF-8 -jar Spigot_build_830_handshakefix2.jar nogui --log-limit=100000000
goto begin
3rd server
:begin
ping localhost -n 5
"C:\Program Files\Java\jre7\bin\java3.exe" -Xms4G -Xmx4G -XX
ermSize=512m -XX:ReservedCodeCacheSize=1024m -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 -XX:UseSSE=4 -Dfile.encoding=UTF-8 -jar Spigot_build_830_handshakefix2.jar nogui --log-limit=100000000
goto begin
==========================
This configs we had before reading your article.
:begin
ping localhost -n 5
"C:\Program Files\Java\jre7\bin\java1.exe" -Xmx14G -Xms1G -XX:SurvivorRatio=8 -XX
ermSize=256m -XX:MaxPermSize=256m -XX:-OmitStackTraceInFastThrow -XX
arallelGCThreads=4 -Dfile.encoding=UTF-8 -XX:UseSSE=4 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -XX:+CMSParallelRemarkEnabled -XX:MaxGCPauseMillis=5 -XX:+DisableExplicitGC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseBiasedLocking -XX:TargetSurvivorRatio=90 -XX:+UseLargePages -jar Spigot_build_830_handshakefix2.jar nogui --log-limit=100000000
goto begin
==========================
Why do we want to change our java configs? Because our servers have lag spikes every 5-20 minutes with 20 TPS all the time and total computer CPU utilization 10-45%. We think this is the issue of garbage collector. Please help to fix that boring lag spikes =(