SRCDS Steam group


Choke on Linux SrcDS
#1
I've found that SrcDS runs considerably better on Windows than Linux, of course by no fault of the Linux OS. However, I'm in a position where I'm forced to host my 3 servers on a Linux platform. The server specs are as follows:

2x AMD Opteron 248 (64-bit, 2205.013MHz, 1024 KB L2 Cache, 800MHz HT Speed)
3GB DDR (6x512MB)
Western Digital WD Caviar RE 16 WD2500YD (7200 RPM SATA) (not that it should matter much...)

The two pubs that I host get 20-30 choke with a considerable (20) amount of people in them (it isn't me, I've had 4-5 people confirm this), and the private gets 0-10 choke in scrims/matches. I've tried renicing all 3 servers, but that had the opposite effect (pub1: -5, pub2: -9, priv: -10), so now they're all back to nice 0. I run one pub at 66tick, the other pub and the private are 100tick. All 3 server configs are optimized as far as I know.

I'd really like to resolve this issue but I don't know where to start. It's a 100mbit line and pinging the host 100 times results in 0% loss, and response times are reasonable considering the distance between me and the server.

Any suggestions?
Reply
#2
totic Wrote:I've found that SrcDS runs considerably better on Windows than Linux, of course by no fault of the Linux OS. However, I'm in a position where I'm forced to host my 3 servers on a Linux platform.

With the right setup, linux can actually run better than windows. What OS are you using? What kernel version? Re-compiled kernel for 1000hz? Using realtime-preempt patch?

Quote:I've tried renicing all 3 servers, but that had the opposite effect (pub1: -5, pub2: -9, priv: -10), so now they're all back to nice 0.

Renicing srcds on linux has proven to be a problem and can actually cause srcds to jump to 100% CPU usage. So thats not suggested.

Quote:I run one pub at 66tick, the other pub and the private are 100tick. All 3 server configs are optimized as far as I know.

Have you tried assigning each process a processer? (affinity) using 'taskset -c 1' etc ?

Quote:I'd really like to resolve this issue but I don't know where to start. It's a 100mbit line and pinging the host 100 times results in 0% loss, and response times are reasonable considering the distance between me and the server.

What kind of rates are you running on the server? Choke is normally a problem client-side with their rates being set too high for their connection or the server running out of RAM and using virtual mem.

Apparently standard debian kernel 2.6.8-12 is the best working kernel for most people out there.
Reply
#3
Muppet Wrote:With the right setup, linux can actually run better than windows. What OS are you using? What kernel version? Re-compiled kernel for 1000hz? Using realtime-preempt patch?
CentOS 5.0-64 Kernel Version 2.6.18-8.el5

I haven't recompiled personally, the other guy that manages the server has but I'm not sure what options he used. Not using realtime-preempt patch afaik either.

Muppet Wrote:Renicing srcds on linux has proven to be a problem and can actually cause srcds to jump to 100% CPU usage. So thats not suggested.
Yeah found that one out the hard way Toungue

Muppet Wrote:Have you tried assigning each process a processer? (affinity) using 'taskset -c 1' etc ?
Nope, not yet.

Muppet Wrote:What kind of rates are you running on the server? Choke is normally a problem client-side with their rates being set too high for their connection or the server running out of RAM and using virtual mem.

Apparently standard debian kernel 2.6.8-12 is the best working kernel for most people out there.
sv_minrate 3000
sv_maxrate 30000
decalfrequency 60
sv_maxupdaterate 66
sv_minupdaterate 30
sv_mincmdrate 33
sv_maxcmdrate 101

That's the default config as far as rates/bw is concerned across all 3 servers, the 66tick and the two 100ticks. I'm not all that savvy with SrcDS configurations, someone else wrote it up for us.

It doesn't make sense to me personally to be running out of memory w/ 3GB, especially considering not all of the servers are full all the time...unless SrcDS has really bad memory leaks, which I suppose is quite possible. What kind of interval would you suggest for machine reboots?

Anyway, thanks a lot for the suggestions, I'm going to try them. But before I do, do you have any good links to reading material on any of the things you mentioned (kernel options, realtime-preempt, affinity, taskset usage) or shall I just Google?
Reply
#4
Those rates seems fine and have mins low enough to stop choke (if its client side rates problem).

Indeed, highly doubt you'll be running out of ram with that amount. But just to be on the safe side, the norm is to reboot the servers once a day (at like 4-5am). I covered a fairly simple method to do this automatically if you haven't already got something like this in place. Check here.

As for links, there a pdf about the realtime-preempt which is a good read (however, not based on how to apply it to your kernel - best to look up CentOS forums for that or google probably). I myself used to use CentOS, but their lack of support areas and forums led me to move to debian based such as ubuntu. Even if you browse the Ubuntu forums you should find some decent stuff about kernel options and recompiling as it shouldn't be too much difference from CentOS.

http://ubuntuforums.org/

As for some other links, i recently formatted my pc and lost all the kernel based ones! But i'm pretty sure i learnt most of the stuff from the Ubuntu forums and just generally googling. Just beware, some guides are atrocious whereas others can be brilliant.
Reply
#5
Thanks a lot man.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)