How to Host a Private Minecraft Server on a Cheap VPS: A Step-by-Step Guide

How to Host a Private Minecraft Server on a Cheap VPS featured image - Onlive Server

Minecraft continues to be one of the most enduring, moddable, and resource-intensive multiplayer gaming ecosystems in computing history. While commercial managed game server platforms charge inflated monthly fees with rigid player slot limits, restricted plugin access, and sluggish shared hardware, learning how to host Minecraft server on VPS delivers complete administrative sovereignty, unthrottled CPU clock speeds, unrestricted modding capabilities, and massive cost savings.

Whether you want to build a private survival realm for close friends, deploy a heavy Forge/Fabric modpack with over 200 custom mods, or launch a public network powered by PaperMC and Velocity proxies, hosting on VPS hosting provides high single-thread CPU performance, low-latency network routing, and rapid NVMe storage access essential for lag-free world chunk generation.


1. Hardware Physics: Why Minecraft Depends on Single-Thread IPC and Memory Speed

Unlike modern multi-threaded game engines, the core architecture of Minecraft server software (Vanilla, Spigot, Paper, Purpur) executes the primary game tick loop—entity pathfinding, redstone logic, block physics, mob AI, and chunk updates—synchronously on a single master CPU thread. Understanding cheap Minecraft VPS requires recognizing that a 4.5GHz+ single-core processor with high Instructions Per Cycle (IPC) will vastly outperform a dual-socket server with 32 slow 2.2GHz cores.

Furthermore, disk storage throughput directly impacts world chunk generation and player teleportation. When a player flies with an Elytra at high velocity, the server must load hundreds of region files from storage simultaneously. On mechanical hard drives or throttled SATA storage, this causes severe chunk loading lag and the dreaded “Can’t keep up! Is the server overloaded?” console warning. High-speed NVMe drives resolve this bottleneck completely.


2. Technical Sizing Matrix: Minecraft Server Workload Tiers

Server Scale & Playstyle Recommended RAM vCPU Allocation Recommended Software Stack Storage Sizing
Vanilla / Small Group (1–5 Players) 2 GB – 4 GB RAM 2 vCPUs (High IPC) PaperMC (Vanilla optimized) 20 GB NVMe
Survival + Plugins (10–25 Players) 4 GB – 8 GB RAM 3–4 vCPUs Purpur / PaperMC + EssentialsX + CoreProtect 50 GB NVMe
Heavy Modpacks (ATM9 / Create / 150+ Mods) 8 GB – 16 GB RAM 4–6 vCPUs Forge / NeoForge / Fabric + FastSuite + FerriteCore 80 GB NVMe
Multi-World Network (Hub + Bedwars + SMP) 16 GB – 32 GB RAM 6–8 vCPUs Velocity Proxy + Redis + Paper instances 150 GB NVMe


3. Step-by-Step Installation Walkthrough (Ubuntu / Debian Linux)

💡

Infrastructure Pro-Tip: When configuring your virtualization layer, evaluating high-frequency AMD Ryzen vs Intel Xeon VPS processors provides essential benchmarks to maximize computing throughput.

Because Minecraft server engines rely heavily on single-thread clock speeds, reviewing high-frequency AMD Ryzen vs Intel Xeon VPS processors ensures you choose the CPU architecture that delivers the highest tick rate (20 TPS) during peak player concurrency.

Because Minecraft server engines rely heavily on single-thread clock speeds, reviewing ensures you choose the CPU architecture that delivers the highest tick rate (20 TPS) during peak player concurrency.

Follow this exact terminal walkthrough to configure a secure, isolated PaperMC server running as an automated systemd background service daemon:



bash — sysadmin production shell
UTF-8

# 1. Update OS packages and install OpenJDK 21 (Required for Minecraft 1.20.5+)
sudo apt update && sudo apt upgrade -y
sudo apt install -y openjdk-21-jre-headless screen ufw curl jq

# 2. Create a dedicated unprivileged user for game server security
sudo adduser --system --group --home /opt/minecraft minecraft

# 3. Download the latest PaperMC high-performance build
cd /opt/minecraft
sudo -u minecraft curl -o server.jar https://api.papermc.io/v2/projects/paper/versions/1.21.1/builds/115/downloads/paper-1.21.1-115.jar

# 4. Generate and accept the Mojang EULA
echo "eula=true" | sudo -u minecraft tee /opt/minecraft/eula.txt

# 5. Open Minecraft game port in UFW firewall
sudo ufw allow 25565/tcp
sudo ufw reload


4. Java Memory Tuning: Aikar’s High-Performance G1GC Flags

Default Java memory garbage collection pauses the entire game tick loop whenever memory buffers fill up, causing stuttering and rubber-banding. Deploying Aikar’s optimized Garbage-First (G1GC) parameters distributes memory cleanup evenly across background CPU threads, maintaining a rock-solid 20.0 TPS (Ticks Per Second):



bash — sysadmin production shell
UTF-8

# Production JVM Startup Parameters with Aikar's Flags (For a 6GB RAM Allocation)
java -Xms6G -Xmx6G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -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 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar server.jar --nogui


Advanced Architectural Insights & Real-World Production Workflows

When implementing host Minecraft server on VPS in mission-critical production environments, systems engineers must account for edge-case traffic dynamics, kernel-level optimizations, and persistent state management. Modern high-concurrency applications running on affordable VPS environments designed for Minecraft hosting workloads cannot rely solely on default operating system configurations. Instead, a multi-tiered approach combining kernel sysctl tuning, proactive memory management, and automated I/O throttling is essential for maintaining sustained 99.99% availability.

By leveraging dedicated high-performance computing resources, organizations gain the ability to customize low-level TCP buffer sizes, establish automated snapshot replication schedules, and eliminate CPU steal time entirely. When scaling beyond standard virtualized limits, integrating enterprise compute infrastructure ensures zero latency degradation during peak traffic events.

Production Sysadmin Checklist: Kernel Tuning & Resource Allocation

Apply these battle-tested production kernel parameters in /etc/sysctl.conf to optimize network throughput, memory reclaim behavior, and file descriptor limits:



bash — sysadmin production shell
UTF-8

# /etc/sysctl.conf - Enterprise Production Tuning for High-Concurrency Workloads
# 1. Optimize virtual memory paging and cache reclamation
vm.swappiness = 10
vm.dirty_ratio = 15
vm.dirty_background_ratio = 5
vm.vfs_cache_pressure = 50

# 2. Increase maximum open file handles and socket backlogs
fs.file-max = 2097152
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 16384

# 3. Optimize TCP buffer windows for high-bandwidth data transfers
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15

# Apply kernel settings dynamically without reboot
sudo sysctl -p


Comparative Case Studies: Measurable Performance Gains in Production

🛡️

Production Resilience Note: To ensure continuous uptime and disaster recovery, review our comprehensive technical reference on setting up an Ark dedicated server on Linux.

Scenario A: High-Traffic Dynamic Web Application

A rapidly scaling digital media publisher experienced severe database timeouts and 504 Gateway errors during breaking news traffic spikes on shared hosting. After migrating to an optimized NVMe VPS environment with Redis object caching and FastCGI page caching, their Time to First Byte (TTFB) dropped from 1,420ms to 78ms, while CPU load averages decreased by 65% under identical concurrent visitor volumes.

Scenario B: Multi-Tenant E-Commerce Platform

An online retailer managing over 15,000 product SKUs suffered frequent shopping cart abandonments due to uncacheable checkout latency. By configuring dedicated PHP-FPM worker pools, optimizing InnoDB buffer allocations, and deploying automated off-site database backups, checkout page response times improved from 3.8 seconds to 420 milliseconds, driving a measurable 18% increase in completed transactions.


5. Creating an Automated systemd Service Daemon

Running your Minecraft server as a systemd service ensures automatic startup upon server reboot, graceful crash recovery, and centralized logging:



bash — sysadmin production shell
UTF-8

# Create service file: /etc/systemd/system/minecraft.service
[Unit]
Description=Paper Minecraft Dedicated Server
After=network.target

[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft
ExecStart=/usr/bin/java -Xms6G -Xmx6G -XX:+UseG1GC -jar server.jar --nogui
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

# Enable and start service
sudo systemctl daemon-reload
sudo systemctl enable --now minecraft.service


6. Performance Optimization: Fine-Tuning server.properties & Paper Configs

Optimize your server configuration files to double performance without degrading gameplay quality:

server.properties: Set view-distance=8 (renders 8 chunks around players; cuts entity ticking load by 40% compared to default 10) and set simulation-distance=5.

config/paper-world-defaults.yml: Set despawn-ranges.monster.soft=28 and hard=96 to prevent unneeded mob processing in distant unloaded chunks.

Pre-Generate World Chunks: Install the free Chunky plugin and run chunky radius 5000 followed by chunky start. Pre-generating your world eliminates on-the-fly chunk generation lag when players explore new terrain.

For large community networks with hundreds of simultaneous players, deploying on high-frequency or high-speed eliminates hardware bottlenecks and guarantees 20.0 TPS stability.

📌 Frequently Asked Questions (FAQ)

Q
Q1: How much RAM do I need for a 10-player modded Minecraft server?

For lightweight modpacks (20–40 mods), 4GB to 6GB is sufficient. For heavy modpacks (100+ mods like All The Mods or ATM9), we recommend at least 8GB to 12GB of dedicated RAM.

Q
Q2: Can I install a web GUI like Pterodactyl or Crafty Controller?

Yes. Because you have full root access to your VPS, you can install Pterodactyl or Crafty Controller to manage players, files, and server restarts via a web browser.

Q
Q3: How do I back up my Minecraft world automatically?

You can create a simple cron job that archives the world, world_nether, and world_the_end directories to a secondary cloud storage folder daily.

Q
Q4: Why is my server TPS dropping below 20?

Common causes include massive automated redstone mob farms, thousands of loose ground items, unoptimized entity ticking, or un-pregenerated world chunks. Use the /spark profiler plugin to pinpoint the exact lag source.

Q
Q5: Can Bedrock edition players (mobile, Xbox, Switch) join a Java VPS server?

Yes. By installing the open-source GeyserMC and Floodgate plugins on your PaperMC server, Bedrock players can join your Java server seamlessly.

Q
Q6: How do I protect my game server from DDoS attacks?

Deploy on a hosting provider with native Layer 4 Anycast DDoS scrubbing, or route your server IP through a free TCP reverse proxy service like TCPShield.


8. Conclusion & Summary

Learning how to host Minecraft server on VPS provides unparalleled control over your multiplayer gaming world. By combining high-frequency CPU cores, NVMe storage, PaperMC software, Aikar’s Java optimization flags, and pre-generated world chunks, you can run a smooth, lag-free multiplayer server for a fraction of the cost of managed commercial game hosting.Need a powerful environment for your Minecraft community? Explore OnliveServer VPS solutions with NVMe storage, high-frequency CPUs, and scalable resources.