Minecraft Server Hardware: Where CPU, RAM, and Storage Actually Matter

Most Minecraft server threads start with a hardware shopping list and end with buyers’ remorse, because the parts that look impressive on paper rarely match what the game actually stresses. Minecraft’s Java edition is single-thread-bound for its main tick loop, greedy for heap memory, and — once your world gets large — surprisingly dependent on storage I/O. Before you commit to a dedicated server hosting plan, it helps to know exactly where each component shows up in gameplay, from a 10-player vanilla box to a 200-player modded deployment.

What Minecraft actually stresses

The server runs a single game loop targeting 20 ticks per second (TPS). Everything that matters — entity AI, redstone, block updates, liquid physics, mob spawning — is processed on that one thread. The garbage collector (GC) shares CPU time with the tick loop, so a stutter in the JVM shows up as lag for every player. RAM holds loaded chunks, entities, and the block cache. Storage handles world file I/O: region files being read when chunks load, and the full save being flushed to disk on the autosave interval (default every 30–60 seconds, depending on your configuration). A slow disk doesn’t just slow backups — it can stall the tick when the JVM blocks on a save.

CPU: the single-thread ceiling

For the tick loop, clock speed beats core count. A modern core running at 4.5 GHz+ with high IPC (Intel Core i5/i7 or Ryzen 5/7 at the top of their boost range) will run a 50–100 player Paper server far better than a 24-core Xeon at 2.1 GHz. Extra cores matter for two things: chunk generation (which Paper can parallelize across threads) and off-thread work like world saving and GC pauses. The practical rule: two fast cores for the loop, two more for generation and housekeeping — and beyond that, cores are for the other services you run on the box.

PlayersCPU (recommended)RAMStorage
10 (vanilla)2 cores @ 3.5 GHz+3–4 GBAny SSD
25 (vanilla/Paper)4 cores @ 4.0 GHz+5–6 GBSATA SSD
50 (Paper)4–6 cores @ 4.0 GHz+8 GBSATA or NVMe SSD
100 (Paper/modded)6–8 cores @ 4.0 GHz+, high IPC10–12 GBNVMe SSD
200 (modded)8+ cores, fastest single-thread available16 GBNVMe + RAID for world safety

RAM and JVM flags: where most configs go wrong

Giving the JVM too much heap is as bad as giving it too little: a 16 GB heap on a 16 GB box leaves no room for the OS page cache that chunk loading depends on, and it makes GC pauses longer. For a vanilla/Paper server, cap the heap at 4–8 GB unless you are running heavy modpacks. The flags below (based on the widely used Aikar’s flags) are a solid starting point for Paper 1.20+ on a modern JVM:

java -Xms6G -Xmx6G -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 \
  -jar paper.jar nogui

Note the -Xms and -Xmx set to the same value — this pre-allocates the heap and avoids resize stalls. Leave 2–4 GB of system RAM free for the OS and file cache on top of the heap.

Storage: world files, autosaves, and RAID

World data lives in region/*.mca files, each covering 32×32 chunks (512×512 blocks). When a player travels, the server reads the relevant region files into memory; when the world autosaves, it writes them back. On a spinning disk this read/write pattern causes visible hitch spikes. On a SATA SSD it’s smooth; on NVMe it’s effectively invisible. Modded servers are the exception — heavy modpacks load hundreds of JARs and config files at startup, and world gen writes far more data, so NVMe cuts both startup time and generation lag measurably.

For RAID: RAID 0 doubles throughput but doubles the chance of losing the whole world when one drive dies — a bad trade for a persistent Minecraft map. RAID 1 (mirror) protects the world folder with zero read penalty and is the right default for anything you can’t rebuild from a backup. On a bare-metal dedicated server with hardware RAID, a common pattern is two NVMe drives mirrored for the world, with a separate drive or network target for nightly offsite backups. A four-player vanilla world won’t care; a 200-player modded world with a 50 GB map absolutely will.

What you can safely ignore

A GPU does nothing for a vanilla Minecraft server — rendering is client-side — and the network is rarely the bottleneck: a vanilla server uses roughly 0.1–0.3 Mbps per player, so even 200 players fit comfortably on a 100 Mbps port. Spend the budget on single-thread CPU, heap-appropriate RAM, and fast storage instead.

The bottom line

Right-size the CPU for the tick loop, cap the JVM heap sensibly, and put the world on fast mirrored storage. If you are comparing machines, start from the player tiers in the table above and check the single-thread performance of the CPU, not the core count. When you are ready to move past shared hosting, browse the dedicated server configurations on our comparison page — and if you want a quick starting point, check InterServer’s dedicated hosting plans, which include hardware RAID options on most boxes.

Leave a Reply