Direct answer
The warning means the server fell behind its tick schedule. Minecraft normally targets 20 ticks per second, so a tick has about 50 ms of budget. Use a profiler while the lag is happening to identify the expensive plugin, entity work, chunk generation, redstone, disk I/O, or other task instead of assuming the answer is “more RAM.”
Measure it on Paper
Paper 1.21+ bundles spark. Capture a report during the actual lag:
/spark profiler start --timeout 300For intermittent spikes, Paper also documents profiling only ticks above a threshold:
/spark profiler start --only-ticks-over 100 --timeout 300Common causes to check
- Players generating new chunks faster than the CPU/storage can keep up.
- A plugin or mod doing expensive work on the main thread.
- Large entity counts, hoppers, redstone, farms, or scheduled tasks.
- Slow or saturated storage during world saves/chunk operations.
- A CPU with insufficient single-thread performance for the current workload.
Quick mitigations are not root-cause fixes
Temporarily lowering view/simulation distance or reducing active load can stabilize the server while you profile it. Restarting can clear a temporary condition, but a server that repeatedly needs restarts still has an underlying workload, leak, or configuration problem.
RAM is not TPS
High allocated RAM does not make the main tick loop faster. Paper notes that high heap usage is often normal; investigate actual out-of-memory crashes or bad GC, rather than treating a full-looking memory meter as proof of the lag source.
- Use the log timestamps to see whether the “Can’t keep up” warning occurs during startup, world generation or ordinary play.
- A single warning during boot is different from repeated warnings under load; compare MSPT and a spark profile during the real symptom.
- If the CPU thread is saturated, adding heap alone cannot increase the time available per tick. Investigate the profiler’s hottest branch before changing settings.
Official references
These references were checked while preparing this fix. Version-specific behavior can change, so use the project documentation for your exact release when a detail differs.
Related fixes and guides
Help us improve this article
Tell us what is missing, unclear, outdated, or incorrect. You can also suggest something we should add.