What is the best CPU for Dedicated Servers?

Discussion in 'General Discussion' started by spanj, Nov 7, 2018 at 4:27 AM.

  1. spanj

    spanj Commander

    Joined:
    Oct 12, 2016
    Messages:
    98
    Likes Received:
    227
    I'm running a dedicated server called Shattered Realm.
    Currently this server is running a custom scenario with about 90 playfields and an average player count of 50, peaking at around 80.
    We are running on a dedicated server provided by low.ms at the following spec:
    CPU = Intel I7 7700K 4.5Ghz
    RAM = 64GB DDR 4
    HDD = 250GB SSD
    10TB bandwidth

    Currently the CPU is sitting at 100% usage at around 40 players, as more players connect they are reporting problems getting disconnected from server and other issues with ships not warping etc.

    My question for the Devs is; is the I7 the best CPU for Empyrion - Dedicated Server or would the intensive processing requirements be better served by the Xenon type processors?

    From what i understand the I7 is faster, it has higher clock speeds but much less capacity (cache & cores). the Xenons i think are better at multitasking but are slower in clock speed so its difficult without knowing much about how Empyrion works, which would work better for it.

    Cheers,
    Spanj.
     
    #1
    ravien_ff likes this.
  2. ravien_ff

    ravien_ff Captain

    Joined:
    Oct 22, 2017
    Messages:
    784
    Likes Received:
    938
    Those are some impressive player counts. Hopefully you find the answer!
     
    #2
  3. StyxAnnihilator

    StyxAnnihilator Captain

    Joined:
    Jun 5, 2017
    Messages:
    463
    Likes Received:
    326
    (Xeon) 8-Core minimum, if EGS can multi-cpu properly. RAM and disk speed might be bottlenecks too.
    I7-7700K is just an OK quad core for a workstation, overall. I have not tried running EGS server, so maybe someone have details in CPU workings?
    The main difference from a workstation are the amount of access to the system, that both the network interface (cards) and CPU needs to handle, along with disk read/writes.
     
    #3
    Last edited: Nov 8, 2018 at 6:34 AM
    SylenThunder likes this.
  4. spanj

    spanj Commander

    Joined:
    Oct 12, 2016
    Messages:
    98
    Likes Received:
    227
    Its really odd that these providers are all fronting the I7 as their flagship CPU for game servers though.
    There must be a reason for it. My guess is the speed but, i don't know enough about the subject to know for sure.

    I think HWS are using Dual 16 core Xenons, given that they have insider knowledge with Eleons code I might take the cue from them but I would like an official statement from the Devs on this if at all possible.
     
    #4
  5. StyxAnnihilator

    StyxAnnihilator Captain

    Joined:
    Jun 5, 2017
    Messages:
    463
    Likes Received:
    326
    I once were certified on Compaq/HP servers, so only "cheap" and little used servers had I7, else Xeon due to the reasons mentioned.
    A bit higher Hz does not matter much if a cpu core need to to 2 things instead of 1.
     
    #5
  6. Buuuh

    Buuuh Lieutenant

    Joined:
    Sep 7, 2018
    Messages:
    85
    Likes Received:
    33
    The reason is simple. the i7-7700k outperformes most Xeon when it comes to single-core-performance. And that's because of many many games and servers are bottlenecked by single-core-performance.
    Even a 32-core Threadripper doesn't help, if the game/server peaks on one core and the other 31 core have to wait for it.

    I don't know how Empyrion handles this in detail, but on my server i at least saw, that every playfield is spawned as a separate process. Taking that into account i expect that the server can calculate each playfield on different cores. But of course it still depends, if all players are playing on the same playfield at the same time, this playfield will probably again be bottlenecked by single-core-performance.
    If the players are spread out to your 90 playfields, it might run much better on a 16+ core cpu.
     
    #6
  7. Slipstream

    Slipstream Captain

    Joined:
    Sep 21, 2016
    Messages:
    673
    Likes Received:
    1,228
    It isn't just the processor. You need to know/understand the rest of the backplane. What's the actual throughput of the SSDs? What RAID configuration? What's the speed of the backplane the drives are connected to? Is the server running the nice, sexy Windows headless server mode, which provides only Powershell access? What version of windows is running in there? Is this an actual dedicated server, or are you sharing hardware with other VMs? What's the facility's actual bandwidth and how much of it are YOU getting?

    PS: You are not getting "10TB of bandwidth" as there's no such thing as a 10TB network card. And your network is ANOTHER bottleneck.

    Empyrion is running on Unity, which means it has a very poor baseline optimization. Go take a look at end-game Conan:Exiles. Pretty game, but absolute knackers once people start building.

    Go look at the recent HWS gripes to see what issues THEY are having, and they're the most-knowledgeable people when it comes to running MP Empyrion servers in the world.

    ---

    Motherboard - The best mobo you can get your hands on, with the most recent/fastest back end/backplane architecture, preferably with an onboard RAID controller for the OS Drives.

    RAID controller - A standalone blazing fast RAID controller, maximum speed. Standalone, because it is handling the game raid/data, and you don't want to have to share the load between game and OS/swap. Best read/write caching you can get.

    CPU: 2 cores/10 players (So, 40 players == 8 cores) - Empyrion doesn't multi-thread really well, so this is always going to be the bottleneck. Slot the fastest one, again with the best read/write caching. I haven't heavily tested how well Empyrion threads, so I do not know if buying a higher-end multi-CPU board would help, or just sit there unused.

    Memory: 8GB/core (Using our example, 40 players == 64 GB) - Worth saying again, get the fastest you can.

    Network:
    4x 10GB NICs, bonded to create a full 40GB connection. If possible, bond mode 2 or 4, with mode 6 as an acceptable, if slightly slower, solution. This means your host/colo needs to set up proper port bonding on whatever switch you're plugged into.

    ---

    Now let's talk about drives. Empyrion is a little different than the average, as it is hitting both heavy reads and writes, because it is constantly updating and requesting the positional information of dozens if not hundreds of bodies and bullets. This means we must MINIMIZE the computational latency. And that means RAID 10. This is a mirrored set of RAID 0 Drives. Higher levels of RAID (6 being the most common) are great for business continuity purposes (being able to hot swap drives) but not good for raw speed, which is what we need.

    OS Drives:
    2x 256GB Hardware mirrored SSD OS drives (RAID 1) - Simple, fast. This is handling the underlying OS. Mirrored to ensure uptime.
    2x 256GB Hardware mirrored SSD swap drives (No RAID) - A pair of drives JUST for swapping. There is no need to mirror these, just assign them as swap drives in the Windows OS. If one fails, replace it.

    Game/Data Drives:
    6x 1TB SSD RAID 10 - This will give you ultra-fast response and a little under 3TB of space. You can go larger if you feel you need it, but as you could probably get away with a single RAID1 Mirror of a pair of 1TB drives, Empyrion doesn't take up THAT much space, 3TB should be just fine. If the mirror fails, you can swap out the failed drive(s) and rebuild very quickly, with the game continuing to run.

    Backups:
    As always a RAID is NOT a backup. End of story. Pay for some kind of cloud-based backup for the data directory, Carbonite or whatever. It's worth it.

    ---

    Hopes this helps!

    --Brian
     
    #7
    StyxAnnihilator and binhthuy71 like this.
  8. Buuuh

    Buuuh Lieutenant

    Joined:
    Sep 7, 2018
    Messages:
    85
    Likes Received:
    33
    Playfields are forked as separate processes, the OS should then schedule computing requirements at least for each playfield to different cores.
    Also "required amount of RAM" does not directly scale with playercount.
    As i already mentioned, this won't help if 50 players on overall 90 playfields are all playing on the same playfield at once.


    No, the problem after your description is the accesstime for many small accesses which makes the bottleneck mostily to the OS/CPU. Just using a raid doesn't help against that at all. A basic raid (no matter if 0, 1 or 10) only increases the possible bandwith the system can deliver, depending on the used Controller (or even software-raid) in opposite might even increase the accesstime.
    If you want to hand on this point, you need a professional storage system, which not only comes with a raid but also massive caching systems. In this case more RAM might help, because Windows (7 and newer) uses "free" RAM for caching hdd access. Anyway i don't know if the windows' caching algorithm is good enough to cover the way Empyrion does dozens of small accesses.
    E.g. accessing 100000 files with each 1kb drops the transferrate of even my M.2 Evo 970 down to few mb/s which can in good case deliver up to 3,5GB/s (and it really does, when it's just sequential file access).
     
    #8
    StyxAnnihilator and Slipstream like this.
  9. Slipstream

    Slipstream Captain

    Joined:
    Sep 21, 2016
    Messages:
    673
    Likes Received:
    1,228
    Buuuh, that's why I made the bottleneck note at the CPU/core level.

    Have you done any testing on the "should" part of the OS forking? I also haven't looked into what Windows OS most hosting companies are running for their VMs, etc. Any data on that?

    --B.
     
    #9
  10. Buuuh

    Buuuh Lieutenant

    Joined:
    Sep 7, 2018
    Messages:
    85
    Likes Received:
    33
    Nope, i just once had a server running and noticed that Empyrion spawns processes per playfield. Since they are separate processes they SHOULD scale to multicore. I couldn't test in a meaningfull way, because my server was only used by 2-3 players.
    I just can say, when i had to deal with software which forked different processes, the OS did assign them to different cores and also switched cores, when one fork required more performance.

    OP has a server running with a reasonable amount of players, he might take a closer look onto that. It was more a hint to what might be interesting to look at in detail. Don't know if he has needed access to the server to look into that by that detail. But it should be obvious by just looking into the windows task manager (or at least when using something like Sysinternals ProcessExplorer).
     
    #10
  11. Slipstream

    Slipstream Captain

    Joined:
    Sep 21, 2016
    Messages:
    673
    Likes Received:
    1,228
    Thanks, Buuuh! I guess that's a good reason to have 'lots of playfields', even if it causes some other problems (players too scattered).
     
    #11
  12. Buuuh

    Buuuh Lieutenant

    Joined:
    Sep 7, 2018
    Messages:
    85
    Likes Received:
    33
    Mostly depends on how much scattered the players are. If it turns out my theory is right, a server might be able to handle 50 players on 10 different playfields with 5 players per playfield easily, but in opposite cause performance issues when 20 players are on the same playfield. That's what i ment by "the i7 might perform better because of higher single-thread-performance". In this case the i7 has more power to handle many players on the same playfield, but a xeon with more cores (or any other cpu with more cores) might deal much better, when the players are scattered over various playfields.

    Conclusion: I can't tell if a xeon with more cores will be better. It depends on how the server is used.

    Taking advantage of multicore and to not rely on single-process-performance is even in 2018 a heavy issue. Simply because it not easy to make software use of multiple cores and scale in an apropriate way without other limitations. If it would be that easy, most new games would use it and take advantage from it by scaling on a flexible amount of cores, but it simply isn't. But nearly all games can't do that. Basically every game is limited by single-core-perfomance. It uses other cores ans therefore has an advantage but in the end in most games the single-core-performance is the bottleneck.
    But Empyrion has at least the ability to scale by different playfields, because they don't directly interact with each other. And from what i saw, Empyrion uses this advantage.

    *talking from a softwaredeveloper point of view*
     
    #12
    Last edited: Nov 8, 2018 at 4:53 PM
  13. Slipstream

    Slipstream Captain

    Joined:
    Sep 21, 2016
    Messages:
    673
    Likes Received:
    1,228
    I think this is an interesting discussion to have, because it shines a light on what server owners need to know. Thanks for being willing to chat about it!
     
    #13

Share This Page