Problem load-chunk-on-request & Server Performance

  • 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

Cozza

New Member
Jul 29, 2019
320
0
0
So MCPC+ has an option for "load-chunk-on-request" in bukkit.yml

afaik it allows mods like railcraft and chickenchunks to chunkload without a player present.

It seems to be somewhat quirky and impacts on performance massively.

With load-chunk-on-request set to true, the servers TPS drops to about 12 and players experience moderate rubberbading and block lag.

With load-chunk-on-request set to false, the servers TPS rarely drops below 18.

The issue is that when it is set to false, chunkloaders don't load up automatically. The player must visit them before they keep the chunks loaded.

Here's a readout of the difference between the 2 settings:

load-chunk-on-request = true

2013-09-07_19.35.56.png

load-chunk-on-request = false

2013-09-07_19.44.44.png

The amount of chunks open between each is very minimal. On the first screenshot you can see that Lasers are causing somewhat of an issue. Except, lasers are not in any chunkloaded areas, instead they are sitting off in what should be a non-chunkloaded spot:

Untitled.jpg

These lasers are located on the left (where the arrow is pointing) except there's no chunkloaders running there. So why are these chunks loading? It seems that these "mystery chunks" cause entities to tick like crazy in them and completely destroying TPS.

Has anybody experienced this before?
 

CovertJaguar

New Member
Jul 29, 2019
159
0
0
Chunks loaded where no chunkloader exist typically mean that something is doing world calls into an unloaded chunk. This is very bad on performance because every time a function such as getBlockId() is called, the chunk will be loaded. But since nothing is keeping it loaded, it will be unloaded immediately after. This results in massive disk thrashing as the chunk is constantly being loaded/unloaded from disk. I can almost promise you that if you dropped a chunkloader in that area, your lag would disappear.
 

Cozza

New Member
Jul 29, 2019
320
0
0
Chunks loaded where no chunkloader exist typically mean that something is doing world calls into an unloaded chunk. This is very bad on performance because every time a function such as getBlockId() is called, the chunk will be loaded. But since nothing is keeping it loaded, it will be unloaded immediately after. This results in massive disk thrashing as the chunk is constantly being loaded/unloaded from disk. I can almost promise you that if you dropped a chunkloader in that area, your lag would disappear.


Your completely correct, server performance is better if I just allow everyones chunkloaders to run around the clock. But doing that isn't desirable as it still has an impact on performance simply because of the amount of things running.

Appears to be an MCPC+ thing. I've had one of the authors confirm the bug: https://github.com/MinecraftPortCentral/MCPC-Plus-Legacy/issues/1501
 

CovertJaguar

New Member
Jul 29, 2019
159
0
0
Yeah, MCPC+ really screws up the chunkloading system. I'm constantly getting complaints about broken chunkloaders from people using it.
 

Cozza

New Member
Jul 29, 2019
320
0
0
I tend to follow MCPC+ development fairly closely to try and make server updates as painless as possible (waiting out on a bunch of fixes so I can run Unleashed 1.1.4)

Maybe I'll take a look at keeping a thread updated with "known issues and fixes for MCPC+"

There's a bunch of really weird config tweaks to get MCPC+ to run nicely. Like disabling the chickenchunks garbage collection to stop it conflicting with the MCPC+/Spigot garbage collection