Benchmark Report

Apr 27, 2026, 7:13 PMVoxelBench plugin 1.0.114 min 20 s benchmark
PublicSTANDARDStandard scoring 8.1.0· earlier scoring
Total score
31,138
RankD
Single Core31,115
Gameplay47,466
Hardware27,237
How this score is built
The verdict

CPU quota

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

  • host_threads = 64 cores
  • usable_cores = 4 cores
  • core_ratio = 16 ratio

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

Multipliers appliedSynergy ×1.031Stability ×0.911Duration ×0.985

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
Critical

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 = 64 cores
  • usable_cores = 4 cores
  • core_ratio = 16 ratio
CriticalMob AI

Tick spikes

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

  • mspt_avg = 273.47 ms
  • mspt_p99 = 989.7 ms
  • spike_ratio = 3.62 ratio
  • sample_count = 90 count
See the setting this justifies

Tick spikes

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

  • mspt_avg = 26.22 ms
  • mspt_p99 = 55.76 ms
  • spike_ratio = 2.13 ratio
  • sample_count = 134 count
›+6 more findings
WarningTick spikesnetwork

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

  • mspt_avg = 28.14 ms
  • mspt_p99 = 57.34 ms
  • spike_ratio = 2.04 ratio
  • sample_count = 93 count
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
For informationMain thread saturatedblockPhysicssingle core

One game thread is already over its tick budget under the benchmark's own load. Players and redstone will push it further.

  • mspt_avg = 46.18 ms
  • mspt_target = 35 ms
  • tps_avg = 19.23 tps
  • tps_held_threshold = 18 tps
For informationMain thread saturatedredstonesingle core

One game thread is already over its tick budget under the benchmark's own load. Players and redstone will push it further.

  • mspt_avg = 50.46 ms
  • mspt_target = 35 ms
  • tps_avg = 20 tps
  • tps_held_threshold = 18 tps
For informationTick spikesredstone

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

  • mspt_avg = 50.46 ms
  • mspt_p99 = 106.38 ms
  • spike_ratio = 2.11 ratio
  • sample_count = 31 count
  • periodic_test = 1

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 273.5 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

Bukkitbukkit.yml

Lower the monster spawn limit

spawn-limits.monsters: 50

Measured : mobAI.mspt.avg 273.5 ms (threshold 50.0 ms)

Mob AI is past the critical cost per tick, where shrinking the activation range is no longer enough. The spawn limit caps how many monsters exist per player at all, which is the only setting here that reduces the work rather than deferring it.

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": "spigot",
    "minecraft": "1.1.2",
    "java": "25.0.2"
  },
  "recommendations": [
    {
      "id": "spigot.portee-activation-monstres",
      "family": "spigot",
      "measure": "mobAI.mspt.avg",
      "value": 273.46774015277776,
      "unit": "ms",
      "threshold": 35,
      "control_test": "mobAI",
      "file": "spigot.yml",
      "setting": "world-settings.default.entity-activation-range.monsters",
      "proposed_value": "24",
      "current_value": null
    },
    {
      "id": "bukkit.limite-monstres",
      "family": "bukkit",
      "measure": "mobAI.mspt.avg",
      "value": 273.46774015277776,
      "unit": "ms",
      "threshold": 50,
      "control_test": "mobAI",
      "file": "bukkit.yml",
      "setting": "spawn-limits.monsters",
      "proposed_value": "50",
      "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.

Nothing to correctJava 25JVM not identifiedCollector: chosen by the JVM
Current line (5 arguments)

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

-Xms128M -Xmx6302M -Dterminal.jline=false -Dterminal.ansi=true -Djline.terminal=<redacted>

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.

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.

-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -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

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.

TPS
min
19.99
avg
20.00
max
20.00
MSPT
min
29.60
avg
50.46
max
106.38
Piston Count1600
Gc Count114
Gc Time Ms780 ms
Percentiles and stability
TPS P1 (worst)19.99
TPS P520.00
TPS P50 (median)20.00
MSPT P95102.21
MSPT P99 (worst)106.38
TPS σ0.002
MSPT σ29.710
TPS derived from MSPT9.78
TPS stability0.0%(Stable)
MSPT stability118.8%(Unstable)
Block PhysicsHealthy

Single-core stress via falling-block physics.

TPS
min
15.00
avg
19.23
max
20.00
MSPT
min
16.30
avg
46.18
max
70.67
Spawn Frequency1
Gc Count27
Falling Block Count24000
Gc Time Ms607 ms
Percentiles and stability
TPS P1 (worst)15.00
TPS P515.00
TPS P50 (median)20.00
MSPT P9563.01
MSPT P99 (worst)70.67
TPS σ1.791
MSPT σ13.158
TPS derived from MSPT15.87
TPS stability9.0%(Stable)
MSPT stability52.6%(Unstable)

Exploration

Chunk LoadingUnstable

Chunk generation and loading speed across dispersed zones.

TPS
min
15.00
avg
19.39
max
20.00
MSPT
min
3.09
avg
26.22
max
56.93
Gc Count89
Chunks Per Zone5000
Chunks Loaded37816
Avg Load Time Ms1 ms
Chunks Per Second1151 ops/s
Dispersed Zones8
Gc Time Ms6354 ms
Percentiles and stability
TPS P1 (worst)15.00
TPS P515.00
TPS P50 (median)20.00
MSPT P9550.74
MSPT P99 (worst)55.76
TPS σ1.565
MSPT σ12.210
TPS derived from MSPT19.71
TPS stability7.8%(Stable)
MSPT stability48.8%(Unstable)
Chunk TickingHealthy

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

TPS
min
19.99
avg
20.00
max
20.00
MSPT
min
20.77
avg
29.02
max
52.27
Gc Count47
Chunk Count200
Tick Speed20
Gc Time Ms935 ms
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P9548.26
MSPT P99 (worst)51.41
TPS σ0.002
MSPT σ7.289
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability29.2%(Unstable)
Lighting UpdateHealthy

Lighting recomputation throughput on block place / break.

TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
4.07
avg
5.49
max
10.59
Gc Count10
Total Updates3214
Dispersed Zones8
Gc Time Ms305 ms
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P957.47
MSPT P99 (worst)8.94
TPS σ0.002
MSPT σ1.118
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability4.5%(Stable)

Entities

Mob AICritical

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

Phase 1
TPS 5.00
MSPT 299.75 ms
Phase 2
TPS 5.01
MSPT 257.23 ms
TPS
min
5.00
avg
5.72
max
20.00
MSPT
min
1.91
avg
273.47
max
989.70
Global Avg Tps5
Phase2 Avg Tps5
Gc Count31
Global Avg Mspt278
Villager Count2400
Phase1 Avg Tps5
Filter Rate1
Hostile Mob Count1200
Phase1 Avg Mspt300
House Count120
Phase2 Avg Mspt257
Gc Time Ms691 ms
Percentiles and stability
TPS P1 (worst)5.00
TPS P55.00
TPS P50 (median)5.00
MSPT P95458.69
MSPT P99 (worst)989.70
TPS σ3.141
MSPT σ125.632
TPS derived from MSPT2.18
TPS stability15.7%(Moderate)
MSPT stability502.5%(Unstable)

Mechanics

HopperHealthy

Intensive hopper chain item transfers.

TPS
min
10.00
avg
16.93
max
20.00
MSPT
min
3.67
avg
5.68
max
10.11
Items Transferred38000
Hopper Count Per Line50
Hopper Count Total4000
Gc Count55
Parallel Lines10
Items Total40000
Total Lines80
Transfer Efficiency95
Items Per Second1153 ops/s
Dispersed Zones8
Gc Time Ms3099 ms
Percentiles and stability
TPS P1 (worst)10.00
TPS P510.50
TPS P50 (median)20.00
MSPT P959.84
MSPT P99 (worst)10.11
TPS σ4.031
MSPT σ2.380
TPS derived from MSPT20.00
TPS stability20.2%(Unstable)
MSPT stability9.5%(Stable)
ExplosionHealthy

Massive TNT explosions and block destruction.

TPS
min
15.00
avg
19.94
max
20.00
MSPT
min
4.22
avg
10.36
max
29.19
Explosion Impact0
Gc Count11
Blocks Per Second429 ops/s
Tnt Total1200
Blocks Destroyed7291
Tnt Count150
Dispersed Zones8
Gc Time Ms370 ms
Percentiles and stability
TPS P1 (worst)15.00
TPS P520.00
TPS P50 (median)20.00
MSPT P9521.40
MSPT P99 (worst)29.19
TPS σ0.562
MSPT σ5.800
TPS derived from MSPT20.00
TPS stability2.8%(Stable)
MSPT stability23.2%(Unstable)
Ticking Tile EntitiesHealthy

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

TPS
min
15.00
avg
19.96
max
20.00
MSPT
min
3.36
avg
4.19
max
5.38
Total Tile Entities5000
Gc Count6
Dispersed Zones8
Gc Time Ms374 ms
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P954.70
MSPT P99 (worst)4.97
TPS σ0.439
MSPT σ0.303
TPS derived from MSPT20.00
TPS stability2.2%(Stable)
MSPT stability1.2%(Stable)
World SaveHealthy

World save speed and TPS impact during save operations.

TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
3.33
avg
3.64
max
4.20
Disk Write Speed MBps528 MB/s
Tps Impact0
Gc Count3
World Size MB2480 MB
Gc Time Ms299 ms
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P954.20
MSPT P99 (worst)4.20
TPS σ0.003
MSPT σ0.290
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability1.2%(Stable)
Bone Meal GrowthHealthy

Rapid crop and tree growth via bone meal.

TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
3.53
avg
4.58
max
6.13
Crops Fully Grown468
Gc Count4
Growth Rate26
Crop Count500
Bone Meal Used1495
Trees Grown45
Sapling Count200
Gc Time Ms174 ms
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P955.53
MSPT P99 (worst)6.13
TPS σ0.001
MSPT σ0.534
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability2.1%(Stable)

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
4.71
avg
5.59
max
7.66
Total Operations105000000
Gc Count2
Operations Per Second10451252 ops/s
Cpu Cores4
Batch Size500000
Gc Time Ms239 ms
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P956.71
MSPT P99 (worst)7.66
TPS σ0.002
MSPT σ0.543
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability2.2%(Stable)
Multi-Core CPUHealthy

Parallel computation throughput across worker threads.

TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
3.18
avg
3.71
max
4.71
Total Operations50000000000
Work Size Per Task500000000
Tasks Completed100
Gc Count1
Task Count100
Operations Per Second2639547499 ops/s
Cpu Cores4
Gc Time Ms102 ms
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P954.38
MSPT P99 (worst)4.71
TPS σ0.002
MSPT σ0.326
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability1.3%(Stable)

Memory & Storage

Memory PerformanceHealthy

RAM bandwidth and latency.

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

TPS
min
19.84
avg
20.00
max
20.00
MSPT
min
2.28
avg
3.24
max
5.99
Seq Read MBps70 MB/s
Gc Count18
Mem Copy MBps12040 MB/s
Rand Write MBps10 MB/s
Rand Op K250000
Passes3
Memory Latency Ns158 ns
Seq Write MBps29 MB/s
Table Size MB512 MB
Gc Time Ms373 ms
Rand Read MBps7 MB/s
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P954.02
MSPT P99 (worst)4.43
TPS σ0.007
MSPT σ0.446
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability1.8%(Stable)
Disk PerformanceHealthy

Sequential and random 4K read/write performance.

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

TPS
min
19.83
avg
20.00
max
20.00
MSPT
min
2.65
avg
3.76
max
6.60
Rand Write4 K IOPS122213 IOPS
Passes3
Seq Write MBps317 MB/s
Rand Read4 K Lat Avg Us3 µs
Rand Read4 K Lat P99 Us5 µs
Seq Read MBps2455 MB/s
Rand Write4 K MBps477 MB/s
Rand Read4 K Lat P95 Us4 µs
Cache Invalidated1
Gc Count54
Rand Read4 K MBps2351 MB/s
Rand Write4 K Lat Avg Us24 µs
Rand Read4 K Lat P50 Us3 µs
Rand Write4 K Lat P99 Us11 µs
Rand Write4 K Lat P50 Us5 µs
Rand Write4 K Lat P95 Us9 µs
Gc Time Ms354 ms
Rand Read4 K IOPS601867 IOPS
Percentiles and stability
TPS P1 (worst)19.99
TPS P520.00
TPS P50 (median)20.00
MSPT P954.73
MSPT P99 (worst)5.04
TPS σ0.020
MSPT σ0.538
TPS derived from MSPT20.00
TPS stability0.1%(Stable)
MSPT stability2.2%(Stable)

Network

Network (NBT)Unstable

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

TPS
min
19.87
avg
20.00
max
20.00
MSPT
min
23.15
avg
28.14
max
57.34
Objects Processed20000
Gc Count46
Throughput MBps6 MB/s
Objects Per Second1000 ops/s
Gc Time Ms170 ms
Bytes Processed120539437
Percentiles and stability
TPS P1 (worst)19.87
TPS P520.00
TPS P50 (median)20.00
MSPT P9545.65
MSPT P99 (worst)57.34
TPS σ0.020
MSPT σ6.100
TPS derived from MSPT20.00
TPS stability0.1%(Stable)
MSPT stability24.4%(Unstable)
›Machine and serverAMD EPYC 7543P 32-Core Processor · Spigot · 1.1.2
CPU Information
ModelAMD EPYC 7543P 32-Core Processor
VendorAuthenticAMD
Physical Cores32
Logical Cores64
Max Frequency3.52201 GHz
Server Information
Server TypeSpigot (4620-Spigot-566f972-3347052 (MC: 26.1.2))
Minecraft Version1.1.2
Bukkit Version26.1.2-R0.1-SNAPSHOT
Java Version25.0.2
OSLinux
Plugins1
JVM Memory
Max Heap6.16 GB
Allocated0.91 GB
Used0.60 GB
Free0.31 GB
Heap Usage9.8%
JVM Flags
-Xms128M -Xmx6302M -Dterminal.jline=false -Dterminal.ansi=true -Djline.terminal=<redacted>
Dispersed Zones8

Score Breakdown

Detailed sub-category scores

Hardware

Memory16,259
Disk19,508
Multi-Core56,959

Gameplay

Exploration56,261
Entities56,761
Mechanics37,366

Multipliers

Synergy Bonusx1.031
Stability Bonusx0.911
Duration Mult.x0.985