Do not guess, and do not buy more RAM first. Find out whether the lag is the connection or the server, measure it, and fix the cause. Most SMP lag comes from a handful of things you can change in an evening.

"Lag" means two different problems, with different fixes:
| What players see | Likely cause | Where to look |
|---|---|---|
| Everyone at once: blocks come back after breaking, mobs freeze, the day cycle slows | Server lag (low TPS) | Steps 2 to 5 below |
| One or two players rubber-band or time out, everyone else is fine | Their connection | Their ping, Wi-Fi and ISP |
| Everyone on the same ISP lags at the same time | ISP or the route to the server | Our network status page |
For connection problems, check each player's ping in the server list (hover over the signal bars); see How to check your ping. Our network page shows live whether trouble is coming from Philippine ISPs, the DDoS protection, the data centre or our servers. If a player keeps disconnecting with good ping, follow ping issues and send us the result.
Spark shows where every tick goes. Paper 1.21+ and Purpur 1.19.1+ already include it; on other software, install it as a plugin or mod (Spark guide).
/spark profiler --timeout 120. For short lag spikes, run /spark profiler --only-ticks-over 100 --timeout 120 instead.The numbers that matter: the server aims for 20 TPS (ticks per second). MSPT (milliseconds per tick) under 50 is healthy; at 50 or more the server cannot keep up and everyone feels it.
Mob farms, piles of dropped items, villager halls and hundreds of animals in one pen are the most common reason an SMP slows down as it grows. Spread big farms out, cap animal pens, and lower spawn limits in bukkit.yml (mob spawn limits). Skip "lag clearing" plugins like Clearlagg: they delete entities for a moment, then the server spawns them all again.
Players exploring new land makes the server generate chunks, which is heavy work. Pre-generate the world with Chunky while nobody is online, and set a world border so the map stops at the pre-generated edge (limit world size).
Lower view distance to 6 to 8 and keep simulation distance at or below it. Players still see far enough, and the server has far fewer chunks to keep running. See common server.properties settings.
Update plugins to builds made for your Minecraft version, and remove ones you do not use. The Spark report names the plugin that takes the most time. On Fabric, add performance mods.
Paper and its forks (Purpur, Leaf) run plugin servers much better than plain vanilla or Spigot. On ATBP you can also switch to the Auto Optimizer server type, which tunes Paper and Leaf settings on every start; it rewrites view and simulation distance each start, so use the plain Leaf type if you want to set those yourself. Make a backup first. See server software overview and Paper optimisation.
More RAM rarely fixes lag. Minecraft does most of its work on one main thread, so what matters is CPU time.
More about our hardware and limits: Server location and hardware.
Optimisation help is free for every ATBP customer. Open a Server Optimization ticket on our Discord with your Spark link, and staff will tell you what is lagging and what to change. See Server optimisation.
If Spark shows the server is busy with normal gameplay (many players, no single runaway plugin or farm) and MSPT stays high, the server needs faster or more CPU. On ATBP, Budget+ is the low-cost line for friend groups and smaller SMPs, and Premium+ (Ryzen 9 9950X) has much faster cores for big modpacks, many plugins and 30+ players online. You can move between them from billing; your files come with you.
₱35 per GB of RAM a month on Singapore servers, free optimisation help, and a server importer that copies your world from your old host.
Get a Budget+ server Budget+ or Premium+?