
Enderio performance issue with Extreme reactors(big reactors) 1.10.2 Server.
ProsperCraft opened this issue ยท 22 comments
https://github.com/ZeroNoRyouki/BigReactors/issues/20
See this issue for performance reports.
Hardware is not the issue- specs-
CPU INTEL|CORE I7 4790K 4.0G 8M R
SSD 500G | SAMSUNG MZ-N5E500BW RTL
32 gigs of ram
What happens:
Massive drop in TPS, warmroast and timings report point to enderio conduits, big reactors(zero core)
What you expected to happen:
not make the server unplayable.
Steps to reproduce:
- Make big reactors all over your server, turn them on, attach energy conduits to them that go to base machines...
We have not been able to narrow down the problem, becuase we can be running at 20 TPS then it suddently drops to below playable. I had a 5 tps drop from 20 to 15 and breaking the energy conduits brought it back to 20.
We are doing more testing.
Affected Versions (Do not use "latest"):
- EnderIO: EnderIO-1.10.2-3.0.1.107_beta
- EnderCore: EnderCore-1.10.2-0.4.1.55-beta
- Minecraft: 1.10.2
- Forge: 2092
From the report it looks like the conduit network is destroyed and recreated very often (e.g. each tick). This will happen every time a conduit or a connection is add or removed. Is there some block attached that changes its mind about wanting to connect to conduits all the time?
Oops, nearly missed it. You are using the last Ender IO version that was built on RF.
https://timings.aikar.co/v2/?id=323369d036114941b8af0c340158e314
Conduits taking 400% of the server tick.
Without a further breakdown that doesn't say anything. It could be 0.01% in the conduit network and 99.99% in the receiveEnergy() of a RF Tools Autocrafter (random! example).
When we drop to .2 tps I will start smashing machines, and see if I can pinpoint the consumer that keeps reconnecting. I did notice that when we were having the issue the conduits seem to have disconnected themselves from the extreme reactor ports.
That sounds promising. You can try to indirectly connect the conduits with a capacitor bank.
Also, that ConduitNetworkTickHandler_onServerTick is for all conduit networks, I wouldn't rule out item or liquid conduits completely.
I don't know code but would be it possible to time between allowed to form new network- 15 seconds?
To avoid something like this happening?
It appears that the problem is completely resolved by putting a capacitor against the extreme reactor power port because it can't disengage with it, then attaching the conduits to that, good call! The server is now playable again, thank you.
Just calling receiveEnergy() on your IEnergyReceiver when there is power to give out
Does this still happen with a current Ender IO build? Otherwise I'd close this as "yesterday's news"... ;)
Thingsd are still funy with ender Io and Extrem reactors, Fluid conduits can't take steam out of the re4actor, or put water in, and capacitator banks conected to big reactors switch ouput to 0 and input to zero if not manual reseted they stay that way, the same with conecting Rf tool machines or machines from deep resonance.
rf tools machine / deep res machines connect how? Directly on the reactor power tap or to an ender io conduit connected to the power tap?
The steam thing is really strange. I've used ender io fluid conduit last week to check a GUI issue with water/steam and they pumped water in and steam out without problems (link)
Which version of Allthemods are you using exactly? I'll check that again tonight
Sound really weird. For fluids we now do both Capabilities and Legacy, for energy we do only RF for builds up to 107 and RF+Tesla+Forge for builds 108 and later.
Also, CapBanks have no code to set their max IO based on anything but their size and the value entered in the GUI.
For fluids I only support capabilities on my side
The only thing I could think of at the moment is that I cache the IFluidHandler / IEnergyReceiver instance and not retrieve it every tick, but even if that's a problem the worst think it could happen is me talking to a discarded conduit, not breaking your conduit network every other tick
Shouldn't be a problem for fluids, we cache our capability handlers, too. They are only a access control layer anyway (checking side config, then relaying to the actual persistent tank object). For energy in 107 the object is the TE itself, so even less problematic.
We do not cache foreign fluid caps, so fluid connections could "flicker", but that's not what's reported here for fluid, but for energy. 107 does cache the foreign TE for RF, but it does re-check if it wants to connect on each use.
Playing on our Modpack Dionysos for Mod list of things that could alternate the things: https://minecraft.curseforge.com/projects/dionysos
But my curent system for producing power is with Extrem reactors, Ender Io and Extra Utilitys + Rf tools
The powerbank problem was now seen without direct contact to a mashine, just by adding new capacitor banks to the energy storage input and ouput droped to 0.
(Stayed the same after relog to the server and restart the server, so i think it is not a display bug or a sinc isue)
I retried every conduit for liquids with reloging and restarting of the server and the Reactor is not get water in or steam out via conduit conections!
Energy conduits on Powertabs from Extrem reactors turbines are visualy disconecting after server restart, a block update shows that they are conected and they are puling power out even if they are not visualy conected.
I cheked all other machines and the disconection is not taking place on other machines like them from
Rf- tools.
Mod versions of things i think that could be relevant in the modpack at the moment:
Ender io 3.0.1.112_beta
Ender Core 0.4.1.55_beta
extrem reactors 0.4.5.15
Extra U alpha 1.0.1
Tesla 1.2.1.49
rf-tools 5.24
Can i give you guys any more usefull informations
And i am sorry for my bad english, it's not my nativ language!
@HenryLoenwind: Sorry, I was referring to foreign IFluidHandler / IEnergyReceiver instances while talking about caching. My own interfaces/capab are just wrappers of the actual storage object too
@Medusalem : I'll check that pack tonight
@Medusalem CapBanks not saving their max IO values should have been fixed in build 104, but it may be that it only was fixed for setting the value from the GUI, not for the auto-setting that happens on multi-block changes. I'll check that tonight.
The multiple reactors / conduits test is more interesting
I've build 2 rows of 3x3x3 reactors and powered them up, TPS at 20 t/s (~50ms)
Then I've linked each row to the power bank with ender energy conduits. TPS went down to 15 t/s / 66 ms
Then I've put a vibrant capacitor bank on each power taps and configured the conduits to extract energy from each capacitor and the TPS got back to 20 t/s (48 ms)