Emma Larsson
VPS Technical LeadEmma Larsson is a lead systems developer and virtualization specialist with a decade of expertise in kernel configurations and hypervisor scaling.
Minecraft servers are deceptively demanding pieces of software. What begins as a private world for three or four friends can quickly grow into a community of twenty, thirty, or fifty concurrent players — and at each stage of that growth, the underlying hardware determines whether your players experience smooth block placement and fluid combat or rubber-banding, chunk-load lag, and tick rate drops that make the game unplayable. A vps minecraft server deployment sits at the intersection of affordability, control, and raw performance that neither shared Minecraft hosting plans nor dedicated physical machines can match for most server owners. Understanding why a virtual private server is the optimal choice for the majority of Minecraft communities — and how it differs from the managed hosting plans marketed specifically to Minecraft players — is the first decision every server owner should make before committing to a hosting provider.
Shared Minecraft hosting plans — the kind advertised by specialized game server providers at $5 to $15 per month — operate on a fundamentally flawed economic model for anything beyond a small vanilla server. These providers pack dozens or hundreds of Minecraft server instances onto a single physical machine, allocating a fixed amount of RAM to each customer while the CPU, storage I/O, and network bandwidth remain shared across all tenants. Minecraft's server software, particularly the vanilla server JAR distributed by Mojang, is overwhelmingly dependent on single-threaded CPU performance for its main game loop — the tick cycle that processes entity movements, redstone updates, mob AI, block physics, and player interactions twenty times per second. When a neighboring Minecraft server on the same shared host experiences a spike in activity — thirty players loading new chunks simultaneously, a complex redstone contraption firing, or a mob farm reaching its entity cap — the CPU cycles available to your server plummet, and your players feel the impact immediately as block lag, delayed hit registration, and rubber-banding. A VPS eliminates this problem entirely by giving your Minecraft server dedicated virtual CPU cores, guaranteed RAM, and isolated storage I/O that no other customer can consume.
Beyond resource isolation, a vps minecraft server gives you root access to a full Linux operating system, which unlocks an entire ecosystem of server optimization, automation, and management tooling that shared Minecraft hosts lock behind paywalls or disallow entirely. You can choose your server software — vanilla, Paper, Spigot, Purpur, Fabric, or Forge — without waiting for a hosting provider to update their one-click installer. You can configure Aikar's JVM flags, which reduce garbage collection pauses by up to 90% compared to default Java settings and are the single most impactful performance optimization available to any Minecraft server. You can set up automated world backups with cron and rsync, deploy a MySQL or PostgreSQL database for plugins that need persistent storage, run a Discord bot on the same machine to handle whitelist requests, and install monitoring tools like Prometheus and Grafana to track TPS, memory usage, and player counts over time. None of this is possible on a shared Minecraft hosting plan, and for server owners who take their community seriously, this level of control is not a luxury — it is the difference between a server that runs well and one that runs so poorly that players leave for competitors. If you are new to the concept of virtual private servers, our VPS basics guide explains the underlying technology and how it compares to other hosting models in detail.
The financial comparison also tilts decisively toward VPS hosting once your server reaches even a modest player count. A shared Minecraft host charging $15 per month for 4 GB of RAM typically restricts player slots to around 20 to 30 on a vanilla server, and performance begins degrading well before that limit under real gameplay conditions. A VPS with 4 vCPUs and 8 GB of RAM suitable for a 30-to-50-player Paper server costs between $20 and $35 per month from providers like Hetzner, Vultr, or Contabo — not meaningfully more expensive than the shared plan, but delivering dedicated CPU resources, the ability to run optimized server software, and complete administrative control. At the high end, where a modded server with 200+ mods and 30 players might require 10 to 12 GB of RAM and strong single-core CPU performance, shared hosts charge $40 to $60 per month for plans that still share CPU resources, while a VPS with equivalent dedicated specifications costs between $35 and $55 per month. The crossover point where VPS hosting becomes both cheaper and higher-performing than shared Minecraft hosting arrives surprisingly early — typically around the 4 GB to 6 GB RAM tier — and from that point onward, the shared host is strictly the worse option on every measurable dimension.
Minecraft server performance is governed by three primary hardware resources, and misunderstanding the role of any one of them leads to either under-provisioning — resulting in a laggy, unplayable server — or over-provisioning — wasting money on hardware that the server cannot utilize due to the game's software architecture. The following breakdown explains what each resource actually contributes to Minecraft server performance, what specifications matter for different server types and player counts, and how to read VPS plan specifications with a Minecraft-specific lens rather than relying on generic hosting advice that does not account for the game's unique engine behavior.
Random access memory is the resource that Minecraft server advertisements fixate on — "4 GB plan," "8 GB plan," "16 GB plan" — and it is simultaneously the most straightforward to understand and the most frequently misallocated. Every loaded chunk in your Minecraft world consumes memory: block data, entity states, tile entity inventories, player data, and the server's internal caches all reside in RAM. More players exploring more chunks means more memory consumption, and when the server exhausts its allocated RAM, the Java Virtual Machine triggers a garbage collection cycle that pauses the main game thread — a "lag spike" that every player on the server experiences simultaneously. The practical RAM requirements for different server configurations in 2026 are as follows: a vanilla survival server with 5 to 10 players and a modest world border needs 2 to 3 GB; the same server with 20 to 30 players needs 4 to 6 GB; a server running Paper or Spigot with 15 to 25 moderate plugins and 30 to 50 players needs 6 to 8 GB; and a heavily modded Forge or Fabric server with 100+ mods and 20 to 30 players needs 8 to 12 GB, sometimes more depending on the specific mod set.
The critical mistake that new server owners make is allocating too much RAM to the Minecraft server process in an attempt to solve performance problems that are actually caused by CPU limitations. Java's garbage collector must scan and manage all allocated heap memory, and allocating 16 GB or 32 GB to a Minecraft server that only needs 6 GB actually worsens performance because each garbage collection cycle takes longer to complete, producing longer and more frequent lag spikes. The Aikar flag set — covered in detail in the optimization section below — is specifically designed to use the G1 garbage collector with tuned parameters that minimize pause times for Minecraft-sized heap allocations, and it performs best with heap sizes in the 4 GB to 12 GB range. For the vast majority of Minecraft communities, a VPS with 8 GB of total RAM — allocating 6 GB to the Minecraft server and leaving 2 GB for the operating system, monitoring tools, and backup processes — provides the optimal balance of player capacity and garbage collection performance. Communities that outgrow a single server entirely should investigate network architectures like BungeeCord or Velocity rather than attempting to scale vertically with ever-larger RAM allocations.
Minecraft's server software is overwhelmingly single-threaded in its main game loop. The tick cycle — which runs twenty times per second on a healthy server and processes every entity movement, redstone update, mob AI decision, block physics event, and player action — executes on a single CPU thread. While Paper and its forks have offloaded certain subsystems like chunk generation, lighting calculations, and network compression to additional threads, the core game logic remains bound to the performance of a single CPU core. This architectural reality means that a VPS with two vCPU cores running at 4.0 GHz base clock will deliver significantly better Minecraft server performance than a VPS with eight vCPU cores running at 2.2 GHz. When comparing VPS plans for a vps minecraft server, single-threaded CPU benchmark scores — such as PassMark single-thread rating or Geekbench 6 single-core score — are far more predictive of real-world Minecraft performance than total vCPU count, total multi-threaded benchmarks, or any other aggregate metric.
In practical terms, modern data center processors that excel at Minecraft hosting in 2026 include the AMD EPYC 9004 series (particularly the higher-clocked "F" SKUs with base frequencies in the 3.5 to 4.1 GHz range), Intel Xeon Sapphire Rapids processors, and the consumer-derived AMD Ryzen 7000 and 9000 series CPUs that some boutique hosting providers deploy. A VPS running on an AMD EPYC 9754 at 3.1 GHz base clock will serve a 20-player vanilla server adequately, but a VPS on an EPYC 9174F at 4.1 GHz base clock can handle double that player count on the same number of vCPUs because the main game thread completes its work cycle faster. For budget-conscious server owners, providers like Hetzner that deploy consumer-grade or prosumer AMD Ryzen processors in their dedicated and VPS lines often deliver the best single-threaded performance per dollar because those chips prioritize clock speed over core density — exactly the trade-off that Minecraft servers benefit from. If your server struggles with TPS (ticks per second) dropping below 20 even when RAM usage is not maxed out, the bottleneck is almost certainly single-core CPU performance, and upgrading to a VPS plan with higher-clocked cores — or migrating to a provider that uses faster processors — is the correct remedy.
Storage performance determines how quickly your Minecraft world loads when the server starts, how fast new chunks generate when players explore unexplored territory, and how responsive the server feels when multiple players are loading different dimensions simultaneously. Minecraft's world data is stored as region files (.mca format) that are read from and written to disk continuously during gameplay — every chunk load, every block placement, every inventory change, and every entity state mutation eventually lands on disk. Traditional SATA SSDs with sequential read speeds around 550 MB/s and random I/O performance in the tens of thousands of IOPS can handle small vanilla servers without issues, but the moment you add mods that expand world generation, plugins that query databases, or players who spread across thousands of blocks and force constant chunk loading, SATA SSDs become a bottleneck that manifests as chunk-load lag — terrain that fails to render, chests that take seconds to open, and portals that stall before the destination dimension appears.
NVMe SSDs, which deliver sequential read speeds exceeding 3,000 MB/s and random I/O performance in the hundreds of thousands of IOPS, are the baseline storage recommendation for any vps minecraft server in 2026. The performance difference is particularly pronounced during two common scenarios: server startup, where hundreds or thousands of chunks must be loaded into memory as the world initializes, and exploration sessions where multiple players travel in different directions generating new terrain simultaneously. On an NVMe-backed VPS, a medium-sized world with 15,000 loaded chunks starts in 15 to 30 seconds; on SATA SSD, the same world can take 60 to 90 seconds. For modded servers that add custom dimensions, massive biome overhauls, and hundreds of new blocks and entities, NVMe storage is not optional — the world generation throughput demands simply overwhelm SATA drives, resulting in server freezes that last several seconds every time a player enters a new chunk. Most reputable VPS providers in 2026 offer NVMe SSD storage as standard on plans at all tiers, and any provider still only offering SATA SSD should be considered unsuitable for Minecraft hosting above a 5-player vanilla server. Storage capacity requirements are modest — 20 GB to 40 GB is sufficient for most vanilla and lightly modded servers, while heavily modded servers with large world files, multiple dimensions, and retained backups may need 80 GB to 160 GB depending on backup retention policies.
Minecraft exists in two distinct editions — Java Edition and Bedrock Edition — and their server software, performance characteristics, and hosting requirements differ in ways that directly affect which VPS configuration you should purchase. Confusing the two editions when planning a server deployment leads to misallocated resources and, in some cases, purchasing hosting that cannot run the edition your player community uses. Java Edition is the original PC version of Minecraft, purchased through minecraft.net, and it supports the vast ecosystem of community server software (Paper, Spigot, Forge, Fabric), mods, and plugins that have been developed over the past fifteen years. Bedrock Edition is the cross-platform version that runs on Windows 10/11, Xbox, PlayStation, Nintendo Switch, iOS, and Android, and it uses a fundamentally different server architecture optimized for lower resource consumption but with a significantly more limited modding and plugin ecosystem.
A Java Edition Minecraft server runs inside a Java Virtual Machine, which means the VPS operating system distribution you choose — Ubuntu Server, Debian, Rocky Linux, or any other Linux flavor — needs only a compatible Java runtime installed to launch the server JAR. The official vanilla server JAR distributed by Mojang is the simplest starting point, but the vast majority of community servers run Paper, a high-performance fork of Spigot (which is itself a fork of CraftBukkit) that patches dozens of vanilla performance issues, exposes a plugin API compatible with the enormous Bukkit/Spigot plugin ecosystem, and offloads chunk generation, lighting, and network compression to additional threads. Paper servers running 20 to 50 concurrent players on a VPS with 4 high-clock-speed vCPUs, 8 GB of RAM, and NVMe storage can maintain a stable 20 TPS with proper optimization — a level of performance that the vanilla server JAR cannot achieve even on substantially more powerful hardware because it lacks the fundamental engine optimizations that Paper implements.
The Java Edition server ecosystem's defining strength is its depth: tens of thousands of plugins for economy systems, land claiming, minigames, role-playing mechanics,anti-griefing tools, and administrative utilities exist for Paper and its derivatives. Modded servers running Forge or Fabric can transform the game into a completely different experience — technology progression modpacks like All the Mods or Feed The Factory, exploration-driven packs like Better Minecraft, or kitchen-sink packs with 300+ mods that add dimensions, magic systems, and automation chains. This flexibility comes with a resource cost: modded Java servers consume two to three times more RAM per player than vanilla servers, and the CPU demands of mods that add complex entity AI, custom world generation algorithms, or real-time machinery simulation can overwhelm even high-end VPS hardware if not carefully managed. For server owners who plan to run modded Java Edition servers, the VPS specifications recommended in the modded server section below should be treated as minimums rather than targets.
Mojang distributes the official Bedrock Dedicated Server (BDS) as a native Linux binary rather than a Java application, which has two important implications for VPS hosting. First, the absence of the JVM eliminates the memory overhead and garbage collection pauses that Java Edition server operators must manage — a Bedrock server serving 20 players might consume 1 to 2 GB of RAM compared to 3 to 4 GB for an equivalent Java Edition server, and lag spikes caused by garbage collection simply do not occur. Second, Bedrock server CPU usage is more efficiently multithreaded than the Java Edition server's main game loop, meaning that a VPS with moderate per-core performance but more total cores can handle Bedrock servers more effectively than Java Edition servers, which benefit disproportionately from high single-core clock speeds. A VPS with 2 vCPUs at 3.0 GHz can comfortably serve 20 to 30 Bedrock players, whereas the same configuration would struggle with the equivalent Java Edition player count.
The trade-off for Bedrock's efficiency is a dramatically smaller ecosystem of server modifications and plugins. BDS has no official modding API, and while third-party server software like PocketMine-MP and NukkitX provide plugin support, they are reverse-engineered implementations that do not support all vanilla Bedrock features and are not compatible with Java Edition mods or plugins. For server owners building cross-play communities that welcome players from consoles, mobile devices, and Windows PCs, the Bedrock Dedicated Server provides a low-resource, officially supported foundation, but the customization ceiling is substantially lower than what Java Edition server operators take for granted. A vps minecraft server for Bedrock Edition should still be sized with headroom — allocating 2 GB RAM and 2 vCPUs for a 10-to-20-player server, 4 GB RAM and 2 to 4 vCPUs for 20 to 40 players — but the hardware demands are so modest that even entry-level VPS plans can deliver excellent performance. For communities that want the broadest possible player base, a Velocity or BungeeCord proxy network that allows both Java and Bedrock players to connect to the same world through GeyserMC (a Bedrock-to-Java protocol translator) running on a sufficiently powerful VPS represents the best of both worlds, though the Geyser translation layer adds CPU overhead that should be accounted for in VPS sizing.
The VPS hosting market in 2026 offers a wide range of providers whose plans are suitable for Minecraft servers, but the optimal choice depends on the specific balance of single-threaded CPU performance, RAM capacity, storage speed, network quality, and price that your server community requires. Providers that excel at general web hosting do not necessarily make good Minecraft hosts, and providers known for cheap bulk VPS plans often cut corners on the CPU performance that determines whether your server holds a stable 20 TPS. The analysis below evaluates providers based on the criteria that actually matter for Minecraft server hosting — processor generation and clock speed, NVMe storage availability, DDoS protection quality, and data center locations relevant to your player base — rather than on generic hosting metrics like uptime SLAs or control panel features that Minecraft server operators rarely use.
Hetzner, the German hosting provider with data centers in Germany, Finland, and the United States, has earned a reputation in the Minecraft community as the provider that delivers the best single-threaded CPU performance relative to price. Their CX line of cloud VPS instances runs on AMD EPYC 7003 and 9004 series processors that deliver per-core performance competitive with consumer Ryzen chips, and the pricing structure — approximately €4 per month for 2 vCPUs and 4 GB RAM, scaling to approximately €20 per month for 8 vCPUs and 16 GB RAM — undercuts competitors by 30% to 50% for equivalent specifications. Hetzner's Finland and Falkenstein (Germany) data centers provide excellent latency to European players, and their Ashburn, Virginia location serves North American players well. The caveat is that Hetzner's DDoS protection, while present, is not as sophisticated as the always-on mitigation offered by providers like OVHcloud or Vultr, and server operators expecting to attract griefers who launch DDoS attacks should consider supplementing with a TCP Shield or Cloudflare Spectrum proxy. For community servers that prioritize raw performance per dollar and whose player base is concentrated in Europe or eastern North America, Hetzner is the benchmark against which other providers should be measured.
Vultr and Linode operate similar business models — straightforward cloud VPS hosting with hourly billing, a global network of data centers, and high-performance NVMe-backed instances — and both have become popular choices for vps minecraft server deployments. Vultr's High Frequency compute instances, which use NVMe storage and higher-clocked CPUs than their standard instances, are particularly well-suited to Minecraft because the elevated single-threaded performance directly improves TPS stability. Pricing for a 2 vCPU / 4 GB RAM High Frequency instance starts at approximately $24 per month, scaling to $48 per month for 4 vCPU / 8 GB, placing Vultr in the mid-range price tier but delivering predictable, consistent performance across their global footprint. Both providers offer data centers in Singapore, Tokyo, Sydney, and multiple European and North American locations, making them excellent choices for server communities whose player base is geographically distributed — you can provision the VPS in the data center closest to the majority of your players, minimizing latency for everyone.
Contabo's value proposition is straightforward: they offer the most RAM and vCPU cores per dollar of any major VPS provider. Their 4 vCPU / 8 GB RAM plan costs approximately €7 per month ($8), and their 6 vCPU / 16 GB plan costs approximately €12 per month ($13), prices that are often half to a third of equivalent plans from competitors. The trade-off is CPU performance: Contabo's server processors, while modern, are typically lower-clocked SKUs that prioritize core density over single-threaded speed, and their infrastructure has been observed to oversubscribe CPU resources more aggressively than premium providers. For a modded Minecraft server that needs 12 GB of RAM to load a 200-mod pack but does not push single-threaded CPU performance to its limits — typical of tech modpacks where players build sprawling machinery over time rather than generating constant entity-heavy mob farms — Contabo offers an unbeatable value. For a vanilla or lightly modded server where 30 players exploring new chunks simultaneously will saturate a single CPU core, Hetzner or Vultr's higher-clocked processors will deliver a noticeably smoother experience.
OVHcloud and its subsidiary brand SoYouStart are long-standing favorites in the game server hosting community, in large part because OVH's proprietary VAC (Voxility Anti-DDoS) mitigation infrastructure provides always-on DDoS protection that has absorbed some of the largest game server attacks in internet history. If your Minecraft server is likely to attract DDoS attacks — competitive PvP servers, large public survival servers with a thousand-plus Discord members, or servers in niches where rivalries between communities are common — OVHcloud's network-level protection alone justifies choosing them over providers whose DDoS mitigation is less battle-tested. OVH's VPS plans start around $5 per month for 1 vCPU / 2 GB RAM and scale up to $35 to $50 per month for 8 vCPU / 16 GB configurations, with data centers in France, Germany, the UK, Poland, Canada, the United States, Singapore, and Australia. The downside is that OVH's entry-level and mid-range VPS plans often use older processor generations compared to Hetzner or Vultr, and support response times for unmanaged plans are slower. For a comprehensive understanding of virtualization technology and how OVH's infrastructure fits into the broader VPS landscape, our complete guide to VPS hosting covers the architectural details.
Oracle Cloud Infrastructure's Always Free Tier includes an ARM-based Ampere A1 instance with up to 4 vCPUs and 24 GB of RAM at no monthly cost, and the Minecraft community has widely adopted this as an entry point for small to medium servers. The Ampere A1 processors deliver strong single-threaded performance that rivals mid-range x86 VPS instances, and the 24 GB RAM allocation — while the instance itself is shared across all your Oracle free tier resources — is sufficient for a well-optimized Paper server with 20 to 30 players or a modded server with 10 to 15 players. The limitations of the free tier are meaningful: you are restricted to Oracle's data center regions, ARM architecture means some older server software and mods may have compatibility issues (though this is increasingly rare in 2026), and Oracle's account verification process has been known to be cumbersome. For a small private server among friends or a testing environment, the Oracle free tier is genuinely costless and genuinely functional — no other major cloud provider offers anything comparable. For a production server that players depend on, the lack of an SLA and the possibility that Oracle could modify the free tier terms mean that a paid VPS from Hetzner, Vultr, or a similar provider is the more reliable long-term foundation. For server owners who need to connect to their VPS to perform the initial server installation, our SSH access guide walks through the connection process step by step.
Deploying a Minecraft server on a Linux VPS follows a repeatable workflow that, once understood, takes less than thirty minutes from initial SSH connection to a running, player-accessible world. The following steps assume you have provisioned a VPS with a fresh installation of Ubuntu Server 22.04 or 24.04 LTS — the most widely used Linux distribution in the Minecraft hosting community — and that you have SSH access with a non-root user configured with sudo privileges. If you are working with a different distribution like Debian or Rocky Linux, the package manager commands and file paths differ but the overall sequence remains the same.
Connect to your VPS via SSH and immediately update the system package index and installed packages to their latest versions. On Ubuntu, the commands are sudo apt update && sudo apt upgrade -y. This ensures that your server is running patched software with current security fixes before any Minecraft-specific software is installed. After the system update completes, install the packages that the Minecraft server will depend on: OpenJDK for running the Java Edition server JAR, screen or tmux for maintaining a persistent terminal session that survives SSH disconnections, and unzip and curl for downloading and extracting server files. The recommended command for a minimal Minecraft-ready Ubuntu server is sudo apt install openjdk-21-jre-headless screen curl unzip -y. Java 21 is the current long-term support release and is required by Minecraft server versions 1.20.5 and later, while older server versions may require Java 17; check your server JAR's documentation for the specific Java version requirement. The headless variant of the JRE installs without graphical dependencies, saving disk space and reducing the attack surface on a server that runs without a desktop environment.
Running the Minecraft server under a dedicated, unprivileged system user account is a foundational security practice that prevents a compromised server process from gaining root access to the VPS. Create a new user named "minecraft" (or a name of your choice) with sudo adduser minecraft, set a strong password, and do not grant the user sudo privileges. Switch to the new user with sudo su - minecraft, create a directory for the server files with mkdir ~/minecraft-server && cd ~/minecraft-server, and all subsequent server operations — downloading the JAR, running the server, and managing files — should be performed as this unprivileged user. This compartmentalization means that if a malicious plugin, a mod vulnerability, or a remote code execution exploit compromises the Minecraft server process, the attacker is contained within a user account that cannot modify system files, install software, or access other services running on the VPS.
Choose your server software and download the latest stable JAR file into the minecraft-server directory. For a vanilla server, download the official server JAR from Mojang's version manifest or use the direct download link for the specific version you want. For a Paper server — the recommended choice for the vast majority of community servers due to its performance optimizations and plugin compatibility — download the latest build from the PaperMC website using curl. For example: curl -o paper.jar https://api.papermc.io/v2/projects/paper/versions/1.21/builds/latest/downloads/paper-1.21-latest.jar. After downloading, accept the Minecraft EULA by creating the eula.txt file with the content eula=true — the server will refuse to start without this file present. Create a start script, typically named start.sh, that launches the server with optimized JVM flags. A minimal but effective start script for a 6 GB server looks like this:
#!/bin/bash
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 -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 paper.jar nogui
These are Aikar's flags — the community gold standard for Minecraft server JVM tuning — which configure the G1 garbage collector with parameters specifically optimized for Minecraft's memory allocation and deallocation patterns. Make the script executable with chmod +x start.sh and launch the server in a screen session with screen -S minecraft ./start.sh. The server will generate the world, spawn area, and default configuration files on first launch. Once the server finishes starting and you see "Done" in the console, you can detach from the screen session with Ctrl+A followed by D, leaving the server running in the background. Reattach later with screen -r minecraft to access the server console for administrative commands. For server owners who prefer a different Linux distribution or need to evaluate how cloud provider architectures affect Minecraft server performance, our Google Cloud VPS comparison examines the strengths and weaknesses of hyperscaler infrastructure for game server workloads.
With the server running, stop it by typing stop in the console, then edit the server.properties file to customize your server's gameplay settings and network configuration. The critical settings for a community server include: server-port=25565 (the default Minecraft port; only change this if you have a specific reason), max-players= (set to your expected concurrent player count plus 20% headroom), view-distance= (the radius in chunks that the server sends to each player; 8 to 10 is a good balance for mid-range servers, while 12 to 16 demands substantially more CPU and RAM), simulation-distance= (the radius in chunks where entities are actively simulated; 6 to 8 is practical), difficulty=, gamemode=, white-list=, and motd= (the message players see in the server list). Configure your VPS firewall — ufw on Ubuntu — to allow the Minecraft port: sudo ufw allow 25565/tcp and sudo ufw allow 25565/udp (Minecraft Java Edition uses TCP, but Bedrock and some query protocols use UDP, so opening both protocols is good practice). Verify that sudo ufw enable is active and that your VPS provider's external firewall, if any, is also configured to pass port 25565. At this point, your server is ready for players to connect using your VPS IP address and port 25565.
A production Minecraft server should restart automatically if the VPS reboots for any reason — planned maintenance, a kernel update, or an unexpected hypervisor-level event. Create a systemd service file at /etc/systemd/system/minecraft.service (as root or with sudo) that defines the Minecraft server as a system service managed by the init system. A minimal service file specifies the working directory, the user to run as, the start and stop commands, and the restart policy. Enable the service with sudo systemctl enable minecraft and start it with sudo systemctl start minecraft. The server will now launch automatically on boot and can be stopped gracefully with sudo systemctl stop minecraft. For automated backups, create a cron job that runs a script to broadcast a save-all warning to players, execute the save-all command via the server console (or through RCON if your server software supports it), archive the world directory, and upload the archive to an off-site location such as a cloud object storage bucket. A daily backup cron job with 7-day retention provides reasonable disaster recovery without consuming excessive disk space, and the off-site upload ensures that even a complete data center failure does not destroy your world and player data.
The difference between a Minecraft server that runs at a steady 20 TPS with forty players online and one that drops to 12 TPS with fifteen players is almost never the hardware — it is the software configuration. The vanilla Minecraft server JAR distributed by Mojang is a reference implementation that prioritizes correctness over performance, and it contains dozens of known bottlenecks that community server software projects have spent years patching and optimizing. Understanding which server software to choose, how to configure it, and which JVM flags to apply transforms a VPS from hardware that strains under moderate load into hardware that handles double or triple the player count with resources to spare.
Paper is a high-performance fork of Spigot, which is itself a fork of CraftBukkit, and it represents the current apex of optimized Minecraft server software for the vast majority of community server use cases. Paper incorporates hundreds of patches that fix vanilla performance issues — optimizing the chunk system to reduce memory allocation pressure, rewriting entity activation range logic so that mobs far from players are not ticked at full rate, improving the hopper inventory-checking algorithm to reduce CPU waste, caching lighting calculations, and threading chunk generation and network compression onto separate CPU cores. The cumulative effect of these optimizations is dramatic: a Paper server can handle roughly 50% to 100% more concurrent players on the same hardware compared to a vanilla server, and TPS stability under sudden load — such as thirty players logging in simultaneously or a redstone-heavy area being loaded for the first time — is substantially better. Paper also maintains full compatibility with the Bukkit, Spigot, and Paper plugin APIs, meaning the enormous ecosystem of plugins for economy, land protection, teleportation, chat management, and game mechanics all work without modification.
Configuring Paper for optimal performance involves editing the paper-world-defaults.yml and paper-global.yml files that are generated on first launch. The most impactful individual settings include: reducing entity-activation-range for ambient mobs (bats, fish) and water creatures to 8 to 16 blocks instead of the default 32, which prevents the server from wasting CPU cycles on mobs that players cannot see or interact with; setting tick-rates.mob-spawner to a value between 2 and 4 so that spawner blocks do not attempt to produce mobs every single tick; enabling hopper.disable-move-event to true unless a plugin specifically requires hopper move events; and adjusting max-auto-save-chunks-per-tick to a value between 8 and 24 to spread chunk saving across multiple ticks rather than slamming the storage system with hundreds of save operations simultaneously. For server owners who want a deeper exploration of how virtual server resources are allocated and how to verify that your VPS is delivering the performance it advertises, our VPS server specs explainer covers vCPU scheduling, memory allocation, and storage I/O in the context of real application workloads.
Spigot, the upstream project from which Paper is forked, offers a subset of Paper's optimizations with a slightly simpler configuration surface and is sometimes preferred by server owners who want a more conservative, closer-to-vanilla experience while still benefiting from plugin support and basic performance improvements. Purpur is a fork of Paper that adds additional configuration options — such as the ability to enable sand duplication, configure mob griefing on a per-mob basis, and adjust gameplay mechanics without installing plugins — and is popular among server administrators who want fine-grained control over every aspect of gameplay behavior. For the average vps minecraft server operator, Paper is the correct default choice because it offers the best balance of performance, plugin compatibility, and community support. Purpur is worth evaluating if you find yourself installing multiple plugins solely to adjust individual gameplay mechanics that Purpur exposes as configuration options, and Spigot is appropriate only if you have a specific compatibility requirement that Paper does not satisfy. The vanilla JAR, while the reference implementation, should be considered unsuitable for any server with more than five to ten concurrent players due to its unoptimized performance characteristics.
The Java Virtual Machine's default garbage collection settings are designed for short-lived, request-response applications like web servers processing HTTP requests — applications that allocate many small objects and release them quickly. Minecraft servers exhibit the opposite memory behavior: they allocate a large, persistent heap of long-lived objects — loaded chunks, entity data structures, player inventories — with relatively little short-lived allocation cycling. The default Parallel GC or Serial GC collectors pause the entire application thread — which means your server freezes for all connected players — every time they perform a collection cycle, and on a Minecraft server with 6 GB to 12 GB of heap, these pauses can last 200 milliseconds to over a second. Twenty TPS requires a tick every 50 milliseconds, so a single 200-millisecond garbage collection pause causes the server to skip four entire ticks — visible to players as a hitch or micro-stutter. Frequent pauses compound into an experience that feels sluggish and unresponsive even though the server's average CPU utilization appears low.
Aikar's flags — developed and maintained by Aikar, a long-time PaperMC contributor and Minecraft server performance expert — reconfigure the JVM to use the G1 garbage collector with parameters optimized specifically for Minecraft-sized heap allocations and object lifetime patterns. The G1 collector divides the heap into regions and prioritizes collecting regions with the most garbage first, allowing it to complete most collection cycles within the 50-millisecond tick window. The specific flags tune the new generation size, the heap region size, the pause time target, the mixed garbage collection thresholds, and the survivor space ratio to values that have been empirically validated across thousands of community servers. The practical impact is substantial: a server running Aikar's flags experiences 80% to 90% fewer visible lag spikes from garbage collection compared to the same server running default JVM settings, and the spikes that do occur are shorter and less disruptive. The full flag set is shown in the setup section above, and applying them requires no code changes, no plugin installation, and no game-mechanics modification — they are purely a JVM configuration change that consistently produces the highest-impact performance improvement per unit of effort of any Minecraft server optimization.
Two additional optimizations complement Paper and Aikar's flags to round out a well-tuned Minecraft server. First, pre-generate your world border using a plugin like Chunky or the built-in Paper world border fill command. Chunk generation is the single most CPU-intensive operation a Minecraft server performs — generating one chunk involves terrain population, structure placement, biome decoration, and cave carving — and when players explore new territory by flying with elytra or riding fast boats, the server can be forced to generate hundreds of chunks per minute, saturating even a fast CPU core. Pre-generating the world out to a defined border means that all subsequent player exploration loads pre-existing chunks from disk rather than generating new ones, reducing the CPU cost of exploration by 90% or more. A world pre-generated to a 10,000-block radius requires approximately 5 to 15 GB of disk space depending on terrain complexity and takes several hours on a mid-range VPS, but it eliminates the single largest source of unpredictable server lag for the lifetime of the world.
Second, aggressively limit entity counts and cramming. The max-entity-collisions and entity-broadcast-range-percentage settings in the Paper configuration control how many entities can occupy the same space and how far entity state changes are sent to clients, and reducing these values prevents the CPU spikes that occur when a poorly designed mob farm accumulates hundreds of entities in a single chunk. Combined with Paper's entity activation range control and the pre-generated world, these measures ensure that even a VPS with moderate single-core CPU performance can deliver a smooth, stable 20 TPS experience to dozens of simultaneous players — performance that would require substantially more expensive hardware if the server relied on the vanilla JAR with default JVM settings.
Modded Minecraft servers introduce a class of performance demands that vanilla and lightly plugin-enhanced servers simply do not encounter, and underestimating these demands is the most common reason that modded server launches fail within the first week. A modern modpack — whether a kitchen-sink collection like All the Mods 10 with 350+ mods, a technology progression pack like Feed The Factory, or an exploration-heavy pack like Better Minecraft — adds thousands of new blocks, hundreds of new entities with custom AI, dozens of new dimensions with unique world generation algorithms, and real-time machinery systems that tick continuously regardless of whether a player is nearby. Each of these additions consumes memory, CPU cycles, and storage I/O bandwidth that the vanilla server never touches, and the cumulative resource consumption of a large modpack can exceed vanilla requirements by a factor of three to five. Planning your vps minecraft server specifications for a modded deployment requires a fundamentally different calculation than for a vanilla or Paper server.
Modded Minecraft servers consume RAM voraciously because every loaded mod registers its blocks, items, entities, recipes, and data structures in memory at server startup, and each additional chunk loaded into memory carries the combined memory footprint of every mod that adds content to that chunk. A light modpack with 50 to 80 mods — quality-of-life improvements, a few new biomes, and some decorative blocks — might run comfortably in 4 to 6 GB of allocated heap. A medium pack with 100 to 200 mods that introduces new dimensions, technology trees with automation machinery, and significant world generation changes requires 8 to 10 GB. A heavy pack with 250 to 400 mods — the "kitchen sink" category — demands 10 to 14 GB of allocated heap, and some exceptionally large packs push beyond 16 GB. Importantly, the heap size allocated to the JVM should not exceed roughly 60% to 70% of the VPS's total physical RAM, because the operating system, filesystem cache, and any auxiliary services (backup scripts, monitoring agents, Discord bots) all need memory as well. A modded server requiring 10 GB of heap should be hosted on a VPS with at least 14 to 16 GB of total RAM.
While the main game loop remains single-threaded on modded servers, the additional systems that mods introduce — custom world generation in multiple dimensions, machinery that processes items on independent timers, entity AI for dozens of new mob types, and network serialization of modded block and item data — distribute CPU load across multiple threads more effectively than a vanilla server. Forge and Fabric both implement threading improvements that allow concurrent mod initialization, parallel world generation, and asynchronous chunk loading. A heavily modded server on a VPS with 4 to 6 vCPUs will distribute this auxiliary load across the available cores, leaving the main game thread with more uncontended access to a single core for the tick loop. A 2 vCPU VPS running a 300-mod pack will struggle because the single core not running the main game loop must handle all of the auxiliary work — world gen, entity AI, network serialization, and garbage collection — and contention for that second core becomes a bottleneck. For modded servers with 150+ mods, 4 vCPUs is the practical minimum, and 6 to 8 vCPUs provides comfortable headroom for peak activity periods when multiple players are exploring new dimensions simultaneously while machinery systems process items in loaded chunks. As with vanilla servers, single-core clock speed remains the dominant factor for main-thread performance, so prioritize higher-clocked cores over higher core counts when choosing between VPS plans.
Modded worlds are substantially larger on disk than vanilla worlds because every mod that adds new blocks, biomes, structures, or dimensions increases the amount of data stored in each region file. A vanilla world with a 10,000-block radius might occupy 2 to 4 GB on disk. The same radius in a 200-mod pack can occupy 10 to 25 GB because every chunk contains data for hundreds of additional block types, tile entities with persistent inventories, and mod-specific metadata. NVMe storage is effectively mandatory for modded servers — the startup time for a large modpack on SATA SSD can stretch beyond five minutes as thousands of mod assets and world chunks are read from disk, and exploration-driven chunk generation on SATA storage produces multi-second freezes every time a player enters a newly generated chunk. Pre-generating the world for a modded server is even more important than for vanilla because the CPU cost of generating a single modded chunk is 3x to 10x higher — terrain population must call into every mod that adds world generation features, and structure placement evaluates dozens of mod-specific structure spawn conditions per chunk. Using Chunky or a similar pre-generation tool to generate the world within a defined border before opening the server to players eliminates the single largest source of CPU lag for the server's lifetime, and the border also prevents players from generating infinite new chunks that would bloat the world size beyond what your VPS storage can accommodate.
The Minecraft server hosting market presents server owners with two fundamentally different purchasing models: managed Minecraft hosting plans from specialized providers like Apex Hosting, Shockbyte, BisectHosting, and Akliz, and self-managed VPS instances from infrastructure providers like Hetzner, Vultr, and OVHcloud. The managed option promises convenience — a control panel where you can switch server versions, install modpacks, and manage plugins without touching a command line — while the VPS option promises control, performance, and, at most resource tiers, lower cost. Understanding the true total cost of each model, the hidden limitations of managed plans, and the skill investment required for self-management enables server owners to make an informed decision rather than defaulting to whichever model their first Google search returned.
Managed Minecraft hosting plans are priced primarily by RAM allocation, and as of 2026, typical pricing tiers are: 2 GB RAM at $5 to $8 per month, 4 GB at $10 to $15 per month, 6 GB at $15 to $22 per month, 8 GB at $20 to $30 per month, 10 GB at $28 to $40 per month, and 16 GB at $40 to $60 per month. At first glance, these prices appear competitive with VPS plans at the lower RAM tiers. The critical performance difference — and the reason managed plans often deliver worse real-world performance than their specifications suggest — is CPU resource sharing. Managed Minecraft hosts run their customers' servers on shared physical hardware using containerization or process-level isolation, and while the RAM allocation is guaranteed, the CPU allocation is typically expressed in vague terms like "unlimited CPU" or "fair-use CPU" that obscure the reality of multi-tenant contention. When another customer's server on the same physical node experiences a CPU-intensive operation — thirty players generating new chunks simultaneously, a complex redstone machine operating on a loaded chunk, or a modded server with hundreds of active machinery blocks — the CPU cycles available to your server drop, and your players experience TPS loss. The managed host's control panel may show that your server is using 40% of its allocated "CPU," but that figure is measured against a shared, oversubscribed resource pool, not against a dedicated allocation.
The value proposition of managed hosting is genuine for specific audiences: server owners who lack Linux system administration skills, who do not want to learn SSH and command-line server management, or who run small servers with fewer than 10 players where the CPU contention problem is unlikely to manifest because the server's own demands are modest. For these users, the $10 to $15 per month premium over an equivalent VPS is paying for convenience — a graphical control panel, automatic modpack installation, and support staff who handle server crashes and configuration issues. The problem is that managed Minecraft hosting becomes progressively worse value as server resource requirements grow. A 10 GB RAM managed plan at $28 to $40 per month is competing directly with VPS plans that offer 4 to 6 dedicated vCPUs, 16 GB of RAM, and NVMe storage — substantially more hardware for the same or lower price, plus complete administrative control and the ability to run server software and JVM flags that managed hosts may not support or may restrict. For server communities that expect to grow beyond 15 to 20 concurrent players, the crossover point where a VPS delivers better price-to-performance has already been passed.
An honest cost comparison between managed Minecraft hosting and a self-managed vps minecraft server must account for the ancillary expenses that VPS pricing does not always include in the headline monthly rate. DDoS protection is the most significant hidden cost: managed Minecraft hosts bundle DDoS mitigation into their plans because game servers are frequently targeted by attacks, while unmanaged VPS providers may not include adequate protection. If your VPS provider's DDoS mitigation is insufficient for game server traffic patterns, you may need to route your server through a TCP proxy service like TCPShield (free tier available for small servers, paid plans from $5 to $50 per month) or Cloudflare Spectrum (priced per GB of traffic). A domain name, if you want players to connect via a memorable address rather than an IP, costs approximately $10 to $15 per year. Automated off-site backups — a recommended practice that managed hosts often include — cost $5 to $10 per month for cloud object storage if you set them up yourself. A server listing on Minecraft server lists and voting sites, if you want to attract new players beyond your existing community, may cost $10 to $30 per month depending on the listing platforms.
When all ancillary costs are summed, a self-managed VPS for a 30-player Paper server might cost $25 to $35 per month for the VPS itself plus $10 to $20 per month for DDoS protection, backup storage, and a domain — a total of $35 to $55 per month. The managed hosting equivalent for 8 GB of RAM — the specification needed for 30 players on a well-optimized Paper server — costs $20 to $30 per month. At this tier, managed hosting is cheaper in raw dollars. However, the managed plan delivers shared, oversubscribed CPU performance, while the VPS delivers dedicated vCPU cores that produce measurably smoother gameplay during peak activity. The question for server owners is whether the $5 to $15 monthly savings (or premium, depending on the tier) is worth either the reduced performance of managed hosting or the time investment of self-management. For server communities where player retention is driven by gameplay quality and server responsiveness — which describes almost every successful Minecraft community — the performance advantage of a properly configured VPS typically justifies the additional cost or administrative effort. For server owners evaluating whether a VPS will meet their long-term needs or whether they should plan for a dedicated machine as their community grows, our dedicated server guide examines the scaling inflection point in detail.
Hosting Captain's perspective on the Minecraft hosting decision is informed by our broader philosophy of matching infrastructure to workload rather than selling the highest-margin plan. A VPS provides the resource isolation, root access, and configuration flexibility that Minecraft servers need to deliver consistent performance as player communities grow, and the Linux system administration skills that server owners learn in the process of self-management — SSH, process supervision with systemd, automated backups with cron, firewall configuration with ufw — are transferable skills that serve them well for any future technical project. Our recommended approach is to start with a mid-range VPS from a provider with strong single-threaded CPU performance, deploy Paper with Aikar's flags, pre-generate the world, and invest the modest time required to learn the command-line server management workflow. The result is a Minecraft server that performs like it is running on hardware costing twice as much — and a server owner who understands exactly how and why that performance is achieved.
For a vanilla or Paper server: 2 to 3 GB for 5 to 10 players, 4 to 6 GB for 20 to 30 players, and 6 to 8 GB for 30 to 50 players with moderate plugins. For a modded server with 100+ mods: 8 to 10 GB for 10 to 20 players, 10 to 14 GB for 20 to 30 players. These are heap allocation amounts — the RAM assigned to the Minecraft Java process via the -Xms and -Xmx flags. Your VPS needs additional RAM beyond the heap for the operating system, filesystem cache, and any auxiliary services; plan for 2 to 4 GB of overhead above the heap allocation. Allocating more RAM than the server actually needs does not improve performance and can worsen it because larger heaps cause longer garbage collection pauses.
Choose a VPS if you need more than 15 to 20 concurrent players, plan to run modded servers with significant resource demands, want to use optimized server software like Paper and Aikar's JVM flags, or need to run additional services (Discord bots, databases, web maps) on the same machine. Choose a managed Minecraft host if you have a small server with fewer than 10 players, lack Linux command-line skills and do not want to learn them, or value the convenience of a graphical control panel and one-click modpack installation above raw performance and cost efficiency. At the 4 GB to 6 GB RAM tier, managed hosting and VPS pricing overlap, but the VPS delivers dedicated CPU resources while managed hosts share CPU across customers.
Hetzner offers the best single-threaded CPU performance per dollar and is the top recommendation for European player bases. Vultr High Frequency instances deliver excellent, consistent performance across a global network of data centers. Contabo provides the most RAM per dollar but with slightly lower per-core CPU performance, making them ideal for modded servers that need large heap allocations without extreme single-core demands. OVHcloud offers battle-tested DDoS protection that is valuable for public servers likely to attract attacks. The "best" provider depends on your player location, server type, and budget, and the detailed comparison in this article's provider section covers each option's trade-offs.
Yes, using GeyserMC — a proxy that translates the Bedrock Edition protocol to the Java Edition protocol — installed alongside a Paper server. Geyser runs as a plugin or a standalone application on the same VPS, and Bedrock players connect to the Geyser listener port while Java players connect directly to the standard Minecraft port. This adds CPU overhead (roughly 10% to 20% additional load per Bedrock player during peak activity), so factor Geyser's resource consumption into your VPS sizing. For a server expecting significant populations of both Java and Bedrock players, running Geyser on a VPS with at least 4 vCPUs and 8 GB RAM is recommended.
Running Paper (or a compatible fork like Purpur) with Aikar's JVM flags applied to the server start command. Paper addresses dozens of vanilla performance bottlenecks in the game engine itself, and Aikar's flags reconfigure the Java garbage collector to minimize pause times for Minecraft's specific memory allocation patterns. Together, these two changes typically reduce visible lag spikes by 80% to 90% compared to running the vanilla server JAR with default JVM settings on identical hardware, and they require no game-mechanics modifications, no plugin installation, and no ongoing maintenance beyond keeping Paper updated to the latest build.
First, check whether your VPS provider includes DDoS mitigation. OVHcloud and Vultr include always-on protection, while budget providers like Hetzner and Contabo offer more limited mitigation. If your provider's protection is insufficient or attacks are specifically targeting the Minecraft port, route your server traffic through a TCP proxy service like TCPShield (which has a free tier for small servers) or Cloudflare Spectrum (paid, per GB of traffic). These services absorb the attack traffic at their network edge and forward only clean traffic to your VPS. Hiding your VPS IP address behind the proxy domain name is essential — if attackers discover the raw IP, they can bypass the proxy by attacking the VPS directly.
The Oracle Cloud Always Free Tier's ARM Ampere A1 instance (up to 4 vCPUs and 24 GB RAM) is technically capable of hosting a 20-to-30-player Paper server at no cost, and many in the Minecraft community have done so successfully. The risks are that Oracle's free tier has no uptime SLA, Oracle can modify or discontinue the free tier terms at any time, ARM architecture may cause compatibility issues with older mods or plugins (though this is increasingly rare), and the account signup process can be challenging. For a private server among friends or a test environment, the free tier is genuinely useful. For a production server where players depend on availability, a paid VPS from a provider with an SLA is the safer long-term choice.
Emma Larsson is a lead systems developer and virtualization specialist with a decade of expertise in kernel configurations and hypervisor scaling.







