Server lag in Minecraft almost always comes down to one number: TPS (ticks per second). A healthy server runs at 20 TPS. When it drops, everything stutters. Here is how to find the cause and fix it.
Run /tps (Paper/Spigot) or watch the console. If TPS is low with few players, it is usually chunk, entity or plugin load โ not bandwidth. /spark profiler or /timings shows exactly what is eating ticks.
Too little RAM causes constant garbage-collection pauses. As a rule: 3โ4 GB for a small SMP, 6โ8 GB for modpacks. On GGameHost you can raise RAM in one click if profiling shows memory pressure.
If you are on vanilla or Spigot, move to Paper (or Purpur). Paper's async chunk loading and tuning cut lag at no gameplay cost, and it is a one-click install in the panel.
These two settings in server.properties are the biggest TPS levers. Dropping view-distance to 6โ8 and simulation-distance to 4โ6 cuts work per tick with little visible difference.
Mob farms, item-frame walls and big redstone contraptions are common killers. Cap mob spawns in Paper's config, clear stray items, and watch for unloaded-chunk hoppers.
One badly written plugin can tank a whole server. Use timings to find the heaviest, update everything, and remove what you do not use.
Minecraft is largely single-threaded, so CPU clock speed matters more than core count. Older shared hardware caps your TPS no matter how you tune. GGameHost runs high-clock AMD Ryzen with NVMe storage to keep TPS at 20.