micdoodle8 / Galacticraft

An advanced Space Dimension Mod for Minecraft
Other
615 stars 333 forks source link

Absent from Space Station causes immense TPS drops #2129

Closed LokeYourC3PH closed 8 months ago

LokeYourC3PH commented 8 years ago

So i first built a Space Station, as some can remember from my post about implementing better Oxygen Pipes, at which i ended up just using EnderIO as no one seemed to care. Anyways, that Space Station became relatively big, and started causing lag, when i was ABSENT. Yes, that's right, when i was at the Space Station, the server TPS was 20. When i was absent, down at Earth or other Planets or places, the TPS dropped so low, i had to constantly be there so the server wouldn't lag out. I noticed this first just by the fact that the server lagged out every time i left the Space Station. Then i did a check with OPIS, and it said my Space Station causes the lag, but only when i was not there. Now, i cannot provide OPIS logs, as i had to remove OPIS due to it being so heavily outdated, that MapMaker caused problems with other mods, so i removed it. So i installed TickProfiler. I ended up putting my Space Station into "Hibernation" mode, meaning that i changed its dimension ID, so that it would not be loaded by Galacticraft or any other mod. Currently it is inaccessible, and it should stay like that with the current lag it causes. But now the problem goes further: As someone else started building their Space Station, the same problem started happening. Basically, his Space Station came to just quarter the size of mine, and is already causing lag, and there are bases on Earth or other places that are way larger than the Space Stations we have. Yet, they cause at least 5 times the lag those bases do, even being far smaller than the bases on Earth or that. So i did a quick Profiling with TickProfiler, and it turns out that the Oxygen Sealers still are the cause for the lags. I disabled the edge checking (B:"Enable Sealed edge checks"=false), to reduce lag, yet it does very little difference. Anyways, once i went to the Space Station that caused lag, guess what, it stopped. TPS is again near 20, or even 20 at most times. Once i leave, the server becomes a nightmare to play on. I will give you some screenshots.

The Space Station: 2016-03-05_13 30 01

The TickProfile report when being at the Space Station: 2016-03-05_13 32 42

And the TickProfile report when being absent from the Space Station, basically any fairly (medium) large Space Station (images are merged, text was too long): 2016-03-05_14 15 52

Smells funny, doesn't it? Anyways, that is a big problem. The Oxygen Sealers start causing lag once someone is absent from a Space Station, which is plain stupid.

XFactHD commented 8 years ago

Are you using the latest version of GC? If not, can you check if updating fixes this.

Offtopic: What mod are the dimension and the blocks the SS is built out of from?

KingOfMiners commented 8 years ago

GalaxySpace.

LokeYourC3PH commented 8 years ago

Yes, GalaxySpace. But it does not matter, my Space Station was standard Galacticraft, out of Tin Decoration Blocks, and was above the Moon. The lag caused was the exact same. I have the almost latest update, but it hasn't done any difference the latest updates, so i took a look at the changelog, nothing there, lag does still exist.

LokeYourC3PH commented 8 years ago

I see that in update 446, some Oxygen stuff seems to be fixed, i will test it, but i find it very unlikely that it will solve much, as it seems the Oxygen Pipes were fixed, but not the Sealers themselves.

XFactHD commented 8 years ago

Thanks @KingOfMiners.

LokeYourC3PH commented 8 years ago

Won't be able to test with 446. GalaxySpace has a problem with it, where in the Mars Space Stations cause a crash with 446. Somewhat of a paradox, but basically i wont remove GalaxySpace to test if the lag is gone with 446, as i would have no Space Station to test with currently. And since Blesse isn't the exactly fastest hotfix guy, i don't expect an update to follow anytime soon.

radfast commented 8 years ago

Duplicate of #2117. This issue is fixed in Galacticraft 446.

i find it very unlikely that it will solve much, as it seems the Oxygen Pipes were fixed, but not the Sealers themselves.

Please test instead of speculating.

LokeYourC3PH commented 8 years ago

Mr. radfast, read the one i just wrote directly before you, then you see.

radfast commented 8 years ago

You might be able to fix the issue in pre-446 Galacticraft by changing JVM settings. The issue is caused by the Java Garbage Collector, not by a bug in Galacticraft as such.

If you provide the crash report with GalaxySpace and 446 that's maybe something I will want to look at - @BlesseNtumble any idea for the reason?

LokeYourC3PH commented 8 years ago

Oh i did, here you go: https://github.com/BlesseNtumble/GalaxySpace/issues/18

My crashlog is in the bottom.

LokeYourC3PH commented 8 years ago

Would it be possible for you guys to fix the GalaxySpace issue in 447?

radfast commented 8 years ago

I took a look at the crash report, that one can only be fixed by @BlesseNtumble, he needs to update the Mars space station to reflect recent changes made to the Overworld space station and Galacticraft API. I can make a change in 447 to make that easier for him, but I cannot do it for him.

Seems like you will be stuck with this issue until GalaxySpace is updated. Unless maybe the JVM settings help?

Try -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy

LokeYourC3PH commented 8 years ago

rad, i cannot modify my JVM settings, its a Dedicated Server with no ways to modify JVM arguments, i would if i could :/

dj3520 commented 8 years ago

@Yanniclord I run two dedicated servers myself and have access to the JVM arguments, so unless you're using a hosting company that doesn't let you, please tell me how you start your server.

LokeYourC3PH commented 8 years ago

"so unless you're using a hosting company that doesn't let you" <--- that.

LokeYourC3PH commented 8 years ago

So, the lag comes back every so often. It is most of the time gone, but on rare occassions, the server starts lagging. We were absent for maybe 30 minutes, started importing items through Ender Chests, and after 5 minutes it started to lag.

LokeYourC3PH commented 8 years ago

@radfast There should be some kind of unload dimension command, so that the dimensions can be force unloaded. And the Java Garbage Collector you were talking about, still does not seem to work a 100%. As i said, the lag still exists. Being absent for too long makes the server lag. Oh and this crash can actually happen, for no good reason. http://pastebin.com/srLa1fSU

dj3520 commented 8 years ago

I doubt there will be a force unload command since there isn't really any use-cases for it, and it would be more work than it's worth. Also you state that you've tested the Garbage Collector JVM arguments despite saying you cannot change them due to your hosting company.

If your problem doesn't happen without GalaxySpace, then it isn't a Galacticraft issue.

LokeYourC3PH commented 8 years ago

Well it seems to be fixed for now. I will open a new Issue in case it will return, but for now the lag is fixed.

dj3520 commented 8 years ago

I will open a new Issue in case it will return

Why not just re-open this one?

LokeYourC3PH commented 8 years ago

Cause i can't? I didn't close it.

dj3520 commented 8 years ago

Then keep this one open. No point in making a new report if the problem is not solved. On Mar 8, 2016 12:50 PM, "LokeYourLord" notifications@github.com wrote:

Cause i can't? I didn't close it.

— Reply to this email directly or view it on GitHub https://github.com/micdoodle8/Galacticraft/issues/2129#issuecomment-193888449 .

kernelstubbs commented 8 years ago

...I know this is closed, but try removing your Launch Controller...or Chunk Loading your base (ensuring Oxygen Network is all in) This worked for my issue...which is very similar #2134 @Yanniclord, I know you've been on that thread...but for others coming across this issue...

EzerArch commented 8 years ago

Indeed there is something wrong with the SS dim. I notice the tick time (/forge tps) increases 1000 ms every minute until I start to get block lag.

Screenshot 2016-03-10_00 53 33 Screenshot 2016-03-10_00 56 31 Screenshot 2016-03-10_01 06 22 Screenshot 2016-03-10_01 11 04 Screenshot 2016-03-10_01 19 26(that was a falling sand I had thrown to the sky with Gravity Gun, it took almost 1 minute to fall back)

Then I went to the space station to see what was happening. The 1st thing I noticed was, the oxygen sealer in the arrival room was about to run out of oxygen, the oxygen in its internal storage was declining.

Screenshot 2016-03-10_01 27 37 Screenshot 2016-03-10_01 27 48

Went outside, the oxygen sealer was correctly connected, directly to an oxygen storage with an infinite oxygen. Screenshot 2016-03-10_01 28 35

Then I checked the other sealers past that problematic sealer, they all were working. Screenshot 2016-03-10_01 29 06 Screenshot 2016-03-10_01 29 15 Screenshot 2016-03-10_01 40 17 The sealer in the arrival room was then totally out of oxygen, not of electricity, despite the oxygen was flowing though the sealable oxygen pipe next to it. Using a wrench to rotate the sealer 360 degrees fixed the problem.

@radfast, if you want, I could send you my world folder with my mods to test it.

EDIT: Changed IMG to LINK to shorten loading time.

dj3520 commented 8 years ago

Have you tried KCauldron 1492.155? I use it without issues on both a windows and a linux server.

LokeYourC3PH commented 8 years ago

Thats way too old. In build 15xx, they introduced a new fluid system, which if i revert to before that would result in a catastrophic fail.

dj3520 commented 8 years ago

Couldn't hurt to try it after a backup though right? Might be better than picking between two different evils. I honestly use the old version to avoid more issues.

dj3520 commented 8 years ago

Well since Galacticraft doesn't lag with the newest forge version, it's not exactly our problem. As for AE2 you'll have to take it up with those guys. We're not tech support for forge.

dj3520 commented 8 years ago

If you're going to post a lot make sure it's all one message. Each one sends a new email to everyone subscribed.

LokeYourC3PH commented 8 years ago

Ok guys, these are my recent TPS tests. I am using KCauldron 1614.175, and the lag does exist in there. It does not exist in build 1614.185, but that build causes AE2 systems and other stuff to break, and also isn't it Galacticraft itself that should be fixed, and not with a different forge version? Anyways, here my TPS logs:

unbenannt

ghost commented 8 years ago

Im getting really bad block lag on my space station and i just started building there?

ghost commented 8 years ago

well we were on the topic of the latest version, thats what im using? and using build 46 of Thermos

radfast commented 8 years ago

@Yanniclord you're driving me crazy with your posts. You make too many assumptions that make it sound like you know what you are talking about, when you do not. Please just, simply, report your own issues, and describe your setup. If you report issues in a clear way, and they are reproducible, they will get fixed if you just be patient a few days.

@EzerArch

The sealer in the arrival room was then totally out of oxygen, not of electricity, despite the oxygen was flowing though the sealable oxygen pipe next to it. Using a wrench to rotate the sealer 360 degrees fixed the problem.

radfast if you want, I could send you my world folder with my mods to test it.

Yes please, that would be great. Can you comment on which chunks, containing the oxygen pipe network, are staying chunkloaded?

Please also test whether the same lag issue still occurs if you give every Oxygen Sealer its own infinite oxygen supply item.

LokeYourC3PH commented 8 years ago

@radfast Well what more do you want me to include then? I provided tons of TPS logs, no idea what more there would be. I have no crashlogs, as this is a TPS/lag issue, so nothing to provide (unless you clearly tell me to include some kind of logs). What exactly do you want me to do then?

radfast commented 8 years ago

@Yanniclord I want you to stop telling other Galacticraft users what to do and your theories for how to solve issues, when their issues may be unconnected with the issue you are experiencing. Just report your own issues, and everything will be good.

To everyone experiencing lag when away from dimensions:

It appears there is a lag issue connected with chunk loaders and oxygen or electricity networks. (Galacticraft Launch Controllers are 1x1 chunk loaders.) It will help me a lot if people with lag when they are away from a dimension can provide a screenshot of any chunk in that base which contains a chunk loader, showing what electricity / oxygen machinery is in the same chunk, and showing the chunk boundary.

LokeYourC3PH commented 8 years ago

Ok here you go, don't say i didn't give you enough screenshots this time. I have 2 chunkloaders (Railcraft Admin Anchors) in my entire base, and 1 Launch Controller. Also, beneath every Walkway, is a Oxygen Sealer. Images:

2016-03-12_02 48 57 2016-03-12_02 50 06 2016-03-12_02 50 20 2016-03-12_02 50 25 Generating Oxygen with Mekanism Electrolytic Seperator's. 2016-03-12_02 50 45 2016-03-12_02 51 07 2016-03-12_02 51 22 2016-03-12_02 51 32 2016-03-12_02 51 36 2016-03-12_02 51 43 2016-03-12_02 51 55 2016-03-12_02 51 57 2016-03-12_02 52 17 2016-03-12_02 52 55 2016-03-12_02 53 10 2016-03-12_02 53 15 2016-03-12_02 53 22 2016-03-12_02 53 25 2016-03-12_02 53 29 2016-03-12_02 53 38 2016-03-12_02 53 45 2016-03-12_02 53 58 2016-03-12_02 54 03 2016-03-12_02 54 16 2016-03-12_02 58 57 2016-03-12_02 59 18

radfast commented 8 years ago

I have 2 chunkloaders (Railcraft Admin Anchors) in my entire base

Do these cover every machinery-containing chunk in your base, or only some?

LokeYourC3PH commented 8 years ago

Only a few, they basically cover the Stargate room, and the AE2 system and the main machines below the AE2 system. The Draconic Evo. T7 Energy Cell is not covered, and neither is the entire Solar Evap. room. The Reactor, Farm and Laser room are also not/partially covered. If you want, i give you my ENTIRE world download, so you can play around with it if you like. I will upload it if you want to, just tell me. But you probably need all the mods, so if you want, i can put them in a folder which i upload along with the world.

radfast commented 8 years ago

That's likely the issue then. For now, you can fix it by adding chunk loaders so that all Galacticraft machinery is in loaded chunks. Having the machinery half in and half out of loaded chunks seems to be the cause of the lag.

"Machinery" = aluminium wire, oxygen pipes, and any machine or storage (from any mod) connected to them.

Obviously that's an issue we can look at finding a more permanent fix for, but it may be complex to fix and take time. In the meanwhile you can fix the lag issue in your world in the way I said.

LokeYourC3PH commented 8 years ago

@radfast This is what it looks like now, everything that was red, now is yellow. Everything that wasn't chunkloaded, now is. The entire Space Station is now chunkloaded. I will keep monitoring the TPS, and i hope you are right (which you very, very likely are :P ). Anyways, here:

2016-03-12_03 31 32 2016-03-12_03 31 49 2016-03-12_03 32 02 2016-03-12_03 32 07 2016-03-12_03 33 02

And ignore this stupid question if you wan't to, but can you just explain me one thing? So, why is it that chunkloading in this case fixes the lag, while servers in general BAN chunkloaders because of the lag they create by keeping all machines/bases chunkloaded?. (i restrict the usage on my server, but i did not disable/ban them).

radfast commented 8 years ago

servers in general BAN chunkloaders

You have a server for only one player (or maybe you + your friends, I don't know). The chunkloaders you place are not loading more chunks than if a player is in the dimension - if the player is in the dimension, all chunks in a 17x17 grid around the player will be loaded. It's no problem for the server to keep the chunks in your space station loaded, that's like 1 player standing there. And all servers should be able to handle easily 50 players online together.

Now imagine a server with 10000 active players every week, each player logs on for some minutes each day to check his base. If all those players had chunk loaders keeping their base loaded when they are offline, it would be like 10000 players online together, which would crash the server.

radfast commented 8 years ago

Build 447 may have improved things.

Update: Build 448 replaces build 447.

radfast commented 8 years ago

Update: the issue is caused by the change we made to Galacticraft to add redstone control. The issue has been present in all versions since 3.0.12.432.

It's not specific to Oxygen Sealers or any other machine.

Every Galacticraft machine checks (through vanilla Minecraft methods) to see whether it is receiving a redstone signal. The vanilla Minecraft redstone check is causing the unwanted chunk loading, which results in lag. Currently working on a fix...

Vanilla Minecraft blocks which do redstone checks - for example doors, pistons - will still cause this type of lag if you have them on chunk boundaries. But we will fix it so that Galacticraft machines do not cause this problem.

The lag on chunk load/unload is caused by all mods put together, it's not specifically Galacticraft - if you have 100 mods, there is always going to be some time delay when chunks load and unload.

radfast commented 8 years ago

Build 449 fixes the lag, or at least makes a huge improvement from our side. Other blocks (including vanilla pistons etc) can still cause similar lag.

EzerArch commented 8 years ago

Disable redstone control for Oxygen Sealers and Collectors, fix lag.

Does this mean all the other GC machines (still) have redstone control? If so, is this necessary? if redstone checks can cause lag, assuming "it does" for the 1st question, wouldn't it be better to restrict it to a small range of machines?

dj3520 commented 8 years ago

Does this mean all the other GC machines (still) have redstone control?

I think it's safe to assume this, unless changed in a different commit.

If so, is this necessary?

I'd imagine not. IMO anything that would stop by "completing it's job" doesn't need redstone control. This of course applies to things like the furnaces, ingot compressors, and coal generators and the sort, but also to oxygen collectors, compressors, decompressors, gas liquifiers, etc that already (should) stop once their internal supply is full. However this should not apply to machines that can't complete their "job" such as bubble distributors, sealers, and spin thrusters. For example I'm planning to expand my space station and do not have an air lock between the section I'll be expanding and my sealers, so I expect to loose the seal. With redstone control I could toggle between using sealers or oxygen bubbles, or turn them both off if my oxygen is too low to run them constantly.

EzerArch commented 8 years ago

I stayed for a while in the space station, the game became unplayable and no longer recognized any keyboard input.

Screenshot 2016-04-11_02 39 13

Looks like now being absent from the overworld makes the game laggy.

EDIT:

It got worse: Screenshot 2016-04-11_02 42 04

Dream-Master commented 8 years ago

Yes we have this on my Server too. Ends up no one have any space station more.

EzerArch commented 8 years ago

There's something I might want to investigate: I notice some kind of lag that builds up when I'm standing idle for a few minutes.

I'm playing normally and then I alt-tab from the game to see something else. After I'm back in the game, I can barely move, open the chat etc. So I resort to shutting down the game.

radfast commented 8 years ago

@EzerArch and @Dream-Master thank you for continuing to report. The lag you describe is obviously unacceptable. I will investigate further.

@EzerArch - is there any chance you can zip up your /mods, /config and DIM2 folder for me please?