Hi there,
I’m hosting a dedicated server for satisfactory on my homeserver. It has 16 GB of ram which are 30% used WITH the game running and 4 cores which are barely touching 15% usage, also with the game running.
I checked my connection and it is fairly stable, both on lan and wifi otherwise. I switched to lan so I could debug the connection but it seems like a different problem then wifi.
The server is running in a container from this repo: https://github.com/wolveix/satisfactory-server.
My guess would be that I maybe have accidentally limited the server in terms of ram or cpu usage. Will check.
Let me know if anyone else has this issue. Have a good one. :)
Okay so, first you should post on !satisfactory@lemmy.world.
That being said, congrats your factory has officially grown to a large state. 4 cores will NOT be enough to run this game. If you look at htop or something you can see full cpu usage, I’m guessing you’ll see one core pinned at 100%
To understand how the server works, it chunks the entire game map and then shards that across available cores. So your 4 core server each core is handling a quarter of the map. That’s a lot of factory on one core kemosabe. My server is a 24 core beast with still very high single core rates. You can feel when you’re working on another core that has less load when you walk into a new area and your frame rate jumps.
My group has had several iterations of our server, from being on shared resources, to a 48 core thread ripper (plenty of cores but single clock speed wasn’t enough), to finally we bought a 5950x for our Update 8 factory - and even then you’re still going to notice some rubber banding when you get to late game/factory spans across the entire map big.
Now, thinking about it too, is this happening at intervals? If so, that’s your saves happening. As your saves get larger the auto save will take longer, and that means longer time the client doesn’t talk to the server, so it rubber bands your last known server positions. If it takes too long the client will disconnect. To fix this just update how long it is allowed before timing out, that’s on the dedicated server wiki. We usually call out when a save is about to happen and take it as a break to stand up, stretch, and get more coffee.
Beyond getting more cores and a higher single core clock speed, the other massive thing that will help is spreading your factory out. Allowing your factory to take advantage of multiple chunks and multiple cores will have a noticeable impact. Make very liberal use of trains, my last factory had over 60 rail lines and 100 trains running around. It’s a lot easier to manage a train car with 10,000 items stored as an integer than hundreds of miles of interconnected belts that it constantly has to shift around on.
I’ll have more info later, should probably write a wiki, but those few changes will have a noticeable impact.
Source, I’ve ran a dedicated satisfactory server for about 4 years now, on bare iron, docker, and in kubernetes. Helped many others set up their servers too
Now this is the niche content that makes Lemmy great. I’ve never really dabbled in multiplayer a lot as even though I have hundreds of hours, I never actually finished the whole thing, opting to start over every time I picked it back up.
Just wanted to thank you for your post, it was fun to read
Ha thanks! I should do a write up of it all
Damn, you’re doing that profile picture justice!
The github repo mentioned this wiki article for multiplayer performance tweaks. Did you run through this list and make the recommended changes?
You may also try !selfhosted@lemmy.world to get more help.
You’re going to need to describe the symptoms more.
What happens is that I get rubberbanding (I go somewhere, build something, get set back like 30 seconds and my stuff is not built), loosing my connection like once every two hours or something. My wife plays with me and has similar issues.
The logs sometimes show „tick took longer than anticipated“ or something, which would indicate a performance issue but since the cpu and the ram arent even used properly, I assume it might be limited somehow.
Sounds like your connection to the server is dropping. I’d investigate it from a network perspective.
Hmmm… that makes sense. I‘ll check. Thank you for the suggestion.
Generally tick length messages are purely due to CPU limitations.
What hardware is this running on?
Xeon 4 core, 4 threads, 16 G DDR4 ram, onboard graphics.
Do you know what CPU model it is? Xeon with 4 threads can range from something so old it can barely run most modern software, to a fairly recent CPU that’s much faster.
E3 1220v3 3.5 ghz
That’s on the slower end, but I’ve run a satisfactory server on similar hardware before without too many issues.
Is the storage SSD based?
Do you have all 4 cores/threads allocated to the server?
What about all 16GB of RAM? Satisfactory needs a good amount.
I’m monitoring the cpu and ram and so far the server isnt utilizing it except short bursts which dont max out anything. i’ll try and optimize the network first and then go for performance. i suppose its a multi stage issue by now. will update on the matter.