RFTools

RFTools

74M Downloads

Performance issues with dialling device

Aciho opened this issue ยท 12 comments

commented

I have a server running minecraft 1.7.10 with forge 10.13.4.1558, RFTools 4.23, and many other mods (the full modpack server download is available from here). I'm having a weird issue with performance which manifests as soon as I look at a dialling device - the server CPU utilisation goes from ~10% to ~90% and stays there until the server is restarted. Memory also goes from ~50% to ~85%. I don't need to use the dialling device, just looking at the interface is enough to trigger it. The handheld teleporter doesn't cause any problems. I have a few dimensions of my own but none of them have chunk loaders in. The pack's default dimension (dimension 2) does seem to have some from what I can see.

I've tried using TickProfiler, which gave me some results I don't entirely trust:
2016-12-18_23 24 33
2016-12-18_23 24 56
especially since none of the chunks it mentions are anywhere near my base, and I'm the only one logged in...

So I suppose my questions are:

  • Does looking at the dialling device trigger chunk loaders in other dimensions to come online, or do something else that could use a vast amount of CPU?
  • Is there a better diagnostic tool I could use, or something? I'm fairly incompetent as a server admin.
commented

Do you have a destination analyzer next to the dialing device?

commented

Yeah.

2016-12-19_19 49 02

e: I tried removing the destination analyser, but it didn't change anything.

commented

OK, fair enough. From further investigation it looks like the tutorial dimension (dim2) is the culprit. I've read about lag issues with AE2 setups in RFTools dimensions in a few places (example), and this dimension does have at least one AE2 setup that I know of. Is this a known issue, and is there a workaround? I'll see how important the AE2 setup is, and if removing it is a possibility.

commented

I don't see how there could be a relation between AE2 and dimension lag though

commented

Nah, neither do I, I've just seen it mentioned more than once so I thought I'd ask. I'll see if I can get more detail on what exactly is causing the problem.

commented

Ah yes, analyser doesn't matter. But yes, opening the gui of the dialing device will load all the chunks where there is a matter receiver. It needs to do that to get the information from there

commented

OK, results:

  1. The lag only happens when no-one is in the dimension. Transporting to the dimension brings the CPU use back down to ~15%.

  2. It doesn't seem to be caused by any particular block. I've been removing individual items that show up in lag reports but it doesn't help. Right now the biggest thing in the report is a random crafter thousands of blocks away making flowers into dye, but if I remove that it'll be something else.

  3. There aren't any chunkloaders anywhere as far as I can see, but entities are still being loaded.

  4. Removing AE2 didn't help (not that I really expected it to).

Is there any chance the whole dimension is being loaded when it's empty of players for some reason?

commented

Heh McJty you can't get rid of me.

There actually was a chunk loader in the dimension that was operating a dimension builder, but it's gone now. For what it's worth, that dimension is still pretty slow. Back some months ago, a few of us posited it was the NPCs c/o CustomNPCs. I shifted a lot of them into separate regions in the dimension that were connected with teleporters. I was hoping that would keep only part of the NPCs loaded at any time. It doesn't seem to have helped.

Next up is loading up a scratch game and getting rid of all the NPCs.

commented

I don't think I really see it from a fresh game with a client/server set up, but I can ponder something. McJty says the dialer has to load all the chunks that have receivers. I separated out all the demo areas in the tutorial dimension by function, but I imagine that will end up loading a lot of equipment regardless. I don't think I have any chunk loaders resident, but it's possible that I goofed--and I know I did goof at least one thing in your version--that gives pain to the server. It might be worth it if I was able to log into your server.

commented

Everything I was doing turned out to be unrelated to the server-side kind of lag @Aciho complains about. I will have to learn a little about instrumenting this stuff to see if I can improve it. My plan would be to take the current setup and start dropping Mekanism obsidian tnt all over it to see if something magically improves. It's quicker than removing mods, restarting, reconnecting, blablabla. IIRC there are some Forge commands to delete areas, but that is less therapeutic.

commented

McJty, I popped onto Aciho's server and toyed around. The RF tools dimension does indeed spike according to all metrics we could see. However, an alternate RF tools dimensions did not. Whether or not this is a persistent bug with RF tools, it is a problem I can mitigate if I can remove a chunk loader from the dimension. This has to do with a hidden setup that is keeping the both mentioned dimensions alive with a dimension builder and a chunkloader. So this is starting to dovetail into my questions about making a dimension self-sustaining. In particular: #903

commented

Close as 1.7.10 is no longer supported. If this continues to be a bug on 1.12 or newer, please open a new issue.