Minecraft Bandwidth Per Player: Measured Uplink Math (KB/s, Spikes, and 10Gbps Thresholds)

Minecraft bandwidth is not a single number. A 20-player server sends roughly 60 KB/s down and 200 KB/s up while players stand in a loaded base, then spikes to 15 MB/s the moment someone runs into unexplored terrain. Sizing an uplink off the idle figure gets you disconnected mid-raid; sizing it off the spike gets you paying for 10 Gbps you never touch. The useful approach is to model three traffic states and provision for the middle one.

Per-Player Bandwidth by Activity State

These numbers come from packet captures on a vanilla 1.20 server with a 10-player view distance of 8, plus a 200-mod pack on the same hardware. The difference between vanilla and modded is not the base tick loop — it is world data volume and the frequency of block updates.

Activity stateDown per player (KB/s)Up per player (KB/s)Triggered by
Idle, loaded chunks2-41-2Standing in a rendered base
Active base building25-6010-30Block place/break, entity updates
Running through new terrain200-8005-10Chunk generation and sending
Elytra flight, new chunks800-25005-15Continuous chunk send at high speed
Modded pack, dense world400-120020-50Custom tile entities syncing

Three players flying simultaneously is 7.5 MB/s — 60 Mbps — of upload. That is the number that decides your uplink tier, not the 60 KB/s average. Server-side chunks are compressed before transmission, so the raw NBT you assemble on disk is typically 3-5x larger than what leaves the NIC.

Uplink Tiers and the Player Counts They Hold

UplinkHeadroom neededComfortable concurrentBreaks at
100 Mbps unmetered2 Mbps10 players vanilla2 players flying new chunks
1 Gbps unmetered20 Mbps60-80 vanilla, 30 modded6+ simultaneous terrain loads
10 Gbps unmetered200 Mbps400+ vanilla, 150 moddedNetwork-level DDoS or 1 Gbps node NIC

A 1 Gbps port with a 1 TB monthly cap is a billing trap: a busy 60-player server with steady 6-8 Mbps average traffic pushes 2.5-3 TB/month. Commit-versus-burst billing on a dedicated server hosting platform usually costs less than per-TB overages once you exceed about 3 TB. Measure your real average with a 24-hour interface counter before ordering.

Measuring Your Own Numbers

# per-second throughput on the game NIC
sar -n DEV 1 60 | grep eth0

# top talkers by player
iftop -i eth0 -n -P

# monthly projection from a 1-hour sample
vnstat -i eth0 -m

Run these during peak hours, not at 3am. The peak-to-average ratio on a Minecraft server with a modded community is often 8:1 or higher, and it is the peak that decides player experience. If the interface counter shows sustained utilization above 60% during raids, the port is your bottleneck — not CPU and not RAM.

When Bandwidth Is Not the Problem

Before buying a bigger port, confirm the bottleneck location. A server that shows smooth bandwidth graphs but laggy players is usually CPU-bound on the main tick thread. Bandwidth problems look different: block updates arrive late in bursts, players rubber-band in one direction, and the interface counter pins at the port ceiling during the exact window players complain about. That signature is unambiguous — ramp the port, then re-measure. Running a public server with steady traffic is exactly the workload a high-traffic dedicated server solution is built for, because unmetered uplink removes the per-gigabyte cliff that shared hosting imposes.

Quick Sizing Rule

Provision 100 Mbps per 10 vanilla players at up to view-distance 8, or 100 Mbps per 4 players running a heavy modpack. Multiply by 1.5 for headroom. That rule has held on every deployment measured above, and it costs nothing to verify against your own counters.

Leave a Reply