CobbleSword / NachoSpigot

NachoSpigot is a fork of TacoSpigot 1.8.9 that offers several enhancements to performance as well as bug fixes.
GNU General Public License v3.0
239 stars 88 forks source link

TPS drop #411

Open Fejm opened 2 years ago

Fejm commented 2 years ago

Observed Behavior

TPS drops even on empty server to ~19.25

[21:58:43 INFO]: TPS from last 1m, 5m, 15m: 19.75, 19.75, 19.91 No players, no plugins, clean test server, new world, no CPU usage at all (Ryzen 7 3800X), 4GB RAM allocated, JAVA 17

Expected Behavior

TPS = ~19.99

Steps To Reproduce

Just start server, without plugins..

Plugin List

none

Server Version

[21:52:58 INFO]: Checking version, please wait... [21:52:59 INFO]: This server is running NachoSpigot version git-NachoSpigot-74ed0ea (MC: 1.8.8) (Implementing API version 1.8.8-R0.1-SNAPSHOT) You are running the latest version

Other

No response

Agreements

windcolor-dev commented 2 years ago

I believe the server tps is actually stable, the latest Paper uses BigDecimals to calculate tps which is more accurate than the current system. After updating Paper's tick loop improvement patch, the tps display will probably be more accurate.

Fejm commented 2 years ago

I tried to update this patch, no change at all in tps display. Adding debug sysout in loop shows that server is ticking 51 - 52 ms, ofc server is trying to catch up at 49ms but it's not too much.. So actually tps display is correct - there is no 20 tps.

To be honest, server is not lagging, you can modify max tps and server will tick higher without any problem. There is problem in Thread.sleep calc, server is waiting too long and its unable to catchup.

ytnoos commented 2 years ago

I tried to update this patch, no change at all in tps display.

Adding debug sysout in loop shows that server is ticking 51 - 52 ms, ofc server is trying to catch up at 49ms but it's not too much.. So actually tps display is correct - there is no 20 tps.

To be honest, server is not lagging, you can modify max tps and server will tick higher without any problem. There is problem in Thread.sleep calc, server is waiting too long and its unable to catchup.

Are you testing this on Windows?

Fejm commented 2 years ago

I tried to update this patch, no change at all in tps display. Adding debug sysout in loop shows that server is ticking 51 - 52 ms, ofc server is trying to catch up at 49ms but it's not too much.. So actually tps display is correct - there is no 20 tps. To be honest, server is not lagging, you can modify max tps and server will tick higher without any problem. There is problem in Thread.sleep calc, server is waiting too long and its unable to catchup.

Are you testing this on Windows?

On Windows 11 and Debian 11. Same issue.

windcolor-dev commented 2 years ago

hmm that's weird, on my fork I updated the patch and tps ranges from 19.99-20 whilst idling

Fejm commented 2 years ago

hmm that's weird, on my fork I updated the patch and tps ranges from 19.99-20 whilst idling

Can i look on your patch?

windcolor-dev commented 2 years ago

Yeah, here are my changes: https://github.com/Wind-Development/WindSpigot/pull/21/files

Fejm commented 2 years ago

Well, this is exactly what I did myself. What CPU you are using? Intel?

windcolor-dev commented 2 years ago

I've checked tps on servers running on the Intel i5-9300H and an arm cpu from oracle cloud. Servers' tps on the oracle cloud instance drops to 19.97 at times, but there are like 5 servers running on the same instance.

HowardZHY commented 2 years ago

timings?

ghost commented 2 years ago

try to use Java 11 or 8

Fejm commented 2 years ago

try to use Java 11 or 8

Tested on 8, 11 and 17. Same results.

HowardZHY commented 2 years ago

send ur timings report

在 2022-05-19 01:05:46,"Mateusz Filipczak" @.***> 写道:

try to use Java 11 or 8

Tested on 8, 11 and 16. Same results.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>