Back to Blog

5 Tips to Reduce Lag on Your Game Server

·5 min read·
PerformanceTips

Why Lag Happens

Lag on a game server comes from three sources: the server hardware can't keep up with the game's tick rate, the network connection between players and the server is too slow, or the game world has too many entities and loaded chunks to process efficiently. Minecraft servers target 20 TPS (ticks per second) — when TPS drops below 18, players start noticing block lag and delayed interactions.[1]

The good news is that most lag is fixable. These five tips cover the most common causes and how to solve them.

1. Choose a Server Location Close to Your Players

Network latency is determined by physical distance. According to WonderNetwork's global ping statistics, a server in New York averages 20-40ms for East Coast US players but 80-120ms for players in Western Europe, and 150-200ms for players in Southeast Asia.[2] If your group is spread across regions, pick a central location or choose the region where most of your players are.

Most quality hosts offer servers in multiple regions. HostSimple has locations in the US and EU, so you can pick the one that gives your player base the lowest average ping.

2. Allocate Enough RAM (But Not Too Much)

Under-allocating RAM forces the Java garbage collector to run constantly, which causes lag spikes. But over-allocating can also hurt — giving a server 16 GB when it only uses 4 GB means the garbage collector has more memory to scan, leading to longer GC pauses. According to Oracle's Java GC tuning guide, G1GC pause times scale with heap size, so right-sizing your allocation is critical.[3]

Monitor your server's actual memory usage and set the allocation to about 1-2 GB above the peak. Use the -XX:+UseG1GC flag and related tuning parameters for the best garbage collection performance with Minecraft. Aikar's recommended JVM flags are considered the industry standard and can reduce GC pauses by up to 40%.

3. Reduce View Distance and Simulation Distance

View distance controls how many chunks the server keeps loaded around each player. The default of 10 means a 21x21 chunk area (441 chunks) per player. With 20 players online simultaneously, that's potentially 8,820 chunks the server needs to manage. Dropping view distance to 8 (17x17 = 289 chunks per player) reduces the per-player load by 34%.

Simulation distance is a separate setting that controls how far from a player entities and blocks are actively ticked. Setting this to 6-8 while keeping view distance at 10 lets players see far without the server simulating everything they can see.

4. Use a Performance-Optimized Server Jar

Vanilla Minecraft server software is not optimized for performance. Paper (for Spigot/Bukkit plugin compatibility) and Purpur (a Paper fork with even more optimizations) include hundreds of patches that reduce entity lag, optimize chunk loading, and improve tick performance. As PaperMC lead developer Aikar explains: "Paper's optimizations alone can recover 3-5 TPS on a server that's struggling under load."[4]

Switching from vanilla to Paper typically improves TPS by 20-40% with zero configuration changes. Independent benchmarks from the PaperMC project show consistent improvements across entity processing (30% faster), chunk loading (50% faster), and hopper tick reduction (60% fewer unnecessary ticks).[5]

5. Clean Up Entities and Automate Restarts

Thousands of dropped items, idle mobs, and abandoned minecarts add up. A typical Minecraft world can accumulate 5,000-15,000 entities within a few days of active play, each consuming CPU cycles every tick. Use a plugin like ClearLag to periodically remove dropped items and limit mob spawning in areas where it isn't needed.

Scheduled restarts — every 6-12 hours — clear memory leaks and reset the server state. Java applications like Minecraft servers are known to accumulate fragmented memory over time, and a clean restart recovers full performance. Most control panels, including the one HostSimple provides, let you set up automatic restarts on a schedule so you don't have to do it manually.

Ready to get started?

Start your 7-day free trial today. No contracts, cancel anytime.