Posts: 31
Threads: 2
Joined: Aug 2010
Reputation:
0
11-08-2010, 04:49 AM
(This post was last modified: 11-08-2010, 05:46 AM by WolwX.)
I try to reach 1000 FPS as stable but without success
I used the Fragaholics how to (thx for this good help ) 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
Posts: 504
Threads: 9
Joined: Oct 2009
Reputation:
3
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.
Posts: 31
Threads: 2
Joined: Aug 2010
Reputation:
0
11-08-2010, 07:39 AM
(This post was last modified: 11-08-2010, 09:16 AM by WolwX.)
(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
My dedicated is only for hosting css so I try to have the less services processus running on it.
Some help please ?
Posts: 226
Threads: 2
Joined: Aug 2009
Reputation:
1
Why do you need stable, high FPS? Enjoy the game. As long as it's over the tick rate it won't effect anything.
Posts: 2,031
Threads: 27
Joined: Nov 2008
Reputation:
17
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.
Posts: 1,127
Threads: 22
Joined: Sep 2008
Reputation:
10
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...
Posts: 31
Threads: 2
Joined: Aug 2010
Reputation:
0
11-08-2010, 09:20 PM
(This post was last modified: 11-08-2010, 09:22 PM by WolwX.)
(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
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 ^^
Posts: 2,031
Threads: 27
Joined: Nov 2008
Reputation:
17
11-08-2010, 11:31 PM
(This post was last modified: 11-08-2010, 11:31 PM by BehaartesEtwas.)
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?
Posts: 1,127
Threads: 22
Joined: Sep 2008
Reputation:
10
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...
Posts: 31
Threads: 2
Joined: Aug 2010
Reputation:
0
11-09-2010, 02:16 AM
(This post was last modified: 11-09-2010, 02:48 AM by WolwX.)
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
Posts: 2,031
Threads: 27
Joined: Nov 2008
Reputation:
17
run
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 ;-)
Posts: 31
Threads: 2
Joined: Aug 2010
Reputation:
0
11-10-2010, 02:19 AM
(This post was last modified: 11-10-2010, 04:02 AM by WolwX.)
(11-09-2010, 07:46 PM)BehaartesEtwas Wrote: run
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 :
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 ?
Posts: 1,127
Threads: 22
Joined: Sep 2008
Reputation:
10
FPS isn't really bad when it doesn't drop below the tickrate.
Slå den med jeres fiberforbindelser...
Posts: 2,031
Threads: 27
Joined: Nov 2008
Reputation:
17
(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...
Posts: 80
Threads: 7
Joined: Nov 2009
Reputation:
0
Maybe depents your cpu clook speed (1.87 ghz low?)
|