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 state | Down per player (KB/s) | Up per player (KB/s) | Triggered by |
|---|---|---|---|
| Idle, loaded chunks | 2-4 | 1-2 | Standing in a rendered base |
| Active base building | 25-60 | 10-30 | Block place/break, entity updates |
| Running through new terrain | 200-800 | 5-10 | Chunk generation and sending |
| Elytra flight, new chunks | 800-2500 | 5-15 | Continuous chunk send at high speed |
| Modded pack, dense world | 400-1200 | 20-50 | Custom 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
| Uplink | Headroom needed | Comfortable concurrent | Breaks at |
|---|---|---|---|
| 100 Mbps unmetered | 2 Mbps | 10 players vanilla | 2 players flying new chunks |
| 1 Gbps unmetered | 20 Mbps | 60-80 vanilla, 30 modded | 6+ simultaneous terrain loads |
| 10 Gbps unmetered | 200 Mbps | 400+ vanilla, 150 modded | Network-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
You must be logged in to post a comment.