SRCDS Steam group


1000 FPS + on Debian 5 please
#1
Question 
I try to reach 1000 FPS as stable but without success Sad

I used the Fragaholics how to (thx for this good help Smile) but I still have an unstable server :'(

So I compiled a RT kernel, the Linux 2.6.33.7-rt29, and into the configuration I test both 100 HZ and 1000 HZ.

So my question are :

What's the better options to use in the makeconfig menu ?
There is any kernel already compiled optimised for this 1000 FPS RT ?
I must use any type of script with this modification to launch my srcds CSS server ?

Thank for your help Smile
Reply
#2
With css fps > 66 are useless. Use a current kernel without RT patch and 100hz.
Set fps_max at 80-100 and you are fine.
Interactive web based config creator for CS, CSS, TF2 and DODS
Creates server and client configs in an explained dialog.

You`ll also find precompiled debian gameserver kernels for download
Reply
#3
(11-08-2010, 07:35 AM)Terrorkarotte Wrote:  With css fps > 66 are useless. Use a current kernel without RT patch and 100hz.
Set fps_max at 80-100 and you are fine.

That's not my goal :/

I want a stable 1000 FPS, and for that I test with the fpsmeter.

At moment, when I try both with my custom RT kernel and without, I have too many fps drops :s

[Image: graph.php?id=98483]

My dedicated is only for hosting css so I try to have the less services processus running on it.

Some help please ?
Reply
#4
Why do you need stable, high FPS? Enjoy the game. As long as it's over the tick rate it won't effect anything.
http://leaf.dragonflybsd.org/~gary

“The two most common elements in the universe are hydrogen and stupidity.”








Reply
#5
nowadays (i.e. on any recent kernel) it is most important to have the server running with realtime scheduling. the important improvements of the realtime patches are already in the mainline kernel. so do you change the scheduling of the server process as described in the howto? there it's called the resched.sh.

still I agree with the previous speakers, since the orange box update 66 fps is probably better than 1000 fps (maybe the difference is very small, than it's the same). nevertheless it's important that the fps are stable, in fact the variations of the fps number must be smaller at 66fps than at 1000fps (as the time, not the fps, is important) - but that is easily achieved. my recommendation is doing all optimizations to get stable fps and run with 66fps.
http://www.fpsmeter.org
http://wiki.fragaholics.de/index.php/EN:Linux_Optimization_Guide (Linux Kernel HOWTO!)
Do not ask technical questions via PM!
Reply
#6
Are you all serious about this? I mean, i have never thought that lower fps would be better. If anyone can explain further about this, ill be happy!
Slå den med jeres fiberforbindelser...

[Image: 1308107839.png]
Reply
#7
(11-08-2010, 06:22 PM)BehaartesEtwas Wrote:  nowadays (i.e. on any recent kernel) it is most important to have the server running with realtime scheduling. the important improvements of the realtime patches are already in the mainline kernel. so do you change the scheduling of the server process as described in the howto? there it's called the resched.sh.

still I agree with the previous speakers, since the orange box update 66 fps is probably better than 1000 fps (maybe the difference is very small, than it's the same). nevertheless it's important that the fps are stable, in fact the variations of the fps number must be smaller at 66fps than at 1000fps (as the time, not the fps, is important) - but that is easily achieved. my recommendation is doing all optimizations to get stable fps and run with 66fps.

Your help will be fine BehaartesEtwas Big Grin

I already use the script for nice renice and realtime as cron task (every 5 minutes) :

rt-nice-renice.sh > /dev/null 2>&1

Code:
#!/bin/sh

PIDS=`ps ax | grep sirq-hrtimer | grep -v grep | sed -e "s/^ *//" -e "s/ .*$//"`
for p in $PIDS; do
  chrt -f -p 99 $p
done

PIDS=`ps ax | grep sirq-timer | grep -v grep | sed -e "s/^ *//" -e "s/ .*$//"`
for p in $PIDS; do
chrt -f -p 51 $p
done

PIDS=`pidof srcds_linux`
for p in $PIDS; do
  chrt -f -p 98 $p
done

PIDS=`pidof srcds_i686`
for p in $PIDS; do
  chrt -f -p 98 $p
done

PIDS=`pidof srcds_i486`
for p in $PIDS; do
  chrt -f -p 98 $p
done

PIDS=`pidof srcds_amd`
for p in $PIDS; do
  chrt -f -p 98 $p
done

PIDS=`pidof hlds_i686`
for p in $PIDS; do
  chrt -f -p 98 $p
done

PIDS=`pidof hlds_i486`
for p in $PIDS; do
  chrt -f -p 98 $p
done

PIDS=`pidof hlds_amd`
for p in $PIDS; do
  chrt -f -p 98 $p
done

Can I add to this script the nice and renice fonction ?

Code:
PIDS=`pidof srcds_linux`
for p in $PIDS; do
  nice -n 19 renice -20 chrt -f -p 98 $p
done

I really want to optimise as far as possible my srcds server, and I will do some test on the power, and result into my processor and ram to take any final conclusion.
But at moment my goal is to reach a stable 1000 FPS result on the FPSMeter ^^
Reply
#8
fps higher than 66 just use more cpu and might prevent the cpu to be used to receive the game packets in the right moment. I don't know if it's a noticeable effect, but I am pretty sure now, higher fps don't result in a noticeable improvement either.


(11-08-2010, 09:20 PM)WolwX Wrote:  Can I add to this script the nice and renice fonction ?

yes you can, like this (untested!):
Code:
PIDS=`pidof srcds_linux`
for p in $PIDS; do
  chrt -f -p 98 $p
  renice -20 $p
done
but the nice level does not make a difference if the process runs with realtime priority. in any case, nice is not a useful way to prioritize a game server...

did you check that the game server actually get the realtime priority? did you also try the other things in the trouble shooting section of my howto? and what are your system specs? is your debian 64bit?
http://www.fpsmeter.org
http://wiki.fragaholics.de/index.php/EN:Linux_Optimization_Guide (Linux Kernel HOWTO!)
Do not ask technical questions via PM!
Reply
#9
I have lowered the fps_max to 70 on my primary server now, i did a small test: http://www.fpsmeter.org/p,view;98544.html

This is on Ubuntu 10.10 x64 (standard kernel). Seems OK to me.. :-)
Slå den med jeres fiberforbindelser...

[Image: 1308107839.png]
Reply
#10
Debian Linux 5.0
Noyau et CPU Linux 2.6.33.7-rt29 sur x86_64
Processor information Intel® Xeon® CPU L3426 @ 1.87GHz, 8 cores

Perhaps I failed with the resched.sh use because when I check, that's look like to do nothing on my processus ...

I use a GSP Manager and when I launch the server it's started by a user different for each client.

So perhaps I must change some settings into the resched.sh ?

Each user have 4 processus for each game server, and that use SCREEN

Here it's a sample :

Code:
# ps aux
gsp_7     2840  0.0  0.0  23564  1092 ?        Ss   12:33   0:00 SCREEN -c [..]/88.190.12.143-27102/../.screenrc.gsp-serv_4 -mdLS gsp-serv_
gsp_7     2851  0.0  0.0   9360  1432 pts/1    Ss+  12:33   0:00 bash -c cd [..]/88.190.12.143-27102; ./n1-stv && cd orangebox;
gsp_7     2870  0.0  0.0   9020  1380 pts/1    S+   12:33   0:00 /bin/sh ./srcds_run -game cstrike -ip 88.190.12.143 -port 27102 -fps_max 1500 -maxplaye
gsp_7     2874  8.6  2.1 276540 172472 pts/1   R<l+ 12:33  24:45 ./srcds_linux -game cstrike -ip 88.190.12.143 -port 27102 -fps_max 1500 -maxplayers 12
gsp_9     2904  0.0  0.0  23564  1096 ?        Ss   12:33   0:00 SCREEN -c [..]/88.190.12.143-27105/../.screenrc.gsp-serv_7 -mdLS gsp-serv_
gsp_9     2906  0.0  0.0   9360  1432 pts/2    Ss+  12:33   0:00 bash -c cd [..]/88.190.12.143-27105; ./n1-stv && cd orangebox;
gsp_9     2936  0.0  0.0   9020  1380 pts/2    S+   12:33   0:00 /bin/sh ./srcds_run -game cstrike -ip 88.190.12.143 -port 27105 -fps_max 1500 -maxplaye
gsp_9     2938  8.7  1.5 230320 126652 pts/2   S<l+ 12:33  24:50 ./srcds_linux -game cstrike -ip 88.190.12.143 -port 27105 -fps_max 1500 -maxplayers 12
gsp_11    3032  0.0  0.0  23564  1096 ?        Ss   12:34   0:00 SCREEN -c [..]/88.190.12.143-27028/../.screenrc.gsp-serv_11 -mdLS gsp-ser
gsp_11    3034  0.0  0.0   9360  1428 pts/4    Ss+  12:34   0:00 bash -c cd [..]/gsp_11/88.190.12.143-27028; ./n1-stv && cd orangebox;
gsp_11    3058  0.0  0.0   9020  1384 pts/4    S+   12:34   0:00 /bin/sh ./srcds_run -game cstrike -ip 88.190.12.143 -port 27028 -fps_max 1500 -maxplaye
gsp_11    3069  8.7  1.8 254528 150312 pts/4   S<l+ 12:34  24:59 ./srcds_linux -game cstrike -ip 88.190.12.143 -port 27028 -fps_max 1500 -maxplayers 12

I don't know exactly how see if it's fine but I'm using webmin and thoses informations still like that :

IO scheduling class - Defaut
Nice - 0
IO priority - 4
Reply
#11
run
Code:
chrt -p <PID>
where <PID> is the PID of the srcds_linux process (2874 in the above example - of course it changes each time you restart the game server). it should output something like this:
Code:
pid 2874's current scheduling policy: SCHED_FIFO
pid 2874's current scheduling priority: 98

if it is like this:
Code:
pid 2874's current scheduling policy: SCHED_OTHER
pid 2874's current scheduling priority: 0
(especially the different policy specified), your resched.sh is not effective.

ah btw: fps_max 1500 does not work. use fps_max 0, as written in the howto ;-)
http://www.fpsmeter.org
http://wiki.fragaholics.de/index.php/EN:Linux_Optimization_Guide (Linux Kernel HOWTO!)
Do not ask technical questions via PM!
Reply
#12
(11-09-2010, 07:46 PM)BehaartesEtwas Wrote:  run
Code:
chrt -p <PID>
where <PID> is the PID of the srcds_linux process (2874 in the above example - of course it changes each time you restart the game server). it should output something like this:
Code:
pid 2874's current scheduling policy: SCHED_FIFO
pid 2874's current scheduling priority: 98

if it is like this:
Code:
pid 2874's current scheduling policy: SCHED_OTHER
pid 2874's current scheduling priority: 0
(especially the different policy specified), your resched.sh is not effective.

ah btw: fps_max 1500 does not work. use fps_max 0, as written in the howto ;-)

Code:
n1-SerVerS:~# chrt -p 11797
pid 11797's current scheduling policy: SCHED_OTHER
pid 11797's current scheduling priority: 0

When I did that, my processus change to 0 at IO priority, but still 0 at nice level and defaut at IO scheduling class (this one have Defaut, Real Time, Best effort and Idle options)

And here it's a test result :

[Image: graph.php?id=98796]

So perhaps I'm in wrong way because I checked the bad information ?

How I can check, and where I can see the "real time" effect ?
I mean, what command I can use please ?
Reply
#13
FPS isn't really bad when it doesn't drop below the tickrate.
Slå den med jeres fiberforbindelser...

[Image: 1308107839.png]
Reply
#14
(11-10-2010, 02:19 AM)WolwX Wrote:  
Code:
n1-SerVerS:~# chrt -p 11797
pid 11797's current scheduling policy: SCHED_OTHER
pid 11797's current scheduling priority: 0
that's bad. resched.sh does not work. if you run it manually, does it print any error messages?

Quote:When I did that, my processus change to 0 at IO priority, but still 0 at nice level and defaut at IO scheduling class (this one have Defaut, Real Time, Best effort and Idle options)
when you did what? neither IO scheduling nor nice level play any (significant) role. the scheduling policy on the other hand is very important.

[/quote]And here it's a test result :[/quote]
which is basically the same as before, because nothing changed? the scheduling policy is still SCHED_OTHER, which is simply wrong.

Quote:How I can check, and where I can see the "real time" effect ?
I mean, what command I can use please ?
that was the chrt -p <PID> stuff...
http://www.fpsmeter.org
http://wiki.fragaholics.de/index.php/EN:Linux_Optimization_Guide (Linux Kernel HOWTO!)
Do not ask technical questions via PM!
Reply
#15
Maybe depents your cpu clook speed (1.87 ghz low?)
Reply


Forum Jump:


Users browsing this thread: 7 Guest(s)