Benchmark Report

Jul 6, 2026, 9:35 PMVoxelBench plugin 1.6.010 min 5 s benchmark
PublicSTANDARDStandard scoring 8.1.0· earlier scoring
Total score
117,514
RankB
Single Core176,664
Gameplay61,669
Hardware40,161
How this score is built
The verdict

Nothing crossed a threshold

No measurement of this run points to a defect. That describes this run under this load, not every load.

Weakest test: Chunk Loading, 3.45 TPS on average. The 15 other tests hold at least 7.79 TPS.

Multipliers appliedSynergy ×1.106Stability ×1.065Duration ×1.049

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
Good to know

Non-default server configuration

Compare with care against a server running default settings.

  • view-distance 12 (default 10)
  • simulation-distance 5 (default 10)
  • spawn-limit.monster 20 (default 70)

+5 more modified settings

›+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 128.3 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

Spigotspigot.yml

Cap the TNT processed per tick

world-settings.default.max-tnt-per-tick: 40

Measured : explosion.mspt.avg 75.6 ms (threshold 35.0 ms)

Explosions cost more per tick than the budget allows. Capping how many primed entities are processed per tick spreads a large blast over several ticks instead of one long freeze.

Test to replay : explosion

Serverserver.properties

Lower the simulation distance

simulation-distance: 4

Currently : 5

Measured : chunkTicking.mspt.avg 50.0 ms (threshold 50.0 ms)

Chunk ticking is past the critical cost per tick. The simulation distance decides how many chunks tick around each player; lowering it a notch is the bluntest lever here and the one players notice, so it is offered only when the value in use is known.

Test to replay : chunkTicking

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": "folia",
    "minecraft": "26.1.2",
    "java": "25.0.2"
  },
  "recommendations": [
    {
      "id": "spigot.portee-activation-monstres",
      "family": "spigot",
      "measure": "mobAI.mspt.avg",
      "value": 128.3,
      "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": "spigot.tnt-par-tick",
      "family": "spigot",
      "measure": "explosion.mspt.avg",
      "value": 75.6,
      "unit": "ms",
      "threshold": 35,
      "control_test": "explosion",
      "file": "spigot.yml",
      "setting": "world-settings.default.max-tnt-per-tick",
      "proposed_value": "40",
      "current_value": null
    },
    {
      "id": "serveur.distance-de-simulation",
      "family": "serveur",
      "measure": "chunkTicking.mspt.avg",
      "value": 50,
      "unit": "ms",
      "threshold": 50,
      "control_test": "chunkTicking",
      "file": "server.properties",
      "setting": "simulation-distance",
      "proposed_value": "4",
      "current_value": "5"
    }
  ]
}

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.

To correctJava 25JVM not identifiedCollector: chosen by the JVMMemory: 62464 MiB, safe heap up to 53094 MiB
Current line (8 arguments)

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

-XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCIProduct -XX:+EnableJVMCI -XX:-UnlockExperimentalVMOptions -Xms16G -Xmx32G --add-modules=jdk.incubator.vector

To correct

  • To correctOption 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.

Corrected line to copy

  • Removed-XX:+UnlockExperimentalVMOptionsearlier occurrence; the JVM keeps -XX:-UnlockExperimentalVMOptions.
java -XX:ThreadPriorityPolicy=1 -XX:+EnableJVMCIProduct -XX:+EnableJVMCI -XX:-UnlockExperimentalVMOptions -Xms16G -Xmx32G -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 1 other argument (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.

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

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 collection7 collections, 746ms total
TPS
min
19.99
avg
20.00
max
20.00
MSPT
min
0.10
avg
0.30
max
1.10
Percentiles and stability
TPS P1 (worst)19.99
TPS P520.00
TPS P50 (median)20.00
MSPT P950.44
MSPT P99 (worst)1.13
TPS σ0.002
MSPT σ0.125
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability0.5%(Stable)
Raw data (3 fields)
pistonCount: 1,600gcCount: 7gcTimeMs: 746
Block PhysicsHealthy

Single-core stress via falling-block physics.

  • Heavy garbage collection4 collections, 707ms total
TPS
min
15.07
avg
19.93
max
20.00
MSPT
min
0.10
avg
0.20
max
0.90
Percentiles and stability
TPS P1 (worst)15.07
TPS P519.99
TPS P50 (median)20.00
MSPT P950.42
MSPT P99 (worst)0.92
TPS σ0.583
MSPT σ0.125
TPS derived from MSPT20.00
TPS stability2.9%(Stable)
MSPT stability0.5%(Stable)
Raw data (5 fields)
spawnFrequency: 1blocksSpawnedPerSecond: 1,097.695gcCount: 4fallingBlockCount: 24,000gcTimeMs: 707

Exploration

Chunk LoadingUnstable

Chunk generation and loading speed across dispersed zones.

  • Heavy garbage collection2 collections, 1009ms total
  • The run did not hold steadyTPS avg=3.45<19
TPS
min
3.43
avg
3.45
max
3.46
MSPT
min
289.00
avg
290.20
max
292.00
Worst region MSPT49.9 ms
Chunks loaded16000 chunks
Chunks/sec1904.76 chunks/s
Peak window200 chunks
Peak region MSPT68.9 ms
Avg region TPS20.00 tps
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P950.70
MSPT P99 (worst)1.11
TPS σ0.001
MSPT σ0.143
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability0.6%(Stable)
Raw data (2 fields)
gcCount: 2gcTimeMs: 1,009
Chunk TickingHealthy

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

  • Heavy garbage collection3 collections, 581ms total
TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
50.00
avg
50.00
max
50.00
Worst region MSPT50.0 ms
Chunks ticked200 chunks
Avg region TPS20.00 tps
Percentiles and stability
TPS P1 (worst)19.96
TPS P520.00
TPS P50 (median)20.00
MSPT P950.34
MSPT P99 (worst)0.71
TPS σ0.007
MSPT σ0.095
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability0.4%(Stable)
Raw data (3 fields)
gcCount: 3tickSpeed: 20gcTimeMs: 581
Lighting UpdateHealthy

Lighting recomputation throughput on block place / break.

  • Heavy garbage collection1 collections, 173ms total
TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
50.00
avg
50.00
max
50.00
Worst region MSPT49.9 ms
Lighting updates/sec340.7 ops/s
Peak region MSPT53.3 ms
Avg region TPS20.00 tps
Total lighting updates3321 count
Percentiles and stability
TPS P1 (worst)19.98
TPS P519.99
TPS P50 (median)20.00
MSPT P9548.49
MSPT P99 (worst)49.94
TPS σ0.006
MSPT σ20.617
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability82.5%(Unstable)
Raw data (2 fields)
gcCount: 1gcTimeMs: 173

Entities

Mob AIUnstable

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

  • Heavy garbage collection6 collections, 356ms total
  • The run did not hold steadyTPS avg=7.79<19
Phase 1
TPS 19.89
MSPT 49.96 ms
Phase 2
TPS 19.87
MSPT 0.24 ms
TPS
min
7.79
avg
7.79
max
7.79
MSPT
min
128.30
avg
128.30
max
128.30
Percentiles and stability
TPS P1 (worst)19.93
TPS P520.00
TPS P50 (median)20.00
MSPT P950.35
MSPT P99 (worst)0.75
TPS σ0.013
MSPT σ0.228
TPS derived from MSPT20.00
TPS stability0.1%(Stable)
MSPT stability0.9%(Stable)
Raw data (11 fields)
globalAvgTps: 19.88phase2AvgTps: 19.87gcCount: 6globalAvgMspt: 25.10villagerCount: 2,400phase1AvgTps: 19.89hostileMobCount: 1,200phase1AvgMspt: 49.96houseCount: 120phase2AvgMspt: 0.24gcTimeMs: 356

Mechanics

HopperHealthy

Intensive hopper chain item transfers.

  • Heavy garbage collection19 collections, 9507ms total
TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
49.90
avg
50.00
max
50.00
Items transferred39272 items
Worst region MSPT50.1 ms
Avg region TPS19.98 tps
Transfer efficiency98.2 %
Items/sec1692.8 items/s
Percentiles and stability
TPS P1 (worst)19.92
TPS P520.00
TPS P50 (median)20.00
MSPT P950.58
MSPT P99 (worst)1.02
TPS σ0.132
MSPT σ0.167
TPS derived from MSPT20.00
TPS stability0.7%(Stable)
MSPT stability0.7%(Stable)
Raw data (2 fields)
gcCount: 19gcTimeMs: 9,507
ExplosionUnstable

Massive TNT explosions and block destruction.

  • Heavy garbage collection3 collections, 487ms total
  • The run did not hold steadyTPS avg=14.59<19, TPS min=10.14 (69% of avg)
TPS
min
10.14
avg
14.59
max
19.69
MSPT
min
50.80
avg
75.60
max
98.60
TPS drop during explosions14.94 TPS
Worst region MSPT197.8 ms
Block destruction throughput0.00 blocks/s
Blocks destroyed0 blocks
Peak region MSPT542.5 ms
Avg region TPS11.86 tps
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P950.64
MSPT P99 (worst)1.22
TPS σ0.001
MSPT σ0.208
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability0.8%(Stable)
Raw data (2 fields)
gcCount: 3gcTimeMs: 487
Ticking Tile EntitiesHealthy

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

  • Heavy garbage collection4 collections, 725ms total
TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
50.00
avg
50.00
max
50.00
Worst region MSPT50.0 ms
Avg region TPS20.00 tps
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P951.61
MSPT P99 (worst)2.10
TPS σ0.001
MSPT σ0.222
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability0.9%(Stable)
Raw data (2 fields)
gcCount: 4gcTimeMs: 725
World SaveHealthy

World save speed and TPS impact during save operations.

  • Heavy garbage collection3 collections, 540ms total
TPS
min
20.00
avg
20.00
max
20.00
MSPT
min
50.00
avg
50.00
max
50.00
World save write speed21.12 MB/s
TPS drop during save0.00 TPS
World size saved104.0 MB
Percentiles and stability
TPS P1 (worst)19.97
TPS P519.97
TPS P50 (median)20.00
MSPT P950.41
MSPT P99 (worst)0.45
TPS σ0.010
MSPT σ0.075
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability0.3%(Stable)
Raw data (2 fields)
gcCount: 3gcTimeMs: 540
Bone Meal GrowthUnstable

Rapid crop and tree growth via bone meal.

  • Heavy garbage collection1 collections, 238ms total
  • The run did not hold steadyTPS avg=13.18<19
TPS
min
13.18
avg
13.18
max
13.18
MSPT
min
75.90
avg
75.90
max
75.90
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P950.24
MSPT P99 (worst)0.55
TPS σ0.001
MSPT σ0.082
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability0.3%(Stable)
Raw data (8 fields)
cropsFullyGrown: 467gcCount: 1growthRate: 23.26cropCount: 500boneMealUsed: 1,516treesGrown: 53saplingCount: 200gcTimeMs: 238

CPU

Single-Core (tick-aligned)Healthy

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

  • Heavy garbage collection4 collections, 705ms total
TPS
min
19.92
avg
20.00
max
20.00
MSPT
min
0.80
avg
1.30
max
1.90
Total operations100500000 ops
Single-core ops/s (tick-aligned)10011374 ops/s
Percentiles and stability
TPS P1 (worst)19.92
TPS P520.00
TPS P50 (median)20.00
MSPT P951.46
MSPT P99 (worst)1.94
TPS σ0.017
MSPT σ0.199
TPS derived from MSPT20.00
TPS stability0.1%(Stable)
MSPT stability0.8%(Stable)
Raw data (4 fields)
gcCount: 4cpuKernel: int_alubatchSize: 500,000gcTimeMs: 705
Multi-Core CPUHealthy

Parallel computation throughput across worker threads.

  • Heavy garbage collection1 collections, 163ms total
TPS
min
19.73
avg
19.97
max
20.00
MSPT
min
0.10
avg
0.30
max
0.80
Total operations50000000000 ops
Aggregate ops/s8479553822 ops/s
Percentiles and stability
TPS P1 (worst)19.73
TPS P519.74
TPS P50 (median)20.00
MSPT P950.73
MSPT P99 (worst)0.82
TPS σ0.133
MSPT σ0.185
TPS derived from MSPT20.00
TPS stability0.7%(Stable)
MSPT stability0.7%(Stable)
Raw data (4 fields)
tasksCompleted: 100gcCount: 1cpuKernel: int_alugcTimeMs: 163

Memory & Storage

Memory PerformanceHealthy

RAM bandwidth and latency.

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

  • Heavy garbage collection4 collections, 658ms total
TPS
min
19.82
avg
20.00
max
20.00
MSPT
min
0.10
avg
0.30
max
1.00
Sequential read184.10 MB/s
Memcpy throughput10455.09 MB/s
Random write14.22 MB/s
Memory latency170.7 ns
Sequential write55.01 MB/s
Random read10.21 MB/s
Percentiles and stability
TPS P1 (worst)20.00
TPS P520.00
TPS P50 (median)20.00
MSPT P950.41
MSPT P99 (worst)0.80
TPS σ0.015
MSPT σ0.110
TPS derived from MSPT20.00
TPS stability0.1%(Stable)
MSPT stability0.4%(Stable)
Raw data (2 fields)
gcCount: 4gcTimeMs: 658
Disk PerformanceHealthy

Sequential and random 4K read/write performance.

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

  • Heavy garbage collection2 collections, 338ms total
TPS
min
19.92
avg
20.00
max
20.00
MSPT
min
0.10
avg
0.30
max
0.90
4K read latency p994.3 µs
Sequential read1051.31 MB/s
Random 4K write2076.32 MB/s
4K read latency p953.4 µs
Random 4K write IOPS531537 IOPS
Random 4K read3474.69 MB/s
4K write latency avg3.6 µs
4K read latency p502.1 µs
4K write latency p997.9 µs
4K write latency p503.3 µs
4K write latency p955.8 µs
Sequential write145.26 MB/s
4K read latency avg2.1 µs
Random 4K read IOPS889521 IOPS
Percentiles and stability
TPS P1 (worst)19.99
TPS P520.00
TPS P50 (median)20.00
MSPT P950.56
MSPT P99 (worst)0.86
TPS σ0.009
MSPT σ0.139
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability0.6%(Stable)
Raw data (3 fields)
cacheInvalidated: yesgcCount: 2gcTimeMs: 338

Network

Network (NBT)Healthy

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

  • Heavy garbage collection3 collections, 189ms total
TPS
min
19.98
avg
20.00
max
20.00
MSPT
min
18.50
avg
21.20
max
31.90
Objects processed20000 obj
NBT serialization throughput5.40 MB/s
Objects/sec998 obj/s
Bytes processed113531305 B
Percentiles and stability
TPS P1 (worst)19.98
TPS P520.00
TPS P50 (median)20.00
MSPT P9528.79
MSPT P99 (worst)31.88
TPS σ0.003
MSPT σ2.654
TPS derived from MSPT20.00
TPS stability0.0%(Stable)
MSPT stability10.6%(Moderate)
Raw data (2 fields)
gcCount: 3gcTimeMs: 189
›Machine and serverAMD Ryzen 9 9950X 16-Core Processor · Folia · 26.1.2
CPU Information
ModelAMD Ryzen 9 9950X 16-Core Processor
VendorAuthenticAMD
Physical Cores24
Logical Cores24
Max Frequency4.29192 GHz
Server Information
Server TypeFolia (26.1.2-836-1a0c49d (MC: 26.1.2))
Minecraft Version26.1.2
Regionized serverYes (Folia): test TPS and MSPT aggregate regions
Benchmark zones8
Bukkit Version26.1.2.build.836-stable
Java Version25.0.2
OSLinux
Location🇮🇳 India
Plugins61
JVM Memory
Max Heap32.00 GB
Allocated16.00 GB
Used1.16 GB
Free14.84 GB
Heap Usage3.6%
JVM Flags
-XX:ThreadPriorityPolicy=1 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCIProduct -XX:+EnableJVMCI -XX:-UnlockExperimentalVMOptions -Xms16G -Xmx32G --add-modules=jdk.incubator.vector
Dispersed Zones8

Score Breakdown

Detailed sub-category scores

Hardware

Memory15,556
Disk16,029
Multi-Core113,507

Gameplay

Exploration91,366
Entities86,455
Mechanics30,898

Multipliers

Synergy Bonusx1.106
Stability Bonusx1.065
Duration Mult.x1.049