← JetRift   All guides

Minecraft hosting benchmarks: measured JetRift results

By JetRift · Measured

Our retained production sample contains 98 successful wakes with a 3.37-second median from start request to the gateway’s running state. In a separate isolated test, the deployed engine handled four and eight simulated Java players without failed joins, kicks or unexpected drops.

Measured 3 November 2026. These are our own measurements, published by JetRift. The production aggregate and the local engine test measure different things. This is not a comparison with other hosts, a maximum-player claim or an uptime guarantee.

Production wake time

MetricMeasured value
Successful wakes retained98
Median / p503.37 seconds
p953.93 seconds
Maximum8.34 seconds

The gateway records elapsed time from a start request until a server reaches its running state. We read the retained sample at 19:37 UTC on 3 November 2026. It is a rolling buffer of up to 500 successful wakes, not a dated cohort: these records do not retain individual event timestamps. Failed wakes and their durations are not included. Percentiles use the nearest-rank method; the anonymous successful durations are included in the JSON.

This includes orchestration work that a standalone engine timer misses. It does not measure your game’s download, authentication or full join-to-play time, and it cannot establish a startup success rate. The service runs on ARM64 hardware; the laptop test below is a separate environment.

Isolated real-engine test

WorkloadDurationMedian RSSSampled peak RSSMedian TPSLowest sampled TPS
0 simulated players30 s57.9 MiB58.9 MiB19.9919.99
4 simulated players90 s550.4 MiB551.8 MiB20.0019.99
8 simulated players90 s588.4 MiB599.3 MiB20.0019.94

RSS is the engine process’s resident memory, not a hosting reservation, total container memory or a full-stack total. TPS is the engine-reported tick rate sampled about every five seconds, with a target of 20. Median RSS and TPS use samples after the first 15 seconds of each phase with the expected player count: 3 idle samples and 16 samples in each player phase. Peak RSS includes every collected sample in that phase; a five-second sampler can miss brief peaks.

All four bots joined in the four-player phase and all eight joined in the eight-player phase. Both phases reported zero failed joins, kicks and unexpected drops. The final connected count in the raw bot report is zero because bots disconnect intentionally at the end of their timed run.

Hardware, settings and workload

Three separate fresh-world launches reported engine startup times of 596 ms, 586 ms, 652 ms. This is the engine’s own startup log timer. It excludes container launch, gateway orchestration, authentication and a player receiving the world. It is not an end-to-end wake number.

What this test does not establish

These are short synthetic workloads on one seed and one engine binary, not hours of human survival play. They do not cover large farms, mob-heavy survival, exploration across new terrain, plugins, multiple busy worlds, backups under load, Bedrock packet performance or internet latency. The idle engine has not generated the same player-visible chunks as a populated world.

The eight-player phase reuses chunks and edits from the four-player phase, so its memory or tick timing should not be interpreted as an independent scaling comparison. No customer worlds were used or stressed. Results can change with hardware, world contents, software updates and shared capacity. Check compatibility and limits before choosing a host.

The raw startup log also records an initial level.dat save error on a fresh world and a blocked Bedrock key-discovery request in the network-isolated container. The Java server continued and accepted the test clients. This benchmark does not validate world persistence or Bedrock authentication; those diagnostics are retained in the evidence rather than counted as successful checks.

Download the evidence and reproduce it

Raw samples, configuration, hashes and production aggregate (JSON) · Reproduction script (Python)

The script requires Docker, a compatible Linux Butternut binary and the JetRift swarm binary built from our source. Put the binaries and output in a directory shared with Docker. It creates temporary worlds and removes its uniquely named test containers when finished; it does not connect to the production service.

python3 resource_benchmark.py \
  --engine /path/to/butternut \
  --swarm /path/to/swarm \
  --output /path/shared/with/docker/results.json

The JSON includes the exact container image ID, engine and swarm hashes, complete server configuration and sample selection inputs. The harness uses the rust:1-bookworm image tag; to match this run, use the recorded image ID in the script and the recorded binaries. A different binary or image is a new measurement.

How sleeping and waking works · Choose hosting for your group · All guides