So my server tps has been stable above 19tps for a month or more besides for worldedits and such. And this morning I felt a lag spike and found my tps down to 14 tps then it took about a few minutes to recover. I was able to get a short timings of the lag spike and it showwed this http://timings.aikar.co/?url=11376565 The only thing i changed today was i updated to the new 1.8.6 spigot... I looked in the logs and only a few basic essentials commands were used during the lag spike. The timings did not show the lag spike to be from any plugins. But still from a command. Very odd. Changing back to a 1.8.3 spigot build from now.
If you looked at the timings you would have seen this isnt entities causing the spike. I saw a cpu spike that is not relevant to the plugins, entities or worlds when looking at the timing report so i made a thread to try to figure it out. EDIT: the only thing else that could have caused this is if someone had a hack to run a ton of commands that are spigot commands then it wouldnt show up for a plugin in timings EDIT: During the lag spike i spawned about 5 groups of 3 cows with /spawnmob which i did a test and did the same thing and it did lag once but didnt for the other times.
I'm sorry you feel that way, but I don't see anywhere or anything in those timings that suggest that this is a problem with too many entities or worlds. Even if it was due to a massive amount of entities it would have caused the tps drop to last until they are removed. Which im looking for a cause to a lag spike which is not constant. EDIT: The only line that shows any use of entities is 3.81% 1.31 s 1.90 ms 1.0 0.7k Survival18 - tickEntities
I have concluded that the entities are not the cause of lag. Here is a timing without the lag spike. This timing is a bit longer then the one of the lag spike. Note "Survival18 - tickEntities" is about the same and my tps is 19.99 http://timings.aikar.co/?url=11378055 The only difference is the Connection Handler and PlayerCommand events were higher during the lag spike. Ill try to get another timing to see if anything else pops up.