Kernel for gameservers?
Mikkel
Status: New User - Welcome
Joined: 24 Nov 2017
Posts: 3
Reply Quote
Hello,

I'm sorry, if i have posted topic in wrong category!

Can the liquorix kernel be using for running gameservers, (as CSGO Servers)

I have try in few years (without succes) for make a better kernel version.

I have try find something like these optional, maybe someone here know better?

"custom -rt patched + preemt kernel." < Do this mean it called (real-time - aka FULL RT or BASIC RT) ?

Option list:
    Enable the server to work with highest FPS possible (enable 1000fps / 128ticks and so on, based on the game)
    Enable pingboost (if available in the game)
    Stabilize FPS fluctuation (better hit registration, less delay differences/ping jitter)
    Tune process kernel scheduling to provide improved response time
    Increase the number of CPU cycles reserved to your gameserver resulting in smoother gameplay even under very high load or while playing in complex maps with many users online
    Reduce the number of kernel context-switching improving software responsiveness
[/b]
Back to top
damentz
Status: Assistant
Joined: 09 Sep 2008
Posts: 1117
Reply Quote
A few important things to know if you want a fully real-time game server.

    - You may actually do better with the mainline kernel and RT patches, but only if you plan to properly set the priority on your server application.
    - You'll want to turn on threaded IRQs. This is off on Liquorix since it can cause unusual behavior on mobile chipsets. IRQs, after all, are telling your system that a hardware event needs to be processed. Threading and scheduling the processing of these events prevents your applications from being preempted by hardware events but may slow down other stuff, like the IRQ from your GPU to render the screen, ironically.
    - And also ironic, realtime systems typically have more context switching at the cost of throughput. The mainline scheduler fore-go's lower latency for higher throughput and less context switching. However, in many benchmarks, all those heuristics don't give it much of an edge over MuQSS. Of course though, the real time patches with the proper scheduling policy (not SCHED_OTHER), don't have this behavior, but require manual intervention to set up.
    - It might be worth your time to also compile the kernel for your architecture. Liquorix already uses -O3, but you'd probably benefit from build for the actual architecture (Broadwell, Ivy Bridge, Sky Lake, etc).


As far as how you'd configure it, I'm confident you can start with what Liquorix uses and improve from there. Do you have a good way to measure any fps and tick underruns on your game server? If so, you can experiment from Liquorix's default configuration, then go up from there to more realtime friendly configurations.

Also, there's some basic useful information.

    - Make sure your game server is running at maximum clock speed, not any on-demand governor settings.
    - Try getting as many cores as possible to reduce jitter from background and kernel operations.
    - Aim for less than 50% total system cpu utilization.
    - Disable any hyper threading / SMT technologies. I actually have a tool just for that available on my github: github.com/damentz/ht-manager

Back to top
Display posts from previous:   

All times are GMT - 8 Hours