annoying furry 6,300 / 63,950 Report Post Posted January 26, 2022 Hello! I've recently been experimenting with building game server node optimized builds of the Linux kernel. In our incredibly unscientific testing, we noticed some fairly significant improvements to game server performance. I'm still experimenting with what works best, so the exact configuration we're using will likely change (it's difficult to test a lot of different combinations due to build length making it difficult to iterate). Some of the things we're doing include: Processor type specific optimizations Clang builds with LTO (is not supported with GCC) PREEMPT kernel w/ full dynticks (not entirely sure if we're gonna stick with full dynticks yet, still waiting to see how it goes) We're hosting our builds at https://deb.gflclan.com so if you trust us not to give you a virus, you can use those like so: curl https://deb.gflclan.com/key.gpg | sudo apt-key add - echo 'deb https://deb.gflclan.com/ focal main' | sudo tee /etc/apt/sources.list.d/gfl-kernels.list sudo apt update # If you have an AMD CPU sudo apt install linux-image-gfl-amd # If you have an Intel CPU sudo apt install linux-image-gfl-intel Per the cliche: The package is provided as is without any warranty, so if you use this and it doesn't work / breaks your system, you're on your own. We run the latest Ubuntu LTS, so you'll most likely have the best luck with that. After installing the package, you should be able to just reboot (you may find you need to change the grub configuration to always use the new kernel). You can check that you're running it like so: uname -r # should be something like 5.15.16-gfl-intel Alternatively, if you want to build your own, you can use these configs by adding them to your kernel's build directory as .config (likely won't be updated if we make changes though): configs.zip We don't patch our kernels (yet, might change), so the upstream sources from kernel.org are fine. They're intended for Linux 5.15.16 (the latest LTS at writing), so if you're using them on a newer version (or in general if your build env doesn't match mine), you should do this: make LLVM=1 LLVM_IAS=1 oldconfig We build the kernel with clang, so you'll want the appropriate llvm packages too. The ones in the Ubuntu LTS are too old, so I recommend building with Ubuntu 21.10. When it's all setup, you can build with: # replace the 4 below with the number of processor cores of the build machine minus 1 make LLVM=1 LLVM_IAS=1 -j4 bindeb-pkg Feedback is welcome as always (signature made by @Kaylode) Previously known as Xy. Twitter ❤️Ko-Fi ❤️Github Share this post Link to post Share on other sites More sharing options...
annoying furry 6,300 / 63,950 Report Post Posted April 4, 2022 Updated for Linux 5.17.1. No changes to the configuration other than we opted to use ThinLTO over Full LTO for faster builds. (signature made by @Kaylode) Previously known as Xy. Twitter ❤️Ko-Fi ❤️Github Share this post Link to post Share on other sites More sharing options...
flying4ssassin 108 / 3,879 Report Post Posted April 6, 2022 This is pretty cool and I somehow missed it the first time you posted about it. Share this post Link to post Share on other sites More sharing options...
JimmyJohnz 6 / 1,590 Report Post Posted June 26, 2022 I was looking for any information that GFL has published in regards to the back-end operations. Coming in as a person who does this as a career, it's always neat to see how communities like this run their own infrastructure. @annoying furry where did you land with this project? Share this post Link to post Share on other sites More sharing options...