Benchmark Report

Sep 4, 2026, 2:22 PMVoxelBench plugin 1.7.19 min 24 s benchmark
PublicSTANDARDStandard scoring 8.1.0· earlier scoring
Total score
112,308
RankB
Single Core175,342
Gameplay71,208
Hardware34,379
How this score is built
The verdict

Tick spikes · Mob AI

The worst ticks are several times the mean. Average TPS stays fine while players feel the stutter.

  • mspt_avg = 101 ms
  • mspt_p99 = 307.52 ms
  • spike_ratio = 3.04 ratio
  • sample_count = 88 count

Weakest test: Mob AI, 11.01 TPS on average. The 15 other tests hold at least 19.96 TPS.

Multipliers appliedSynergy ×1.073Stability ×1.020Duration ×1.062

Compared with other servers

The comparison with other servers uses reports scored with version 8.3.0 of the scoring rules. This report was scored with another version, so its score is not comparable.

What matters

Read from the measurements, never estimated
CriticalMob AI

Tick spikes

The worst ticks are several times the mean. Average TPS stays fine while players feel the stutter.

  • mspt_avg = 101 ms
  • mspt_p99 = 307.52 ms
  • spike_ratio = 3.04 ratio
  • sample_count = 88 count
See the setting this justifies
Good to know

Non-default server configuration

Compare with care against a server running default settings.

  • view-distance 12 (default 10)
  • simulation-distance 4 (default 10)
  • spawn-limit.monster 50 (default 70)

+5 more modified settings

Warning

CPU quota

The JVM sees far fewer cores than the host advertises. Everything that parallelises is bounded by the container, not by the machine.

Likely cause: CPU quota

  • host_threads = 20 cores
  • usable_cores = 10 cores
  • core_ratio = 2 ratio
›+2 more findings
For informationMemory latency not measuredmemorynot measured

No access latency was published, so the score assumed an unfavourable one. Publishing the measurement can only help.

  • assumed_latency_ns = 180 ns
  • reference_latency_ns = 120 ns
For informationRandom 4K not measureddisknot measured

Direct IO was refused by the host, so the random part of the disk score rests on an assumption rather than a measurement.

  • assumed_random_mbps = 90 MB/s
  • reference_random_mbps = 150 MB/s

A finding stays silent rather than attribute a cause without evidence. An absent cause is an answer, not an omission.

Test by test

Problems first — select a row for the full test

Settings your measurements justify

Each setting below is triggered by a measurement from this report, and names the test to replay to find out whether it helped.

Spigotspigot.yml

Shrink the monster activation range

world-settings.default.entity-activation-range.monsters: 24

Measured : mobAI.mspt.avg 101.0 ms (threshold 35.0 ms)

Mob AI costs more per tick than the budget allows. The activation range decides how far from a player a monster keeps thinking; shrinking it puts distant ones to sleep without removing them.

Test to replay : mobAI

These settings trade a little gameplay fidelity for tick budget. Apply one at a time and replay the named test: the effect stays a hypothesis until you have measured it.

Briefing for a language model

Paste this into the assistant of your choice to have it rewritten in prose. It already carries every number, so the model has none left to invent.

{
  "format": "voxelbench.tuning.v1",
  "instruction": "Rewrite each recommendation below as plain prose for a server operator. Every number you are allowed to use is already in this document: the measured value, its threshold, and the proposed setting. Do not compute, estimate or predict any other number, and never state an expected gain. Keep every setting name and value exactly as written.",
  "server": {
    "type": "purpur",
    "minecraft": "1.21.11",
    "java": "25.0.3"
  },
  "recommendations": [
    {
      "id": "spigot.portee-activation-monstres",
      "family": "spigot",
      "measure": "mobAI.mspt.avg",
      "value": 101,
      "unit": "ms",
      "threshold": 35,
      "control_test": "mobAI",
      "file": "spigot.yml",
      "setting": "world-settings.default.entity-activation-range.monsters",
      "proposed_value": "24",
      "current_value": null
    }
  ]
}

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.

DangerJava 25JVM not identifiedCollector: G1Container: 34406 MiB, safe heap up to 29245 MiB
Current line (44 arguments)

Values of system properties, agents and file paths are never shown: they appear as <redacted>.

-Dterminal.jline=false -Dterminal.ansi=true -DIReallyKnowWhatIAmDoingISwear -XX:+DisableExplicitGC -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1HeapRegionSize=8M -XX:G1HeapWastePercent=5 -XX:G1MaxNewSizePercent=40 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1NewSizePercent=30 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -XX:MaxGCPauseMillis=200 -XX:MaxTenuringThreshold=1 -XX:SurvivorRatio=32 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -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 -Xms256M -Xmx29491M

To correct

  • DangerHeap too close to the container's limit-Xmx29491M

    The heap may use 29491 MiB of the container's 34406 MiB, which leaves 4915 MiB for everything else (code, threads, network buffers). Under load the server can be killed without any Java error. The corrected line keeps 5161 MiB outside the heap.

  • NoteOption set more than once-XX:+DisableExplicitGC

    The JVM keeps only the last occurrence (-XX:+DisableExplicitGC); the earlier ones do nothing but mislead whoever reads the line.

  • NoteOption set more than once-XX:+ParallelRefProcEnabled

    The JVM keeps only the last occurrence (-XX:+ParallelRefProcEnabled); the earlier ones do nothing but mislead whoever reads the line.

  • NoteOption set more than once-XX:+PerfDisableSharedMem

    The JVM keeps only the last occurrence (-XX:+PerfDisableSharedMem); the earlier ones do nothing but mislead whoever reads the line.

  • NoteOption set more than once-XX:+UnlockExperimentalVMOptions

    The JVM keeps only the last occurrence (-XX:+UnlockExperimentalVMOptions); the earlier ones do nothing but mislead whoever reads the line.

  • NoteOption set more than once-XX:+UseG1GC

    The JVM keeps only the last occurrence (-XX:+UseG1GC); the earlier ones do nothing but mislead whoever reads the line.

  • NoteOption set more than once-XX:G1HeapRegionSize=8M

    The JVM keeps only the last occurrence (-XX:G1HeapRegionSize=8M); the earlier ones do nothing but mislead whoever reads the line.

  • NoteOption set more than once-XX:G1HeapWastePercent=5

    The JVM keeps only the last occurrence (-XX:G1HeapWastePercent=5); the earlier ones do nothing but mislead whoever reads the line.

  • NoteOption set more than once-XX:G1MaxNewSizePercent=40

    The JVM keeps only the last occurrence (-XX:G1MaxNewSizePercent=40); the earlier ones do nothing but mislead whoever reads the line.

  • NoteOption set more than once-XX:G1MixedGCCountTarget=4

    The JVM keeps only the last occurrence (-XX:G1MixedGCCountTarget=4); the earlier ones do nothing but mislead whoever reads the line.

  • NoteOption set more than once-XX:G1MixedGCLiveThresholdPercent=90

    The JVM keeps only the last occurrence (-XX:G1MixedGCLiveThresholdPercent=90); the earlier ones do nothing but mislead whoever reads the line.

  • NoteOption set more than once-XX:G1NewSizePercent=30

    The JVM keeps only the last occurrence (-XX:G1NewSizePercent=30); the earlier ones do nothing but mislead whoever reads the line.

  • NoteOption set more than once-XX:G1RSetUpdatingPauseTimePercent=5

    The JVM keeps only the last occurrence (-XX:G1RSetUpdatingPauseTimePercent=5); the earlier ones do nothing but mislead whoever reads the line.

  • NoteOption set more than once-XX:G1ReservePercent=20

    The JVM keeps only the last occurrence (-XX:G1ReservePercent=20); the earlier ones do nothing but mislead whoever reads the line.

  • NoteOption set more than once-XX:InitiatingHeapOccupancyPercent=15

    The JVM keeps only the last occurrence (-XX:InitiatingHeapOccupancyPercent=15); the earlier ones do nothing but mislead whoever reads the line.

  • NoteOption set more than once-XX:MaxGCPauseMillis=200

    The JVM keeps only the last occurrence (-XX:MaxGCPauseMillis=200); the earlier ones do nothing but mislead whoever reads the line.

  • NoteOption set more than once-XX:MaxTenuringThreshold=1

    The JVM keeps only the last occurrence (-XX:MaxTenuringThreshold=1); the earlier ones do nothing but mislead whoever reads the line.

  • NoteOption set more than once-XX:SurvivorRatio=32

    The JVM keeps only the last occurrence (-XX:SurvivorRatio=32); the earlier ones do nothing but mislead whoever reads the line.

Corrected line to copy

  • Removed-XX:+DisableExplicitGCearlier occurrence; the JVM keeps -XX:+DisableExplicitGC.
  • Removed-XX:+ParallelRefProcEnabledearlier occurrence; the JVM keeps -XX:+ParallelRefProcEnabled.
  • Removed-XX:+PerfDisableSharedMemearlier occurrence; the JVM keeps -XX:+PerfDisableSharedMem.
  • Removed-XX:+UnlockExperimentalVMOptionsearlier occurrence; the JVM keeps -XX:+UnlockExperimentalVMOptions.
  • Removed-XX:+UseG1GCearlier occurrence; the JVM keeps -XX:+UseG1GC.
  • Removed-XX:G1HeapRegionSize=8Mearlier occurrence; the JVM keeps -XX:G1HeapRegionSize=8M.
  • Removed-XX:G1HeapWastePercent=5earlier occurrence; the JVM keeps -XX:G1HeapWastePercent=5.
  • Removed-XX:G1MaxNewSizePercent=40earlier occurrence; the JVM keeps -XX:G1MaxNewSizePercent=40.
  • Removed-XX:G1MixedGCCountTarget=4earlier occurrence; the JVM keeps -XX:G1MixedGCCountTarget=4.
  • Removed-XX:G1MixedGCLiveThresholdPercent=90earlier occurrence; the JVM keeps -XX:G1MixedGCLiveThresholdPercent=90.
  • Removed-XX:G1NewSizePercent=30earlier occurrence; the JVM keeps -XX:G1NewSizePercent=30.
  • Removed-XX:G1RSetUpdatingPauseTimePercent=5earlier occurrence; the JVM keeps -XX:G1RSetUpdatingPauseTimePercent=5.
  • Removed-XX:G1ReservePercent=20earlier occurrence; the JVM keeps -XX:G1ReservePercent=20.
  • Removed-XX:InitiatingHeapOccupancyPercent=15earlier occurrence; the JVM keeps -XX:InitiatingHeapOccupancyPercent=15.
  • Removed-XX:MaxGCPauseMillis=200earlier occurrence; the JVM keeps -XX:MaxGCPauseMillis=200.
  • Removed-XX:MaxTenuringThreshold=1earlier occurrence; the JVM keeps -XX:MaxTenuringThreshold=1.
  • Removed-XX:SurvivorRatio=32earlier occurrence; the JVM keeps -XX:SurvivorRatio=32.
  • Changed-Xmx29491M-Xmx29245Mleaves 5161 MiB outside the heap.
java -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 -Xms256M -Xmx29245M -jar server.jar nogui

Replace server.jar with your server's jar. Paste the line where your server is started: the start-up parameters (or JVM arguments) of your hosting panel, or your start.sh / start.bat. Only the corrections above differ from your current line.

Your current line also carries 7 other arguments (system properties, agents): keep them between java and -jar. Their values are not shown here.

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.

to testAikar's G1 settings

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.

-Xms29245M

No measurement of this run points to it: it stays a lead to measure.

source
to testGenerational ZGC

A 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:+UseZGC

No measurement of this run points to it: it stays a lead to measure.

source

Re-run and compare

  1. Apply the corrected line where your server starts (panel start-up parameters, start.sh).
  2. Restart the server.
  3. Run a new benchmark: /bench start
  4. Compare the new report with this one.
Open the comparison with this report

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.

Single-Core Stress

RedstoneHealthy

Single-core stress via intensive redstone circuit updates.

  • Heavy garbage collection3 collections, 18ms total
TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
3.00
avg
3.30
max
3.80
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P953.61
MSPT P99 (worst)3.84
TPS σ0.000
MSPT σ0.178
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability0.7%(Stable)
Raw data (12 fields)
workUnit: piston movessamplesProcessed: 93pistonMoves: 14,896gcCount: 3effectiveTps: 20.05heapUsedMb: 2,633workCompleted: 14,896filterRate: 0pistonCount: 1,600samplesValid: 93zoneChunksForced: 81gcTimeMs: 18
Block PhysicsHealthy

Single-core stress via falling-block physics.

  • Heavy garbage collection5 collections, 77ms total
TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
8.70
avg
17.20
max
20.10
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P9519.65
MSPT P99 (worst)20.06
TPS σ0.000
MSPT σ3.153
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability12.6%(Moderate)
Raw data (20 fields)
samplesProcessed: 71entityTickSamples: 15filteredSevereLagShare: 0.01spawnFrequency: 1fallingBlockCount: 24,000heapUsedMb: 2,358filterRate: 0.01samplesValid: 70entityTickRatio: 1workUnit: entities tickingentitiesUnreadable: 0gcCount: 5filteredGcPauseShare: 0.01effectiveTps: 19.31workCompleted: 24,000entitiesAlive: 0entitiesTracked: 24,000blocksSpawnedPerSecond: 965.79gcTimeMs: 77entityTickConclusive: 82

Exploration

Chunk LoadingHealthy

Chunk generation and loading speed across dispersed zones.

  • Heavy garbage collection5 collections, 226ms total
TPS
min
15.00
avg
19.96
max
20.00
MSPT
min
1.20
avg
4.20
max
20.90
Avg window105.8 chunks
Chunks loaded16000 chunks
Avg chunk load time0.19 ms
Peak window200 chunks
Unmeasured ticks25 ticks
Critical brakes0 events
Chunks/sec2040.04 chunks/s
Peak observed MSPT26.9 ms
Percentiles and stability
TPS P1 (worst)19.99
TPS P520.00
TPS P50 (median)20.00
MSPT P9514.39
MSPT P99 (worst)20.86
TPS σ0.466
MSPT σ4.215
TPS derived from MSPT20.00
TPS stability2.3%(Stable)
MSPT stability16.9%(Moderate)
Raw data (11 fields)
samplesProcessed: 128filteredSevereLagShare: 0.04filteredCatchUpShare: 0.02heapUsedMb: 2,228filterRate: 0.10samplesValid: 115gcCount: 5filteredGcPauseShare: 0.02effectiveTps: 19.93filteredOscillationShare: 0.09gcTimeMs: 226
Chunk TickingHealthy

Server performance when ticking many loaded chunks with random tick updates.

  • Heavy garbage collection7 collections, 117ms total
TPS
min
15.00
avg
19.96
max
20.00
MSPT
min
9.30
avg
11.30
max
17.30
Chunks ticked200 chunks
Percentiles and stability
TPS P1 (worst)19.91
TPS P520.00
TPS P50 (median)20.00
MSPT P9512.46
MSPT P99 (worst)14.77
TPS σ0.420
MSPT σ0.906
TPS derived from MSPT20.00
TPS stability2.1%(Stable)
MSPT stability3.6%(Stable)
Raw data (14 fields)
workUnit: block transformationsrandomTickWitnessSamples: 512samplesProcessed: 144filteredCatchUpShare: 0.01gcCount: 7tickSpeed: 20randomTickChanges: 111effectiveTps: 20.03heapUsedMb: 1,622workCompleted: 111filterRate: 0.01samplesValid: 142filteredOscillationShare: 0.01gcTimeMs: 117
Lighting UpdateHealthy

Lighting recomputation throughput on block place / break.

TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
1.00
avg
1.80
max
46.20
Lighting updates/sec131.2 ops/s
Total lighting updates3227 count
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P952.08
MSPT P99 (worst)2.50
TPS σ0.000
MSPT σ4.148
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability16.6%(Moderate)
Raw data (5 fields)
samplesProcessed: 117effectiveTps: 20.04heapUsedMb: 2,243filterRate: 0samplesValid: 117

Entities

Mob AICritical

Complex mob AI behaviours (villagers, iron golems, hostile mobs).

  • Unfiltered samples usedUsing unfiltered samples (filter rate: 31%)
  • Heavy garbage collection15 collections, 230ms total
  • The run did not hold steadyTPS avg=11.01<19, TPS P1=4.77<15, TPS StdDev=2.31>2, TPS min=4.77 (43% of avg)
Phase 1
TPS 12.43
MSPT 85.52 ms
Phase 2
TPS 10.17
MSPT 104.78 ms
TPS
min
4.77
avg
11.01
max
15.02
MSPT
min
70.20
avg
101.00
max
307.50
Percentiles and stability
TPS P1 (worst)4.77
TPS P510.00
TPS P50 (median)10.00
MSPT P95131.36
MSPT P99 (worst)307.52
TPS σ2.305
MSPT σ29.025
TPS derived from MSPT7.61
TPS stability11.5%(Moderate)
MSPT stability116.1%(Unstable)
Raw data (30 fields)
samplesProcessed: 120entityTickSamples: 13filteredSevereLagShare: 0.06globalAvgTps: 11.07globalAvgMspt: 97.08heapUsedMb: 2,630phase1AvgTps: 12.43filterRate: 0.31samplesValid: 83hostileMobCount: 1,200houseCount: 120entityTickRatio: 1usedUnfilteredFallback: yesworkUnit: entities tickingphase2AvgTps: 10.17entitiesUnreadable: 0gcCount: 15filteredGcPauseShare: 0.16effectiveTps: 9.92villagerCount: 2,400totalEntities: 3,600workCompleted: 3,600entitiesAlive: 3,575entitiesTracked: 3,600phase1AvgMspt: 85.52filteredOscillationShare: 0.11hostileCount: 1,200phase2AvgMspt: 104.78gcTimeMs: 230entityTickConclusive: 256

Mechanics

HopperHealthy

Intensive hopper chain item transfers.

  • Heavy garbage collection2 collections, 65ms total
TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
1.40
avg
2.30
max
3.30
Items per tick10.021 items/tick
Transfer efficiency95.2 %
Items/sec1980.5 items/s
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P952.84
MSPT P99 (worst)3.25
TPS σ0.000
MSPT σ0.417
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability1.7%(Stable)
Raw data (19 fields)
samplesProcessed: 91loadAbsorbedBreakRatio: 0.05measuredTicks: 3,800heapUsedMb: 3,467itemTransferRatio: 0.95filterRate: 0samplesValid: 91itemsPlaced: 40,000workUnit: items transferreditemsTransferred: 38,080gcCount: 2hopperSourcesExpected: 320effectiveTps: 197.61workCompleted: 38,080tickRateTarget: 200hopperSourcesFilled: 320loadAbsorbedRatio: 0.95zoneChunksForced: 648gcTimeMs: 65
ExplosionHealthy

Massive TNT explosions and block destruction.

TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
1.50
avg
4.30
max
9.10
Blocks destroyed17406 blocks
Block destruction throughput1024.12 blocks/s
TPS drop during explosions0.00 TPS
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P956.83
MSPT P99 (worst)9.08
TPS σ0.001
MSPT σ1.730
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability6.9%(Stable)
Raw data (60 fields)
samplesProcessed: 80filteredSevereLagShare: 0.01detonationRatio: 1.00primeZeroRadius: 0tntPresented: 1,200loadAbsorbedBreakRatio: 0.95tntUnreadable: 0tntRequested: 1,200tntPrimed: 1,200aliveBeforeCleanup: 3tntTotal: 1,200explodeCancelled: 0filterRate: 0.01platformBlocks: 145,656primeSeenAny: 1,197zoneChunksEntityTicking: 200explodeSeenAny: 1,197platformDepth: 7tntRejected: 0zoneChunksLoaded: 8workUnit: blocks destroyedhostTntQuotaSource: livetntSpawnCancelled: 0tntNeverTicked: 0spawnValidImmediately: 1,200fuseTicksMax: 6explodeEmptyBlockList: 84entitiesTracked: 1,200entitiesPartiallyTicked: yeszoneChunksForced: 200tntCount: 1,200explodeSeen: 1,197entityTickConclusive: 21tntSpawnSeen: 1,200fuseTicksInitial: 40zoneChunksEntityTickingAtStart: 200tntTracked: 1,200primeSeen: 1,197msAfterPriming: 5,180.39entityTickSamples: 41primingSpanMs: 11,896.543heapUsedMb: 2,143fuseMs: 2,000samplesValid: 79fuseTicksMin: 4zoneTickingWaitMs: 1.69entityTickRatio: 0.95probeActive: 1detonationUnaccounted: 0primeCancelled: 0entitiesUnreadable: 0tntStillAlive: 0effectiveTps: 19.90explodeForeign: 0workCompleted: 17,406entitiesAlive: 0loadAbsorbedRatio: 1.00zoneChunksTickingOnly: 0zoneChunksBelowTicking: 0hostMaxTntPerTick: -1
Ticking Tile EntitiesHealthy

Many ticking tile entities (furnaces, hoppers, etc.).

TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
0.80
avg
1.10
max
1.50
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P951.33
MSPT P99 (worst)1.45
TPS σ0.000
MSPT σ0.150
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability0.6%(Stable)
Raw data (7 fields)
samplesProcessed: 144totalTileEntities: 5,000effectiveTps: 20.03type: ALLheapUsedMb: 1,328filterRate: 0samplesValid: 144
World SaveHealthy

World save speed and TPS impact during save operations.

TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
0.90
avg
1.20
max
2.90
World save write speed21.62 MB/s
TPS drop during save0.00 TPS
World size saved107.0 MB
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P952.88
MSPT P99 (worst)2.88
TPS σ0.000
MSPT σ0.447
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability1.8%(Stable)
Raw data (5 fields)
samplesProcessed: 19effectiveTps: 20.20heapUsedMb: 3,339filterRate: 0samplesValid: 19
Bone Meal GrowthHealthy

Rapid crop and tree growth via bone meal.

TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
1.00
avg
1.50
max
4.30
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P951.88
MSPT P99 (worst)2.90
TPS σ0.001
MSPT σ0.368
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability1.5%(Stable)
Raw data (11 fields)
cropsFullyGrown: 449samplesProcessed: 111growthRate: 21.59effectiveTps: 20.02cropCount: 500boneMealUsed: 1,525treesGrown: 54heapUsedMb: 2,018saplingCount: 200filterRate: 0samplesValid: 111

CPU

Single-Core (tick-aligned)Healthy

Single-thread compute throughput measured on the main thread under the tick scheduler.

TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
2.90
avg
3.20
max
3.60
Total operations183600000 ops
Single-core ops/s (tick-aligned)446784659 ops/s
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P953.51
MSPT P99 (worst)3.61
TPS σ0.000
MSPT σ0.181
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability0.7%(Stable)
Raw data (6 fields)
samplesProcessed: 45effectiveTps: 20.49heapUsedMb: 1,845filterRate: 0cpuKernel: int_alusamplesValid: 45
Multi-Core CPUHealthy

Parallel computation throughput across worker threads.

TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
0.80
avg
1.10
max
1.50
Total operations50000000000 ops
Aggregate ops/s4326291900 ops/s
Usable cores10 cores
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P951.36
MSPT P99 (worst)1.49
TPS σ0.000
MSPT σ0.166
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability0.7%(Stable)
Raw data (7 fields)
samplesProcessed: 53tasksCompleted: 100effectiveTps: 20.09heapUsedMb: 1,989filterRate: 0cpuKernel: int_alusamplesValid: 53

Memory & Storage

Memory PerformanceHealthy

RAM bandwidth and latency.

JVM measurements — do not reflect actual bare-metal performance.

  • Heavy garbage collection4 collections, 43ms total
TPS
min
15.00
avg
19.98
max
20.00
MSPT
min
0.70
avg
1.10
max
1.90
Sequential read178.84 MB/s
Memcpy throughput10098.02 MB/s
Random write42.73 MB/s
Memory latency150.3 ns
Sequential write85.56 MB/s
Random read10.37 MB/s
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P951.51
MSPT P99 (worst)1.62
TPS σ0.322
MSPT σ0.205
TPS derived from MSPT20.00
TPS stability1.6%(Stable)
MSPT stability0.8%(Stable)
Raw data (8 fields)
samplesProcessed: 242filteredCatchUpShare: 0.00gcCount: 4effectiveTps: 20.02heapUsedMb: 3,995filterRate: 0.00samplesValid: 241gcTimeMs: 43
Disk PerformanceHealthy

Sequential and random 4K read/write performance.

JVM measurements — do not reflect actual bare-metal performance.

  • Heavy garbage collection23 collections, 227ms total
TPS
min
19.82
avg
20.00
max
20.00
MSPT
min
1.00
avg
1.50
max
3.20
Random 4K write IOPS531780 IOPS
Sequential write441.34 MB/s
4K read latency avg2.5 µs
4K read latency p995.5 µs
Sequential read2406.34 MB/s
Random 4K write2077.27 MB/s
4K read latency p953.0 µs
Random 4K read4160.53 MB/s
4K write latency avg3.8 µs
4K read latency p502.2 µs
4K write latency p9913.8 µs
4K write latency p503.2 µs
4K write latency p954.9 µs
Random 4K read IOPS1065096 IOPS
Percentiles and stability
TPS P1 (worst)19.82
TPS P520.00
TPS P50 (median)20.00
MSPT P952.16
MSPT P99 (worst)3.21
TPS σ0.029
MSPT σ0.352
TPS derived from MSPT20.00
TPS stability0.1%(Stable)
MSPT stability1.4%(Stable)
Raw data (7 fields)
samplesProcessed: 79filterRate: 0samplesValid: 79cacheInvalidated: yesgcCount: 23effectiveTps: 20.08gcTimeMs: 227

Network

Network (NBT)Healthy

Serialisation throughput — proxy for the rate at which the server can ship world data to clients.

  • Heavy garbage collection29 collections, 78ms total
TPS
min
19.93
avg
20.00
max
20.00
MSPT
min
22.70
avg
23.60
max
30.00
Objects/sec1000 obj/s
Objects processed20000 obj
NBT serialization throughput5.41 MB/s
Bytes processed113531305 B
Percentiles and stability
TPS P1 (worst)19.93
TPS P520.00
TPS P50 (median)20.00
MSPT P9526.08
MSPT P99 (worst)30.02
TPS σ0.010
MSPT σ1.106
TPS derived from MSPT20.00
TPS stability0.1%(Stable)
MSPT stability4.4%(Stable)
Raw data (9 fields)
samplesProcessed: 99filteredSevereLagShare: 0.01filteredCatchUpShare: 0.01gcCount: 29effectiveTps: 20.05heapUsedMb: 1,387filterRate: 0.02samplesValid: 97gcTimeMs: 78
›Machine and serverIntel(R) Core(TM) Ultra 7 265 · Purpur · 1.21.11
Hosting signals
What the usable-vs-host resource gaps imply about this environment.
Shared / throttled CPUContainerised
CPU Information
ModelIntel(R) Core(TM) Ultra 7 265
VendorGenuineIntel
Physical Cores20
Logical Cores20
Available to server10 / 20
Max Frequency5.1 GHz
Server Information
Server TypePurpur (1.21.11-2568-f57bd86 (MC: 1.21.11))
Minecraft Version1.21.11
Bukkit Version1.21.11-R0.1-SNAPSHOT
Java Version25.0.3
OSLinux
Location🇬🇧 United Kingdom
Plugins52
JVM Memory
Max Heap28.80 GB
Allocated3.28 GB
Used2.02 GB
Free1.26 GB
Heap Usage7.0%
Memory limit33.60 GB
JVM Flags
-Dterminal.jline=false -Dterminal.ansi=true -DIReallyKnowWhatIAmDoingISwear -XX:+DisableExplicitGC -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1HeapRegionSize=8M -XX:G1HeapWastePercent=5 -XX:G1MaxNewSizePercent=40 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1NewSizePercent=30 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -XX:MaxGCPauseMillis=200 -XX:MaxTenuringThreshold=1 -XX:SurvivorRatio=32 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -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 -Xms256M -Xmx29491M
Dispersed Zones8

Score Breakdown

Detailed sub-category scores

Hardware

Memory17,268
Disk19,615
Multi-Core83,394

Gameplay

Exploration96,048
Entities82,414
Mechanics47,016

Multipliers

Synergy Bonusx1.073
Stability Bonusx1.020
Duration Mult.x1.062