Linux Dedicated UT/UT2003 Servers

miguel.durao at netcabo.pt miguel.durao at netcabo.pt
Wed Sep 18 11:12:51 EDT 2002


Hello, I'm a Linux and UT fan, posting here for the first time.
First of all, Congratulations on the port, at least, someone did something for the community of Linux/UT fans. :)

Now, for my problem: 

As you all should know, a dedicated server in linux behaves different from a dedicated server in windows, and the main difference is the so famous NetServerMaxTickrate.
Talking about UT, basically, TR=35 in Linux was more or less equal to TR=20 in Windows.
In UT2003, no matter what we do, the TR is always dropping below 10 and when it's good it's around 15 (NetServerMaxTR=30). I see this in the parameter of stat net Packets/IN.

Packets/IN decrease -> Stat Net (F6) ping increases!

The machine is a P4 at 1.6ghz with 512MB ram with kernel 2.4.18 (distro rh7.3). Barely no services up, only the UT2003 server.
In the foruns of UTPURE and in the INA foruns i saw this:

>I solved the problem for my old UT server with increasing the kernel tickrate in linux
>(HZ value) since there was probably a problem with threads not waking up in time.
>Perhaps it fixes the problems with ut2k3 too (since the netcode doesn't seem to be all
>that different from ut :P)
>
>The default tickrate for linux kernels is usually 100Hz and thus it can take up to 10ms
>for a timer to wake up. I set the value to 1000Hz which solved most problems.
>
>I'm sure it all depends on what kernel version and distrubution you're using. So don't
>blame me for any problems with old scsi drivers etc...
>
>I'd love to see a real fix from Epic though.

And more technical, here:

>	now the /usr/src/linux/include/asm-i386/param.h looks like this:
>
>	#ifndef _ASMi386_PARAM_H
>	#define _ASMi386_PARAM_H
>
>	#ifndef HZ
>	#define HZ 1000 /* was 100 */ 
>	#endif 
>	
>	#define EXEC_PAGESIZE 4096 
>
>	#ifndef NGROUPS 
>	#define NGROUPS 32 
>	#endif 
>
>	#ifndef NOGROUP 
>	#define NOGROUP (-1) 
>	#endif 
>	
>	#define MAXHOSTNAMELEN 64 /* max length of hostname */ 
>	
>	#ifdef __KERNEL__ 
>	# define CLOCKS_PER_SEC 1000 /* frequency at which times() counts _was 100_ */ 
>	#endif 
>
>	then it's just make clean;make dep; make bzImage; make modules usw... 
>	I have no idea if it crashes harddrives or reformat religions etc..  

Do you guys think these might result? Any other OS side Tips? Or even UT/UT2003 server side tips?

TIA

Miguel Durão (aka: [PUKE]~Rambo)

PS: you may see my server here unreal://ut.pukeclan.com:27300 and if you need more information, just tell me! Once again, many thanks!



More information about the ut2003 mailing list