SRCDS Steam group


Server Side FPS
#1
Here is the deal, I have read numerous posts about increasing the FPS on server side. Here are the specs for the machine I am running it on:

-Redhat EL 4.0-U2-32-ES (Kernel Version: 2.6.9-22.ELsmp)
-Intel Pentium D 930 [3GHz] (Dual Core)
-Generic 1GB DDR2 [1GB]
-Mainboard Onboard SATAII IDE Controller
-Hitachi DeskStar SATAII HDT722525DLA380 [250GB]
-Hitachi DeskStar SATAII HDT722525DLA380 [250GB]
-Uplink speed: 1000Mbps

I have read that the default HZ for 2.6 is 1000. My problem is that it looks like my server is capped at 333.33FPS on the server side.

CPU In Out Uptime Users FPS Players
1.75 0.00 0.00 0 0 330.91 0

Is there something that I am doing wrong? I have fps_max 1000. And here is the line that I use to run the server:

./srcds_run -console -game cstrike -secure +map de_dust2 +maxplayers 12 -tickrate 100 -pingboost 1 +fps_max 1000 -ip ***.***.***.*** -autoupdate

I have tried using pingboost 1-3 (all give me the same server side FPS). I also have fps_max set in my server.cfg file. All I really want it to make my server run around 500FPS server side. Please help me, this has been bugging me for awhile!

Thanks,
-DiSTANT-
#nofatties
Reply
#2
If your pullin 333 fps from linux then your doin good. Most people complain about only bein able to get like 64. I get about the same FPS as you. But i use +fps_max 600. If you wanna run a server thats maxin out at 500+ fps then your gonna want the windows dedicated server. Someone here might know somethin I dont tho....so we'll see.
Reply
#3
afaik it's no longer 1000Hz since 2.4 kernel or so

Quote:Linux Kernel Timer Instructions

Thanks to triphammer in the STEAM Linux SRCDS Forum

You need to do a custom (re)compile of the linux kernel in order to change kernel interruptability / timer.


Since Kernel 2.6.14 you change the HZ with "make menuconfig", just go to: "Processor type and features" > "Timer frequency (XXXXX HZ)". The default HZ for 2.4 Kernels is 100. You can also change the HZ via the "USER_HZ" variable located in: include/asm-<arch>/param.h.

param.h:

define USER_HZ 100 /* .. some user interfaces are in "ticks" */


More along the lines of your question, you can also set the kernel timer frequency by chaning the HZ variable in the same file

define HZ 1000 /* Internal kernel timer frequency */

Also:

+ config HZ
+ int "Frequency of the Timer Interrupt (1000 or 100)"
+ range 100 1000
+ default 1000
+ help
+ Allows the configuration of the timer frequency. It is customary
+ to have the timer interrupt run at 1000 HZ but 100 HZ may be more
+ beneficial for servers and NUMA systems that do not need to have
+ a fast response for user interaction and that may experience bus
+ contention and cacheline bounces as a result of timer interrupts.
+ Note that the timer interrupt occurs on each processor in an SMP
+ environment leading to NR_CPUS * HZ number of timer interrupts
+ per second.
+
endmenu

For a server fps to cater for you high tickrate under Linux, you either need to recompile your 2.4 Kernel, with its Kernel timer resolution changed, but the easiest and probably best course of action is to use the 2.6 Kernel and change the "USER_HZ" variable, (I would suggest starting at 500 and seeing what happens before experimenting with other numbers) which will enable higher server fps on your Linux server.
from: http://www.bats-clan.co.uk/whispers_wiki_tickrate.html
Reply
#4
I have actually read through that guide a few times. The only problem, I am not able to change the HZ with menu config. That option doesn't exist in my version. I have yet to try the param.h change (I am a bit hesitant to rebuild the kernel due to the fact that its a remote server and if I mess up anything at all I will have to completely rebuild the system). If anyone thinks they can assist me in the rebuild, I would gladly accept the help. Please be an expert with Red Hat. Any other suggestions are welcome.
Thanks againg for all the replies,
-DiSTANT-
#nofatties
Reply
#5
***UPDATE***
I rebuilt the server Kernel with the HZ=1000 (turns out the default for 2.6.** is only 250HZ. After I got the server up and running with the 1000HZ, everything seems to be working fine.

12:26:02 CPU In Out Uptime Users FPS Players
2.20 0.00 0.00 322 0 501.00 0

Got my server running with the FPS that I wanted. If you have any questions please feel free to ask.
Reply
#6
which version of the kernel are you using.
Reply
#7
Quote:which version of the kernel are you using.
Linux 2.6.16.18 on RedHat ES 4
Reply
#8
I'm using 2.6.16 on Fedora Core 5. I rebuilt the kernel with the frequency set to 1000hz, which has lifted my server fps from 125 to 330, but I know this system is capable of more and it seems like I'm running into configuration issues. Can anyone make suggestions regarding command line options for srcds_run ? I'm presently using -tickrate 100, -pingboost 1, and +fps_max 1000. Anything for server.cfg or other command line options I should try?

The server is an AMD 64 3800+ X2 dual core with 2gb of ram and a SATA raid 0 set.

Thanks.
Reply
#9
hey guys,,,

im runnin slack 10.2 with 2.4 kernel. im only getting 50fps with all correct parameters +fps_max 600 -tickrate 100

i tried looking for include/asm-<arch>/param.h.
but found alot of similar files with all lines commented out.

Still the HZ shoudl be default 100 ,, why am I only getting 50fps


im runnin P4 3.2 with 1G ram
Reply
#10
john...if you had read the post...

It says that you NEED kernel 2.6 to be able to use Frequency at 1000 ...

You're using 2.4 ... so upgrade to 2.6 Wink
Reply
#11
Hello,

I'm a newbie in Linux so I'm pretty hesitant to proceed without a bit of clarification. I decided to use the better/easy way to change the "Linux Kernel Timer" which is buy editing param.h that is in "/usr/include/asm"
but after reading the instructions carefully I find out there is HZ and USER_HZ. What should I change exactly ? Here are the contents of param.h by default:


#ifndef _ASMi386_PARAM_H
#define _ASMi386_PARAM_H

#include <unistd.h>

#ifndef HZ
#define HZ sysconf(_SC_CLK_TCK)
#endif

#define EXEC_PAGESIZE 4096

#ifndef NGROUPS
#define NGROUPS 32
#endif

#ifndef NOGROUP
#define NOGROUP (-1)
#endif

#define MAXHOSTNAMELEN 64 /* max length of hostname */

#endif

system specs
Intel p4 3.4
2gb ram
centOS kernel 2.6.9-34.0.1.ELsmp

Thanks.
Reply
#12
i gave instructions in the post just 3 down from this one....

http://forums.srcds.com/showthread.php?tid=2675
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)