
[SMP] High CPU usage for large relocator storage network
rux616 opened this issue ยท 5 comments
I run a modded server for myself and one of my friends and we are currently in the process of building a large storage system using relocators for transport from a single "dump point" chest into many Better Barrels from the JABBA mod. I have included a picture for reference.
Once the storage system expanded into that second bank of barrels on the right, every time I put something into the chest (lower left side of the picture) the CPU on my server gets completely pegged and I time out. Granted, I don't have an extremely powerful server, but on my SSP world, my own computer handles a network of 720 barrels and associated relocators just fine. The current network on the server is just 152 barrels.
If I had to hazard a guess, I would suspect this something to do with the extraction module on the chest searching the entire relocator network to find an open (or matching) spot to put whatever it is I toss in the chest.
Forge 10.13.0.1205
Refined Relocation 1.0.6b
JABBA 1.1.4-1.7.10
And last but not least, one more update before I crash for the night
I deleted JUST the relocator with the extraction module with a world editing program, and that allowed me to get back on my server without timing out.
After this, I tested out Item Conduits from Ender IO to see if they might have a similar issue, and they do not. (Anecdotal, but more information is never a bad thing, so included.)
Ok, for a little more testing, I separated the two banks of barrels and it's still having issues. I left the bank on the left hooked up and that is only 80 barrels. I tossed some stuff into the chest and my server CPU usage spiked and I now time out every time I log in.
Further investigation (using jprofiler) reveals that there appears to be some sort of interaction between Jabba and RR that cause the Jabba classes "mcp.mobius.betterbarrels.common.blocks.logic.ItemImmut" and "mcp.mobius.betterbarrels.common.blocks.logic.OreDictPair" to spaz the hell out and their instance counts to go from 160 and 80 respectively to more than 200,000 and 105,000 respectively.
During this craziness, the class count for "com.dynious.refinedrelocation.grid.relocator.PathToRelocator" and "com.dynious.refinedrelocation.grid.relocator.ItemOrPath" go from 4312 and 1 respectively at idle to over 105,000 and over 52,000 respectively as well.
The PathToRelocator class having 4312 instances at idle seems kind of high to me for only having one block of 80 barrels (with 84 relocators and one extraction module) and one block of 72 barrels (with 44 relocators and 1 extraction module). Also, after the spaz out, once I get timed out of the server (and presumably the chunks unload), the "idle" instance count for this class is much higher, sitting at over 13,000 currently.
So yeah... I have no idea if all this information will be of use to you, but I sure hope it will be.
Please let me know how I can be of help.
Possible helpful info: Jabba mod source at https://bitbucket.org/ProfMobius/jabba
Looking at this now! Seems like a very serious issue! Thanks for the report, I can certainly find the info I need :P