Can't keep up! Did the system time change, or is the server overloaded?

Solution 1:

If your players are moving quickly through new terrain so that the server has to create lots of new chunks this can happen. For example, one way to aggravate this issue is to get several players riding horses through previously unexplored territory.

The issue can be aggravated by having players that use client-side cheat mods that let them travel super fast. I have watched a Minecraft server crash because a player was running so fast through previously unexplored territory that the server started reporting being 10s of thousands of ticks behind.

One side effect of the server losing ticks: A player may break a block, only to see the block re-appear. I have played the game with a server console open and have noticed that when the server is lagging badly, sometimes I might have to dig the same block multiple times to actually get the block in my inventory.

In my case, I only had 3-6 players on the server at the time. The server is installed in a virtual machine, and I was able to reduce the occurrence of the problem by giving the virtual machine access to more processor cores.

Another mitigation technique is to convert the server to a Bukkit/Spigot server and use a mod called NoCheatPlus. It is able to prevent players from using client-side cheats that let them move faster than the game intends for them to move. I found it relatively easy to convert my server to a Spigot server and to import my existing world into it.

Though broken blocks re-appearing as if not broken is a specific symptom, from a better perspective, what appears to happen is that the client allows the player to perform some action and assumes the server will keep up, but then the game "rewinds" as if the action occurred during the lost ticks lost on the server. As a result, lost ticks can manifest in various other ways (i.e. a walking/running player may warp back to a point where they were previously located).

Solution 2:

Ok, so the server is just skipping ticks to catch up. This is not uncommon on personal computers. To get rid of this, you would have to get a better processor, or increase the amount of memory. You could also reduce the render distance that people on the server are using, allowing them to load fewer chunks.