Native Linux server (with management scripts)

Yeah, it's en_US. I'm starting to get some odd errors on the 32-bit running now. Nothing really apparent, but after the server has been up a while it starts doing weird things. I was initially thinking it was just due to system load being too high, but after monitoring it for a bit the past few days, system load appears to be just fine. So I'm either having core issues with 16.04, or something more sinister is happening, and with my luck that's a hard drive. (Since that's the only component I don't have a spare for.)

Going to have to crawl into the basement and poke the hardware this weekend. It really irks me that the CPU's are SSE3, but the system is only capable of reading SSE2. LOL.

 
@Alloc

Hey good work with all the latest updates.

Have moved all my telnet calls over to the WebAPI now and man it's so much quicker and more robust. It's such an improvement being able to send commands to the console through the WebAPI, even if it has made half my code obselete :D

So, the reason for visiting - Do you think it would be okay to run two concurrent instances of the server manager under different usernames? Ie - my default existing install runs under the sdtd user as defaulted in the setup scripts, what if I installed another copy under a different user? Would the two be able to run concurrently? The reason I am interested is that I would like to start developing a modded server and any changes made to files in the engine folder apply to all instances. With a default config, it is not possible to run both a modded and vanilla server concurrently with a single instance manager.

Thanks for your time :)

Zig.

 
Last edited by a moderator:
So I'm either having core issues with 16.04, or something more sinister is happening, and with my luck that's a hard drive. (Since that's the only component I don't have a spare for.)
Hey Sylen :)

I've stuck to Ubuntu 14.04 because it's what I have used before and I know it works. I am reluctant to switch OS version because you never know what problems will arise - I guess it's years of webdev have taught me that if it ain't broken... Recently though I've become more and more interested in changing OS, either upgrading ubuntu to 16.04 or switching to debian. Could you tell me what OSes you have run the server on and if you have noticed any difference in the server behaviour between them.

We've really struggled to get a map to last over 600 days with 20+ slots. When the map first runs, the loads are low and the server is snappy, but after five hundred unique players have joined, and the map has been explored, the loads steadily climb until I have to reduced slots to keep them manageable. This specific wipe, after about 300 days, one of the cores would max at 100% as soon as the server was started, even before players joined. It would not stay on the same core at 100% but move all around swapping cores, but yet, always 100%.

I've checked on the servers that manage to last a few thousand days, with 20ish slots and they were all running windows without exception. I've already asked and been reassured that there should be no difference in the running of the dedi on either win or lin, but I'm becoming convinced that there is something about U14.04 that doesn't like the dedi. We have an I7 6700K with 32GB DDR4, and when the map is a few hundred days old, the load will be around 6-8 (octo-core) with only 14 players online.

What do you think?

Thanks :)

Zig.

 
Have moved all my telnet calls over to the WebAPI now and man it's so much quicker and more robust. It's such an improvement being able to send commands to the console through the WebAPI, even if it has made half my code obselete :D
Glad you like it. Though you should be aware that handling web requests is *a lot* heavier than a single constant TCP connection (as long as you don't use a new one for every single query ;) though even then it would probably be less heavy). So I wouldn't use it for running 20 commands a second or something like that but it should be totally fine for e.g. one a second. Though in the end you'll just have to see how it turns out regarding performance :)

Do you think it would be okay to run two concurrent instances of the server manager under different usernames?
Shouldn't hurt. But probably way harder to do than "just" create a new set of "commands" for the normal install like updateengine2, start2 etc and point these to an engine2 folder.

<big wall of text snip ;P >... there should be no difference in the running of the dedi on either win or lin...<another snip>
Well, if you're talking about me ... I said our code didn't make any important differences there. But no one knows how much difference there is in Unity itself ;)

As well as plain OS differences like file handling etc. Wonder if it could somehow simply be related to the number of open file handles or something like that.

 
So I wouldn't use it for running 20 commands a second or something like that but it should be totally fine for e.g. one a second. Though in the end you'll just have to see how it turns out regarding performance :)
Yep! We tried a multi-threaded app to send commands to webAPI and it went really badly :D

Shouldn't hurt. But probably way harder to do than "just" create a new set of "commands" for the normal install like updateengine2, start2 etc and point these to an engine2 folder.
Okay, will go down this route, thanks :)

Well, if you're talking about me ... I said our code didn't make any important differences there. But no one knows how much difference there is in Unity itself ;)

As well as plain OS differences like file handling etc. Wonder if it could somehow simply be related to the number of open file handles or something like that.
Ahh, thanks for clarifying, this makes a lot of sense. I did have a real struggle getting the ulimit increased for the sdtd user as it has no login shell (quite rightly for security reasons), and therefore the increased ulimit was not getting loaded, but I got there eventually and learnt alot on the journey. We wiped yesterday, so I don't expect to see any problems for a few weeks, but I guess I'm gonna have to rent a test machine on another OS and get my regulars to help me out with testing.

Thanks again Alloc :D

Zig.

 
Yeah, running multiple servers on one box with some fairly large random gen maps, I learned about ulimit real quick. I think I've got it set at 16000 right now, but I know in one iteration I had to just give up and make them unlimited.

 
New here. Wanted to say thank you to Alloc for making these wonderful tools. I love being able to run instanced servers inside of a single machine. I have one big question?

How do I install mods like SteelMOD and ValMOD into an instanced server?

I'm running Ubuntu Server 16.04 LTS headless

The hardware is:

2x Xeon L5640 6 Core CPU's

144GB DDR3 Memory

Currently on a 3 disk RAID0 (soon to upgrade to a 4 disc SSD RAID 0)

I'm running my server on a VM in ESXi6u2

I would like to have at least 3 servers running. 1 Vanilla, 1 SteelMOD, and 1 ValMOD.

How do I go about setting up the modded servers in instances so I can manage all the updates with a single console along with the back-up. Thank you for any help.

Oh and how much memory is usually required for say a 16 player server?

 
Last edited by a moderator:
How do I install mods like SteelMOD and ValMOD into an instanced server?
You'll have to ask the authors about that.

How do I go about setting up the modded servers in instances ...
Unfortunately that's not possible. Also not planned to add something like this as in future mod control should be part of the server config anyway.

Oh and how much memory is usually required for say a 16 player server?
No idea, but others might chime in on this one :)

 
How do I install mods like SteelMOD and ValMOD into an instanced server?
You'd need to make more than one engine folder for this. You cannot currently run 3 differnt instances as you have laid out because there is only one 'engine' folder. If you change the files in there (as ValMod and others require), then it affects all instances, as they all reference the same engine folder. I ask the same question a few posts up.

I'm running Ubuntu Server 16.04 LTS headless

I'm running my server on a VM in ESXi6u2
Out of interest, which OS are you running in the VM?

Oh and how much memory is usually required for say a 16 player server?
Roughly 500MB per connected client.

 
Out of interest, which OS are you running in the VM?
So ESXi is my level 1 Hypervisor on which many VM's run. Two of them will be for 7DTD servers. Those servers are running Ubuntu 16.4 Server. I wanted to server multiple Modded servers just to help the community, but I looks like one is all I'm going to be able to do then. I already have my Vanilla server running in a different VM and wanted to move it to this one but I'm going to just change the main engine files in this one for SteelMod. Thank you for the replys. I look forward to the release of 7DTD. It's such a fun game.

 
7dtd.sh updateengine --experimental

I've had mixed results doing it with an existing install though. Best to wipe the Engine folder, and then run the command.

 
Eww I know this sounds stupid but as this is my first linux 7DTD setup I can defend myself with that :D .

I have successfully built and ran the server on Centos 7 64x; I can connect to game from my home computer - log out - login again and all my info is remaining (such as position, map, player profiles and inventories).

My problem is that I don't know where the server stores all that info, I thought that they would be stored at /home/sdtd/instances/<game name> but no, there's nothing but admins-, config- and players.xmls .pid files and 'logs' -folder.

I have tried to find the files by looking for my <SteamID>.map file but found none.

And as I want to transfer my saves from my home computer to server; it's a problem if I don't know where to put my saves.

As I earlier told the server stores the player- and mapdata to somewhere but not in instances folder, so if anyone could enlighten me where to find these files I would appreciate it a lot :)

~demc~

 
It should indeed be in the instance-folder, being either a "Navezgane" or "Random Gen" subfolder. If it's really not there then something is wonky, a log might help. Default location of the game if it's not overridden at all would be ~/.local/share/7DaysToDie.

 
Okey I figured it out.

Server/script didn't generate the 'Random Gen' -folder or at least it wasn't showing up in file manager and thus I didn't find the files. I re-installed the server and game and after that it generated the 'Random Gen' -folder properly.

Thank you Alloc for giving a tip :>

 
I can't seem to get the server to stay running. Everytime I try to run the script it happens. I've tried running it as root, reinstalling, making a new instance. nothing seems to work. Any ideas?

Code:
###:/home/sdtd/instances/14-7_server_2$ 7dtd.sh start 14-7_server_2
Done!
###:/home/sdtd/instances/14-7_server_2$
 
I can't seem to get the server to stay running. Everytime I try to run the script **it** happens.
We need to see the log file.

They will be in /home/sdtd/instances/14-7_server_2/logs/XXXX_output_log.txt

Unless of course, by **it** you mean the terminal output.

If you are expecting the console to retain the cursor while the server is running, and based on that you think the server is not running, then you should know it runs in the background. Once you start the server, it will run behind the scenes and return your terminal to you.

If, by **it**, you mean something else, then you need to say what the something else is, and show the log file.

 
Hey Alloc :)

I'm just looking at using the backup system offered in the server scripts (7dtd.sh backup) and I have a question.

What would happen if the instance was attempted to be started while the backup is in operation?

I have a cron entry that runs every two mins in case of a server crash - 7dtd.sh start my_instance.

What will happen if that cron is run after a backup operation has been started?

Is there a lock file set once the back up starts?

Or do I need to set that up myself to stop the start command being issued while backing up is taking place.

All this assumes that the backup operation stops the server before beginning, which is the obvious conclusion when reading;

Code:
# How many seconds should stopping wait for the instance to shutdown
export STOP_WAIT=5
in 7dtd.conf

Thanks for your time, I imagine you are pretty busy with A15 looming.

Zig.

 
That STOP_WAIT is for the stop-command. It's the timeout before it force-kills the process.

The backup thing doesn't do anything about starting/stopping/whatever an instance. It will simply ask rsync to copy the files. I'm using it on an hourly schedule and so far didn't ever run into any issue with that.

 
That STOP_WAIT is for the stop-command. It's the timeout before it force-kills the process.
The backup thing doesn't do anything about starting/stopping/whatever an instance. It will simply ask rsync to copy the files. I'm using it on an hourly schedule and so far didn't ever run into any issue with that.
Was just coming back here to edit my post and say that I had worked that out :D

Thanks Alloc!

 
Back
Top