[1.7.10][Cauldron][1.8] Tick Dynamic - Keep your server running at 20 TPS

  • The FTB Forum is now read-only, and is here as an archive. To participate in our community discussions, please join our Discord! https://ftb.team/discord

Silverbeast

New Member
Jul 29, 2019
5
0
0
I'm using it on my server, tps without using it: 12, using it: 18. I'm not getting 20 tps (i know my main problem are tileEntities from DIM0, maybe you can provide me a special cfg? or is there any way to make the mod try to keep my server working at +20 tps, so i can get 20 real tps?) but it's still incredible!
Some people made mods to improve fps, like optifine or fastcraft, but anybody thinks on improving tps, just you. Keep up the good work!
 

wildex999

New Member
Jul 29, 2019
46
0
0
Have you considered limiting things by chunk? This would be a neat way of not having to keep track of players, but rather throttling offending chunks. This could have some annoying chunk-boundary effects but overall things might run more smoothly than now.

The possible effects of slowing down per chunk, and the cost of timing/grouping per chunk, means I most likely will not implement it, at least not as a priority.
I am working on per-user limiting, and will hopefully have a test version for that up soon.

Let me see if I understand the mod/goal here:

If it takes a long time to tick everything, then you might get 5 tps, and each entity/tile entity gets ticked 5 times, once per server tick.

With this installed, you will get (best case) 20 tps. During each tick, 1/4th of the entities in the loaded chunks get ticked. Each still gets 5 ticks per second, but only gets updated once every 4 server ticks.

That about sum it up?

So I assume this means that the sun/moon will move properly, at 20 real minutes per cycle, even when the server is loaded, and I won't see the client's idea of "Game time" jump around.

Will things like furnaces ... actually, will a smelt take 10 seconds like it does now, or will it take time based on how many ticks it sees?

The server will try to run at 20 TPS. So things like moving around, redstone, interacting(Opening a chest), digging/placing blocks etc. will run at 20 TPS.
To achieve this it will slow down Entities and TileEntities according to your config with Time Slices.
By default it spread the time equally, meaning that if a tick is taking more than 50 ms, and Entities are using 40ms per tick, it will, for example, only tick half the Entities per tick.
Thus running Entities at only 10 TPS.
For Entities this will mean they will move about slowly(Including things like eating grass and regrowing wool), and for TileEntities like a furnace, they will take longer to finish smelting stuff.

Ohh ... speaking of reactors, how will this work with rotarycraft/reactorcraft machines/engines/reactors?
Depends on how the mods are written.
Certain mods, mostly for multiblock structures, will do the "tick" outside the TileEntities themself, meaning that they will actually run at the server TPS rather than the TileEntity TPS.
As far as I can see, RotaryCraft has no multiblock structures, and should run at the TileEntity TPS without problems.

I'm using it on my server, tps without using it: 12, using it: 18. I'm not getting 20 tps (i know my main problem are tileEntities from DIM0, maybe you can provide me a special cfg? or is there any way to make the mod try to keep my server working at +20 tps, so i can get 20 real tps?) but it's still incredible!
Some people made mods to improve fps, like optifine or fastcraft, but anybody thinks on improving tps, just you. Keep up the good work!
Please note that TickDynamic is not meant as a " permanent fix" for low TPS, but rather as a stopgap while you find and fix the real problem, or to survive lag spikes/peak hours.
For your case, I would suggest looking at the command "/tickdynamic list time [page]", as it will tell you what might cause it to not achieve 20 TPS.
Most likely there is something outside Entities/TileEntities using enough time that slowing down Entities/Tiles can't make up for it.
How much time is used for the "(Other") and "(External)" categories from the command i mentioned?
EDIT: You can also look at the "tickTime" config under "worlds". This defines the max time it will target. Setting this to <50 might allow it to reach 20TPS, but will cause even more slowdown of Entities/TileEntities to accomplish this.


Thank you all for the feedback so far =)
I'm still working on version 0.2.0 which will introduce the ability to define custom groups of Entities/TileEntities, to allow for more control, and even exclude certain Entities/Tiles or Mods from the slowing effect.
After that, for 0.3.0, I will work on per-user accounting.
 

Silverbeast

New Member
Jul 29, 2019
5
0
0
Please note that TickDynamic is not meant as a " permanent fix" for low TPS, but rather as a stopgap while you find and fix the real problem, or to survive lag spikes/peak hours.
For your case, I would suggest looking at the command "/tickdynamic list time [page]", as it will tell you what might cause it to not achieve 20 TPS.
Most likely there is something outside Entities/TileEntities using enough time that slowing down Entities/Tiles can't make up for it.
How much time is used for the "(Other") and "(External)" categories from the command i mentioned?
EDIT: You can also look at the "tickTime" config under "worlds". This defines the max time it will target. Setting this to <50 might allow it to reach 20TPS, but will cause even more slowdown of Entities/TileEntities to accomplish this.
Well, i need to use it as a permanent fix as long as Tile Entities going a bit slowly doesn't matter for me, but block lag and tp delay yes. Really it should run at 20TPS, because i've got free CPU and ram assigned, but TPS are still down and i'm not able to figure out why even using opis...
Here you can see all my timings: http://oi61.tinypic.com/fdbzmv.jpg
 

wildex999

New Member
Jul 29, 2019
46
0
0
Well, i need to use it as a permanent fix as long as Tile Entities going a bit slowly doesn't matter for me, but block lag and tp delay yes. Really it should run at 20TPS, because i've got free CPU and ram assigned, but TPS are still down and i'm not able to figure out why even using opis...
Here you can see all my timings: http://oi61.tinypic.com/fdbzmv.jpg
According to the timings in that screenshot, you aren't even using your full CPU at the moment.
DIM0(Overworld) is using ~8ms, and other(Terrain gen, block updates etc.) are using 10ms, so you have ~32ms free each tick yet.

What does "/tickdynamic tps" tell you the server TPS is?
If it say that its less than 20 TPS, and the timings still show you having free time, then something else is wrong.
 

Silverbeast

New Member
Jul 29, 2019
5
0
0
According to the timings in that screenshot, you aren't even using your full CPU at the moment.
DIM0(Overworld) is using ~8ms, and other(Terrain gen, block updates etc.) are using 10ms, so you have ~32ms free each tick yet.

What does "/tickdynamic tps" tell you the server TPS is?
If it say that its less than 20 TPS, and the timings still show you having free time, then something else is wrong.
In about 5 seconds using the command constantly, TPS oscillate between 20 and 16, so i'm having very short lag spikes.
PD: I tried setting the max time it targets to get to 60ms and then TPS are 17 instead of 20, so i'm getting a worst result
 

wildex999

New Member
Jul 29, 2019
46
0
0
Try setting "tickTime" to 40, and then change "averageTicks" under 'general' to 100.
What this does is that setting tickTime to 40 will try to keep a single tick running at 40 ms, instead of 50.
"averageTicks" at 100 means that it will look at 5 seconds of timing when deciding what timing to give everything, and this should take into account that "spike".
However, that spike most likely is a problem on your server, than you should investigate.
Check your server logs etc.
 
Last edited:

Silverbeast

New Member
Jul 29, 2019
5
0
0
Try setting "tickTime" to 40, and then change "averageTicks" under 'general' to 100.
What this does is that setting tickTime to 40 will try to keep a single tick running at 40 ms, instead of 50.
"averageTicks" at 100 means that it will look at 5 seconds of timing when deciding what timing to give everything, and this should take into account that "spike".
However, that spike most likely is a problem on your server, than you should investigate.
Check your server logs etc.
Now it's oscillating between 18 and 20, so it's working better now, not even 20 all the time, but a lot better.
 

wildex999

New Member
Jul 29, 2019
46
0
0
Now it's oscillating between 18 and 20, so it's working better now, not even 20 all the time, but a lot better.
There will still most likely be noticeable lag to whatever you are doing, whenever that spikes pops-up anyway. I recommend trying to figure out what the cause is =) Try running Opis for 5 seconds and see what is using the most time. etc.
Do you have anything else running on the server?
 

Silverbeast

New Member
Jul 29, 2019
5
0
0
There will still most likely be noticeable lag to whatever you are doing, whenever that spikes pops-up anyway. I recommend trying to figure out what the cause is =) Try running Opis for 5 seconds and see what is using the most time. etc.
Do you have anything else running on the server?
I don't see anything wrong using Opis, and no, it's just running the mc server and mysql. It has a lot of unused cpu and ram, and i haven't any errors on the log. That's a bit strange for me.
 

Hazz

New Member
Jul 29, 2019
3
0
0
Getting an almost immediate crash after removing it from a world and then re adding it to a world

http://pastebin.com/S6GZDsKP

Running the latest 1.7.10 forge with this mod list
WlTP8Rr.png
 

Brian Lewis

New Member
Jul 29, 2019
1
0
0
Getting an almost immediate crash after removing it from a world and then re adding it to a world

http://pastebin.com/S6GZDsKP

Running the latest 1.7.10 forge with this mod list
WlTP8Rr.png

I am getting a very similar issue. The problem is with the latest versions of CoFHCore; TickDynamics seems to be working with RC2-195, but fails on RC4-204 and RC5-207 of CoFHCore.
 

Hazz

New Member
Jul 29, 2019
3
0
0
Awesome stuff. Great mod by the way, its presence is greatly missed on the server.
 

wildex999

New Member
Jul 29, 2019
46
0
0
Getting an almost immediate crash after removing it from a world and then re adding it to a world

http://pastebin.com/S6GZDsKP

Running the latest 1.7.10 forge with this mod list
WlTP8Rr.png

I am getting a very similar issue. The problem is with the latest versions of CoFHCore; TickDynamics seems to be working with RC2-195, but fails on RC4-204 and RC5-207 of CoFHCore.

This should now be fixed in the newly released version 0.1.5.
Work is also progressing on version 0.2.0, which ended up being a complete rewrite, but which will bring a lot of good features =)
 

Tencao

New Member
Jul 29, 2019
44
0
0
Any news on the update? I've been wanting to use this on my server, but the current versions don't work with the latest kcauldron (cauldron continuation)
 

HalestormXV

New Member
Jul 29, 2019
56
0
0
I see this mod still has incompatiability with the latest kCauldron? Has a side project or any other fork of this mod been created or plan to be created for the latest version of kCauldron which is: KCauldron-1.7.10-1492.155.zip from August 29, 2015 PDT