Benchmark Report
| # | Load | TPS Avg | TPS Min | MSPT Avg | MSPT Max | Status |
|---|---|---|---|---|---|---|
| 20 | 1,502 | 20.0 | 15.0 | 5.9 | 15 | OK |
| 21 | 3,345 | 20.0 | 20.0 | 11.4 | 17 | Failed |
| 21 | 3,345 | 19.3 | 15.0 | 11.3 | 16 | Failed |
| 21 | 2,423 | 20.0 | 20.0 | 8.6 | 13 | R1 OK |
| 21 | 2,884 | 19.9 | 15.0 | 9.7 | 15 | R2 Fail |
| 21 | 2,884 | 19.9 | 14.6 | 9.9 | 14 | R2 Fail |
| 21 | 2,653 | 20.0 | 20.0 | 9.2 | 14 | R3 Fail |
| 21 | 2,653 | 18.7 | 10.0 | 9.1 | 13 | R3 Fail |
| # | Load | TPS Avg | TPS Min | MSPT Avg | MSPT Max | Status |
|---|---|---|---|---|---|---|
| 18 | 1,374 | 19.9 | 15.0 | 34.6 | 43 | OK |
| 19 | 1,835 | 19.9 | 15.0 | 45.7 | 50 | OK |
| 20 | 2,182 | 18.4 | 15.0 | 53.7 | 67 | Failed |
| 20 | 2,182 | 18.9 | 15.0 | 52.7 | 59 | Failed |
| 20 | 2,008 | 19.4 | 15.0 | 50.8 | 57 | R1 OK |
| # | Load | TPS Avg | TPS Min | MSPT Avg | MSPT Max | Status |
|---|---|---|---|---|---|---|
| 10 | 6,754 | 20.0 | 20.0 | 23.0 | 25 | OK |
| 11 | 10,852 | 19.2 | 15.0 | 43.2 | 47 | OK |
| 12 | 13,155 | 14.6 | 5.0 | 77.6 | 179 | Failed |
| 12 | 13,155 | 15.1 | 5.0 | 71.8 | 157 | Failed |
| 12 | 12,003 | 15.2 | 10.0 | 66.5 | 138 | R1 Fail |
| 12 | 12,003 | 15.3 | 10.0 | 66.2 | 132 | R1 Fail |
| 12 | 11,427 | 15.4 | 5.5 | 63.2 | 152 | R2 Fail |
| 12 | 11,427 | 15.4 | 10.0 | 61.9 | 114 | R2 Fail |
| 12 | 11,139 | 16.1 | 10.0 | 57.1 | 126 | R3 Fail |
| 12 | 11,139 | 15.8 | 9.1 | 56.7 | 132 | R3 Fail |
| 12 | 10,995 | 15.7 | 10.0 | 57.9 | 117 | R4 Fail |
| 12 | 10,995 | 15.8 | 10.0 | 56.3 | 114 | R4 Fail |
| # | Load | TPS Avg | TPS Min | MSPT Avg | MSPT Max | Status |
|---|---|---|---|---|---|---|
| 11 | 2,817 | 17.9 | 5.0 | 53.9 | 226 | Failed |
| 11 | 2,817 | 19.0 | 15.0 | 44.9 | 64 | OK |
| 12 | 3,368 | 17.3 | 10.0 | 54.6 | 77 | Failed |
| 12 | 3,368 | 17.8 | 10.0 | 51.8 | 72 | Failed |
| 12 | 3,092 | 19.1 | 15.0 | 43.5 | 67 | R1 OK |
| 12 | 3,230 | 18.7 | 9.9 | 45.5 | 78 | R2 OK |
| # | Load | TPS Avg | TPS Min | MSPT Avg | MSPT Max | Status |
|---|---|---|---|---|---|---|
| 0 | 8 | 19.9 | 15.0 | 1.0 | 1 | Skip |
| 1 | 18 | 20.0 | 20.0 | 1.4 | 3 | Skip |
| 2 | 44 | 20.0 | 20.0 | 1.8 | 3 | Skip |
| 3 | 159 | 20.0 | 20.0 | 3.7 | 8 | Skip |
| 4 | 831 | 19.8 | 14.7 | 6.2 | 17 | Skip |
| 5 | 4,000 | 19.9 | 14.7 | 23.9 | 27 | OK |
| 6 | 6,328 | 19.8 | 12.2 | 24.3 | 37 | OK |
| 7 | 9,939 | 19.7 | 13.1 | 23.5 | 26 | OK |
| 8 | 10,000 | 0.0 | 0.0 | 0.0 | 0 | Skip |
| 8 | 10,000 | 19.4 | 10.0 | 23.5 | 26 | OK |
| # | Load | TPS Avg | TPS Min | MSPT Avg | MSPT Max | Status |
|---|---|---|---|---|---|---|
| 29 | 1,025 | 20.0 | 20.0 | 17.6 | 28 | OK |
| 30 | 1,819 | 17.2 | 10.0 | 30.4 | 96 | Failed |
| 30 | 1,819 | 17.4 | 5.0 | 27.5 | 63 | Failed |
| 30 | 1,422 | 18.1 | 5.0 | 30.5 | 247 | R1 OK |
| 30 | 1,620 | 19.8 | 10.0 | 26.0 | 63 | R2 OK |
| # | Load | TPS Avg | TPS Min | MSPT Avg | MSPT Max | Status |
|---|---|---|---|---|---|---|
| 0 | 100 | 20.0 | 20.0 | 1.0 | 7 | OK |
| 1 | 245 | 20.0 | 20.0 | 1.1 | 4 | OK |
| 2 | 600 | 19.9 | 15.0 | 1.2 | 10 | OK |
| 3 | 2,075 | 20.0 | 20.0 | 2.1 | 30 | OK |
| 4 | 10,000 | 19.1 | 15.0 | 1.1 | 2 | OK |
| 5 | 15,635 | 19.8 | 10.0 | 2.4 | 70 | OK |
| 6 | 25,000 | 19.6 | 10.0 | 3.2 | 107 | OK |
What matters
Read from the measurements, never estimatedNon-default server configuration
Compare with care against a server running default settings.
- view-distance 18 (default 10)
- simulation-distance 4 (default 10)
- spawn-limit.monster 60 (default 70)
+5 more modified settings
Java start-up line
The options this server was started with, checked against its Java version. Corrections fix what is certainly wrong; leads to test are settings to measure, never applied for you.
Current line (25 arguments)
Values of system properties, agents and file paths are never shown: they appear as <redacted>.
-Xms128M -XX:MaxRAMPercentage=78.0 -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -Duser.timezone=America/Chicago -Dterminal.jline=false -Dterminal.ansi=true
Nothing to correct: every option is valid for Java 25.
To test
Performance settings to try one at a time, then measure with a benchmark before and after. None of them is applied in the corrected line, and none comes with a promised gain.
Settings documented by PaperMC for Minecraft servers: they size G1's young generation for the game's very high allocation rate and start collections earlier. Initial and maximum heap at the same size, with AlwaysPreTouch, commit the whole heap at start-up: proposed only because that heap already stays under the memory limit.
-Xms13424M -Xmx13424MNo measurement of this run points to it: it stays a lead to measure.
sourceA collector with very short pauses for large heaps, at the cost of more CPU and memory. It replaces the current collector: remove the current collector option and its own tuning options, then measure. From Java 23 the generational mode is the default.
-XX:+UseZGCNo measurement of this run points to it: it stays a lead to measure.
sourceRe-run and compare
- Apply the corrected line where your server starts (panel start-up parameters, start.sh).
- Restart the server.
- Run a new benchmark:
/bench start - Compare the new report with this one.
This report is the before; add the new report to the comparison once it is in. A single run on each side says little: the gap between two runs of an unchanged server is noise.
Every measurement
Each test in full. Tests in trouble are open; the others fold to their summary line.
Optional
Chunks19.40 TPS23.5 ms92.1s
Maximum chunks loaded simultaneously before TPS drops
Raw data (4 fields)
Collisions19.21 TPS43.2 ms226.9s
Maximum entity collisions before TPS drops below threshold
Raw data (4 fields)
Hoppers19.76 TPS26.0 ms135.1s
Maximum hopper lines before TPS drops below threshold
Raw data (5 fields)
Mobs18.70 TPS45.5 ms102.5s
Maximum mob AI entities before TPS drops below threshold
Raw data (4 fields)
Redstone19.59 TPS3.2 ms116.9s
Maximum redstone circuits before TPS drops below threshold
Raw data (4 fields)
Explosions20.00 TPS8.6 ms229.8s
Maximum TNT explosions before TPS drops below threshold
Raw data (6 fields)
Villageois19.44 TPS50.8 ms80.9s
Maximum villager AI brains before TPS drops below threshold