Every mob, item on the floor, minecart and armour stand is an entity, and the server thinks about each one every tick. This is the most common reason a survival server that used to run fine starts stuttering.
What you are seeing
- TPS drops in one area of the map and recovers when everyone leaves it.
- A specific player's base is where it always starts.
- The drop happens after someone builds a farm.
Why it happens
Entity cost is per entity per tick. A mob farm holding a thousand mobs, or a chest room where thousands of items were dropped on the floor, multiplies that cost until the tick runs out of time.
What to do
- Count what is loaded
Run
/spark tpsand then/spark profilerto find the hot area, or use an entity-counting plugin. You are looking for one place with an unusual number. - Clear dropped items
Items on the floor are entities too, and players leave them everywhere. A plugin that clears ground items on a timer removes an entire class of this problem.
- Cap mobs per chunk
Paper and its forks let you limit how many mobs spawn and persist per chunk in
spigot.ymlandpaper-world-defaults.yml. Lowering the cap stops any one farm from dominating the tick. - Ask the builder to add a killer
A working farm kills what it collects. A farm that only accumulates is a lag machine with a hopper attached.
TPS stays near 20 when players stand in the area that used to drop it.
Armour stands and item frames count as entities as well, and decorative builds sometimes contain hundreds of them in one room without anyone thinking of them as mobs.