OpenBlocks

OpenBlocks

56M Downloads

Extracting liquids from OpenBlocks tanks causes massive packet send rates

dlord opened this issue · 10 comments

commented

I have 44 OpenBlocks tanks filled with Mob Essence from Minefactory Reloaded. Its contents is being extracted into Mob Grinders using EnderIO's Pressurized Conduits. And that setup causes packets to be constantly sent from client to the server at a massive rate. A whopping 1.1 MB/sec.

This is currently being discussed in the Resonant Rise G+ Community. Link below:

https://plus.google.com/u/0/+JohnPaulAlcala/posts/iyeaYU7vTeQ

For reference, here are the versions of the jars in Resonant Rise 2.8.6.0:

OpenBlocks - 1.2.8
OpenModsLib - 0.5

commented

from client to the server

Very strange, tank isn't supposed to send anything that way.

We can try to debug, though. Please enable packet logging, either via config (net.debugLogPackets) or command /om_config_c set openmodslib net debugLogPackets true on client (or something similar, can't check right now, verify with tab completion). Anyway, if that works, send us open-mods-packets.log (should be in minecraft main dir).

Also, general note about tanks performance: even if they visually look like single tank, they are (by design) actually 44 individual tank with balancing functionality. Please remember that when reporting any lag issues.

commented

Thanks @boq. Here's the link to the logs you requested:

https://dl.dropboxusercontent.com/u/4290099/open-mods-packets.log.tar.gz

commented

Looks like tanks are responsible only for ~40kB/s of that traffic: https://gist.github.com/boq/2e8de574daa47524f33a.

Unfortunately, it's working as intended. There are 52 blocks, each one is updated every tick and sends 39 byte packet (26b + headers). I can try to squeeze some data (like aggregate per chunk or even player) but not sure if it will be even done for 1.6, since 1.7 port is already ongoing.

I suggest using OB tanks for long-term storage (tanks only tick and send updates when amount of liquid changes), and different blocks (opaque ones would be best) for buffers (this is general rule, tanks that don't render liquid level don't need synchronization with client).

tl;dr: pick proper tools for job. Opaque tanks -> work buffers, OB tanks - seldom updated storage. Real multiblocks are somewhere in middle - only one block sends data, but they have their own set of problems.

commented

I'm not sure if this bit of info helps, but I just dismantled my tank setup. I first disconnected the pipes (Fluiducts for the liquid input, EnderIO conduits for the output) so that liquid does not move in or out, and checked if the bandwidth consumption changed. Unfortunately it did not.

Thanks for the suggestion though. Your tanks are the best I've used for making builds that are both pretty and functional. I hope this gets addressed on the 1.7 port.

commented

Since I'm already out of the office, I don't have direct access to my server to replicate the problem.

I will try to give you more details during the weekend.

JP

On mobile mode

On May 31, 2014, at 12:39 AM, Bartek Bok [email protected] wrote:

Try debugging with Opis, recent versions have network profiler. Doesn't look like it's one of OpenMods since logs only show 40kB/s from server to client and nothing in other direction, but I want to be sure.


Reply to this email directly or view it on GitHub.

commented

Might as well be measured on client side.

commented

Try debugging with Opis, recent versions have network profiler. Doesn't look like it's one of OpenMods since logs only show 40kB/s from server to client and nothing in other direction, but I want to be sure.

commented

I've compiled all the data I've gathered from Opis (as screenshots) and from the packet logs. For your reference, I took server logs as well so you can check.

You can download all the data and my notes as a zip file from my dropbox:

https://dl.dropboxusercontent.com/u/4290099/RR%20Performance%20Study.zip

Basically, what I did was to take the last known good version of Resonant Rise (2.8.5.1), and upgraded OpenMods and OpenBlocks to the same version used in RR 2.8.6.0. And that triggered this problem.

Based on the data from Opis, EnderIO is the one sending packets at a massive rate. The version of EnderIO and my world setup has not changed between tests. Only OpenMods and OpenBlocks were upgraded.

Should you find that this is not an issue with OpenMods, please let me know and I will open a similar issue with EnderIO.

I hope the data would be useful to you.

commented

Thank you for data.

Only thing that changed is that OB tanks update more often (it was done as part of implementing interactions with vanilla comparators). I can't see anything wrong on our side (same effect would be achieved by putting redstone clock nearby), so it's probably not our problem.

I will probably limit update rate, but nothing more will be done until MC 1.7 port.

commented

We limited rate of updates in 1.2.9, forgot to close.