After running 240 regressions doing a worldborder fill 100 on ext4 calculating GC times and TPS the following is as far as the metrics show the optimal configuration with the least amount of thrashing on an 8GB physical ram server. 10 Mystcraft worlds were initially set up with a maxed size quarry in each prior to the worldborder fill command being executed. Dynmap is not loaded at this time. This is listed in Linux multiline format and is a direct cut and paste. This test was done with MCPC 1.5.2 with full FTB Unleashed with Millenaire and MoCreatures installed as well as Ruins mod.
Criteria was based on ensuring garbage collection was performed such that no TPS report came back with <20 (All test cases that reported <20 were rejected). While not gospel this does appear to be the "best" configuration of 240 iterations that factored in various configurations. In addition of the 71 successful configurations that passed the TPS requirement this configuration completed a subsequent Dynmap fullrender in the least amount of time. Note prior to the fullrender 50 Millenaire villages were placed and a completed uptime of 120 hours without fail. All villages were within 1000 units of at least 1 other village ensuring all villages were in a chain for interaction testing. Total chunks loaded and active was 100 chunks total without players present.
Next the reported number of chunks processed was tracked and the list sorted by 'throughput' of those chunks. Any configurations that went below 10 chunks per update were culled. The remaining were then tracked with second and third quartile averages compared and ordered. The top 10 were then given a dynmap fullrender to chew on.
Final culling was a combination of Dynmap render time along with reported system load average as reported. This configuration again was top.
World Border size was set at 10000 with a 300 pad.
Java version was current as of 9/11/13.
In addition for stability testing All quarries were feeding into Enderchests and imported into an AE system with a full rack of 64K modules with 100 Quad compressed cobblestones queued up. Dirt was redirected to a void pipe prior to entering the enderchest. Bukkit plugins included:
BOSEEConomy
Creeper Collateral
Dynmap CBBridge
Essentials
mcMMO
mcCore
MobHunting
Modifyworld
PermissionsEX
Vault
WorldBorder
(Dynmap handed via the Forge version)
Lastly a player was logged in within range of a trio Millenaire Village (Norman Bourg deal). With 10 claimed faction chunks.
GC Collection seems to have a ramp up time of about 55 minutes before full stabilization (using visialgc you will see a sawtooth pattern initially for the first 55 minutes).
CPU utilization is apx 60% on average with load never exceeding 1.2 at any report point.
The 240 configurations were prepared courtesy of several really bored java gurus from the banking industry taking queues from various forums as well as work experience (and they wanted to test a new java tool that does regression testing on my shitty living room server before blowing crap up at work) so they abused my machine for minecraft 'science'.
Give it a shot and see if it improves things. Command line is configured for GC reporting as well as allowing Java's VisualVM to connect. Remember to install the visualgc plugin to view your before and after behaviors.
You can remove:
-Dcom.sun.management.jmxremote
-XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution
-XX:+PrintCommandLineFlags -XX:+PrintGCDetails -Xloggc:GC.log
to disabled additional reporting when you are comfortable with your settings. (I leave it in so I can tail -f the log to have something busy looking on my screen when people walk by )
Code:
java -Dcom.sun.management.jmxremote \
-d64 -XX:+UseCompressedOops -server \
-Xms2G -Xmx3G \
-XX:NewRatio=3 \
-XX:PermSize=150m \
-XX:NewSize=114m \
-XX:SurvivorRatio=1 \
-XX:CompileThreshold=300 \
-XX:+UseConcMarkSweepGC-XX:+UseParNewGC \
-XX:+CMSIncrementalPacing \
-XX:SoftRefLRUPolicyMSPerMB=0 \
-XX:CMSInitiatingOccupancyFraction=80 \
-XX:ParallelGCThreads=4 \
-XX:MaxHeapFreeRatio=25 \
-XX:MinHeapFreeRatio=21 \
-XX:+DisableExplicitGC \
-XX:MaxTenuringThreshold=4 \
-XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution \
-XX:+PrintCommandLineFlags -XX:+PrintGCDetails -Xloggc:GC.log \
-XX:+AggressiveOpts \
-jar current.jar
Criteria was based on ensuring garbage collection was performed such that no TPS report came back with <20 (All test cases that reported <20 were rejected). While not gospel this does appear to be the "best" configuration of 240 iterations that factored in various configurations. In addition of the 71 successful configurations that passed the TPS requirement this configuration completed a subsequent Dynmap fullrender in the least amount of time. Note prior to the fullrender 50 Millenaire villages were placed and a completed uptime of 120 hours without fail. All villages were within 1000 units of at least 1 other village ensuring all villages were in a chain for interaction testing. Total chunks loaded and active was 100 chunks total without players present.
Next the reported number of chunks processed was tracked and the list sorted by 'throughput' of those chunks. Any configurations that went below 10 chunks per update were culled. The remaining were then tracked with second and third quartile averages compared and ordered. The top 10 were then given a dynmap fullrender to chew on.
Final culling was a combination of Dynmap render time along with reported system load average as reported. This configuration again was top.
World Border size was set at 10000 with a 300 pad.
Java version was current as of 9/11/13.
In addition for stability testing All quarries were feeding into Enderchests and imported into an AE system with a full rack of 64K modules with 100 Quad compressed cobblestones queued up. Dirt was redirected to a void pipe prior to entering the enderchest. Bukkit plugins included:
BOSEEConomy
Creeper Collateral
Dynmap CBBridge
Essentials
mcMMO
mcCore
MobHunting
Modifyworld
PermissionsEX
Vault
WorldBorder
(Dynmap handed via the Forge version)
Lastly a player was logged in within range of a trio Millenaire Village (Norman Bourg deal). With 10 claimed faction chunks.
GC Collection seems to have a ramp up time of about 55 minutes before full stabilization (using visialgc you will see a sawtooth pattern initially for the first 55 minutes).
CPU utilization is apx 60% on average with load never exceeding 1.2 at any report point.
The 240 configurations were prepared courtesy of several really bored java gurus from the banking industry taking queues from various forums as well as work experience (and they wanted to test a new java tool that does regression testing on my shitty living room server before blowing crap up at work) so they abused my machine for minecraft 'science'.
Give it a shot and see if it improves things. Command line is configured for GC reporting as well as allowing Java's VisualVM to connect. Remember to install the visualgc plugin to view your before and after behaviors.
You can remove:
-Dcom.sun.management.jmxremote
-XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution
-XX:+PrintCommandLineFlags -XX:+PrintGCDetails -Xloggc:GC.log
to disabled additional reporting when you are comfortable with your settings. (I leave it in so I can tail -f the log to have something busy looking on my screen when people walk by )