Urban Terror Forums: Multiple cores and 64bit vs 32bit? - Urban Terror Forums

Jump to content

 Login | Register 
Advertisement
  • (2 Pages)
  • +
  • 1
  • 2

Multiple cores and 64bit vs 32bit? Rate Topic: -----

#1 User is offline   x3r Icon

  • Account: x3r
  • Main tag: 24/7.
  • Country:
  • Joined: 04-December 12
  • Posts: 122

Posted 17 January 2013 - 03:04 AM

I was wondering if Quake3-UrT-Ded.i386 utilizes multiple cores?

also is Quake3-UrT-Ded.x86_64 still slower than the 32bit version? Will this be fixed in 4.2?

#2 User is offline   don Icon

  • Account: don
  • Main tag: GlaD-
  • Joined: 28-February 10
  • Posts: 2,640

Posted 17 January 2013 - 04:46 AM

single threaded. not sure why you'd need 64 bit in UrT. is 32 bit hitting a RAM limit? 64 bit code itself is only a few % faster in benchmarks, if at all.
GlaD-don
Past teams:
Partners in Terror | The Dark | Team Terror | Noobs Gone Wild | Xor | Blight Gaming | Area 51 Gaming | Team Lzuruha | Besserman6 | Console | No Care Bears | Zing | Pro5 | American Idols | Team Canada | No Defiance | Unlimited Gaming
<3 to the people who built and sustained the North American competitive community over the years. xil, r, vex, icu, bos, .e, '`|v|~, iF, -x-, ill, un, xor, glad & all the rest. thanks for the games

#3 User is offline   x3r Icon

  • Account: x3r
  • Main tag: 24/7.
  • Country:
  • Joined: 04-December 12
  • Posts: 122

Posted 17 January 2013 - 09:25 AM

View Postdon, on 17 January 2013 - 04:46 AM, said:

single threaded.


Thanks don, so I should be allocating cores to each server so I know that they are utilizing all the cores available to me?

View Postdon, on 17 January 2013 - 04:46 AM, said:

not sure why you'd need 64 bit in UrT. is 32 bit hitting a RAM limit? 64 bit code itself is only a few % faster in benchmarks, if at all.


Can you or an FS team member confirm that the 64bit server application is actually faster than 32bit and I should use the 64bit server?

I am not sure if you are talking about 64bit in general or Quake3-UrT-Ded.x86_64

I would like to use the most efficient architecture for the servers I run.

This post has been edited by x3r: 17 January 2013 - 09:28 AM


#4 User is offline   Driller Icon

  •   community admin   
  • Account: driller
  • Main tag: uJ|
  • Country:
  • Joined: 28-February 10
  • Posts: 1,001

Posted 17 January 2013 - 11:18 AM

I dont know such things but i have heard the last years a few times that when jumpservers crashes or cant load some maps properly, they often leave 64 for 32bit and then all works fine.

#5 User is offline   don Icon

  • Account: don
  • Main tag: GlaD-
  • Joined: 28-February 10
  • Posts: 2,640

Posted 18 January 2013 - 06:48 AM

View Postx3r, on 17 January 2013 - 09:25 AM, said:

Thanks don, so I should be allocating cores to each server so I know that they are utilizing all the cores available to me?



Can you or an FS team member confirm that the 64bit server application is actually faster than 32bit and I should use the 64bit server?

I am not sure if you are talking about 64bit in general or Quake3-UrT-Ded.x86_64

I would like to use the most efficient architecture for the servers I run.


Is UrT using an entire core? I've heard figures of 20-30% of 1 core for 14 player servers. UrT is a pretty finicky game, though; I'd advise 1 instance of UrT per CPU for minimal lag/dropped hits. If you're running a pub, 1 instance per core is probably safe. Renting servers, just load 'em up until you're getting complaints. lol.



64 bit code in general runs a tiny bit faster than "equivalent" 32 bit code. I'm sure UrT's 64 bit code isn't optimal lol. I dunno who FS has for coding these days, but if the 4.2 installer is any indication...yeah. 64 bit quake 3 is kind of a hack job at the best of times anyway. Like driller said, people have more than a few issues with 64 bit. I notice most GSPs use 32 bit.

Only garbage CPUs like the original Itanium have a penalty for running 32 bit code. I'd say the rule is as follows:
For modern CPUs, If you have a choice between well-optimized 32 bit and well-optimized 64 bit, go for the 64 bit. If you have the choice between well-optimized 32 bit and questionable 64 bit code, go for 32 bit, unless you need more address space (not the case for UrT).
GlaD-don
Past teams:
Partners in Terror | The Dark | Team Terror | Noobs Gone Wild | Xor | Blight Gaming | Area 51 Gaming | Team Lzuruha | Besserman6 | Console | No Care Bears | Zing | Pro5 | American Idols | Team Canada | No Defiance | Unlimited Gaming
<3 to the people who built and sustained the North American competitive community over the years. xil, r, vex, icu, bos, .e, '`|v|~, iF, -x-, ill, un, xor, glad & all the rest. thanks for the games

bullet_loaderAdvertisement

#6 User is offline   Nitro Icon

  •   QA member   
  • Account: nitro
  • Main tag: |P|
  • Country:
  • Joined: 15-March 10
  • Posts: 1,133

Posted 20 January 2013 - 03:16 AM

From this post and your other post I have a few things to note.

1. You are using a VPS to host game servers, this means you share the processor (and other hardware) with other customers. You cannot physically allocate cores, and allocating "virtual cores" could make things perform worse.

2. You are running the 64bit server binary which is not recommended and the 32bit version is more stable and efficient anyways.

3. You have configured the server with 512 Hunkmegs, which is not needed, optimal setting would be 128, but not higher than 256.

4. The server binaries to my knowledge are single threaded, there for higher clock frequencies will trump multiple cores.

5. I did not see you mention your server network connection. Depending on its speed and number of shared users may also affect your servers performance.

6. If you are new to urt servers, you may want to check out these threads here (some things may be 4.1 specific):

http://www.urbanterr...r-first-server/
http://www.urbanterr...up-guide-tools/
http://www.urbanterr...ic/27825-drdos/
Lian Li pc-o11dw Der 8auer Edition · Gigabyte x570 Aorus Xtreme · AMD Ryzen 9 5950x 16-Core
32GB DDR4 3800MHz CL16 · 2x 1TB Samsung NVMe RAID 0 · 16GB Radeon RX 6900XT Liquid Cooled

#7 User is offline   x3r Icon

  • Account: x3r
  • Main tag: 24/7.
  • Country:
  • Joined: 04-December 12
  • Posts: 122

Posted 20 January 2013 - 07:44 AM

View Postdon, on 18 January 2013 - 06:48 AM, said:

Is UrT using an entire core? I've heard figures of 20-30% of 1 core for 14 player servers. UrT is a pretty finicky game, though; I'd advise 1 instance of UrT per CPU for minimal lag/dropped hits. If you're running a pub, 1 instance per core is probably safe. Renting servers, just load 'em up until you're getting complaints. lol.


I now have 2 servers with a dedicated core on each and 6 jump servers on another core (no lag yet :p).

With 16 players + 4bots it was at 20% CPU, MIGHT be able to host a 64 slot on this, I wouldn't mind trying this, but I don't know if it will handle it or if the Error: Cl_GetServerCommand is fixed, I might just give it a go LOL.

View Postdon, on 18 January 2013 - 06:48 AM, said:

64 bit code in general runs a tiny bit faster than "equivalent" 32 bit code. I'm sure UrT's 64 bit code isn't optimal lol. I dunno who FS has for coding these days, but if the 4.2 installer is any indication...yeah. 64 bit quake 3 is kind of a hack job at the best of times anyway. Like driller said, people have more than a few issues with 64 bit. I notice most GSPs use 32 bit.

Only garbage CPUs like the original Itanium have a penalty for running 32 bit code. I'd say the rule is as follows:
For modern CPUs, If you have a choice between well-optimized 32 bit and well-optimized 64 bit, go for the 64 bit. If you have the choice between well-optimized 32 bit and questionable 64 bit code, go for 32 bit, unless you need more address space (not the case for UrT).


Thanks Driller for pointing that out and don for putting it into perspective, I will continue to use 32bit

View PostNitro, on 20 January 2013 - 03:16 AM, said:

1. You are using a VPS to host game servers, this means you share the processor (and other hardware) with other customers. You cannot physically allocate cores, and allocating "virtual cores" could make things perform worse.


On the VPS, I have dedicated cores, so it is a lot like a small dedicated server. I have set the affinity and it works.

View PostNitro, on 20 January 2013 - 03:16 AM, said:

2. You are running the 64bit server binary which is not recommended and the 32bit version is more stable and efficient anyways.


I am running 32bit, I read your server thread a while ago, and you said 32bit was recommend :)

View PostNitro, on 20 January 2013 - 03:16 AM, said:

3. You have configured the server with 512 Hunkmegs, which is not needed, optimal setting would be 128, but not higher than 256.


This was a long time ago, when I was hosting servers on my home connection, I now run 192mb

View PostNitro, on 20 January 2013 - 03:16 AM, said:

5. I did not see you mention your server network connection. Depending on its speed and number of shared users may also affect your servers performance.


The servers have a 1000mB/s connection.. way more than enough to run a urt server or 20

Thanks for all the help don, Driller and Nitro :)

I will post the script I used to set affinity in another post (this one is getting long) - it is a modified shell script of Nitro's one.

#8 User is offline   x3r Icon

  • Account: x3r
  • Main tag: 24/7.
  • Country:
  • Joined: 04-December 12
  • Posts: 122

Posted 20 January 2013 - 07:51 AM

Shell script to start a server and allocate a core for the server to use.

Tested on CentOS 6.3 64bit

Hope this helps someone.

note: This script must be run under a user that has permission to use taskset.

Thanks to Nitro, this script was modified from Nitro's server start / stop scripts.

start.sh

Quote

#!/bin/bash

# change to the script's directory
cd $(dirname $0)

# start the server in the background
./Quake3-UrT-Ded.i386 +set q3urt4 +set fs_basepath /home/<USERNAME>/UrbanTerror42 +set fs_homepath /home/<USERNAME>/UrbanTerror42 +set dedicated 2 +set net_ip <YOUR_SERVER_IP> +set net_port <YOUR_SERVER_PORT> +set com_hunkmegs 192 +exec server.cfg &

# set affinity (-c = number of the core, -p = the process ID)
# note: first core = 0
# note2: all options must be called before any values are given to them
taskset -c -p 0 $!

# write the pid file
echo $! > server.pid


stop.sh

Quote

#!/bin/bash

# change to the script's directory
cd $(dirname $0)

# kill, using the pid file
kill $(cat server.pid)

# tidy up
rm server.pid

This post has been edited by x3r: 20 January 2013 - 09:22 AM


#9 User is offline   Nitro Icon

  •   QA member   
  • Account: nitro
  • Main tag: |P|
  • Country:
  • Joined: 15-March 10
  • Posts: 1,133

Posted 20 January 2013 - 01:31 PM

That script I posted was an old one that I had on me at the time, I use a slightly different script and I posted it here before. I use it in conjunction with rambetter's server binaries.

Quote


#!/bin/bash

#server settings
ip="83.142.230.13"
port="27960"
name="urt_ctf"
mod="q3ut4"
base="/home/nitro/urt_ctf"
home="/home/nitro/urt_ctf"

#Remove any unwanted config files that were left behind.
rm botlib.log
rm q3ut4/q3config_server.cfg

# change to the script's directory
cd $(dirname $0)

# start the server under screen
screen -AdmS $name ./ioq3ded-UrT.i386 \
+exec ctf_server.cfg \
+set fs_game $mod \
+set fs_basepath $base \
+set fs_homepath $home \
+set dedicated "2" \
+set com_hunkmegs "128" \
+set sv_sanitizeNames "1" \
+set sv_userinfoFloodProtect "1" \
+set sv_floodprotect "1" \
+set sv_loadOnlyNeededPaks "1" \
+set rconpassword "password" \
+set sv_privatePassword "password" \
+set sv_ip2locPassword "password" \
+set net_port $port
#+set net_ip $ip
# net_ip is disabed to allow incoming connections from localhost
# if you enable net_ip option remember to add "\" to the end of
# the previous line.

# write the pid file
echo | screen -list | grep $name | cut -f1 -d'.' | sed 's/\W//g' > urt.pid

# Remove any unwanted files that server creates after starting.
rm q3ut4/q3config_server.cfg

# all done



Lian Li pc-o11dw Der 8auer Edition · Gigabyte x570 Aorus Xtreme · AMD Ryzen 9 5950x 16-Core
32GB DDR4 3800MHz CL16 · 2x 1TB Samsung NVMe RAID 0 · 16GB Radeon RX 6900XT Liquid Cooled

#10 User is offline   x3r Icon

  • Account: x3r
  • Main tag: 24/7.
  • Country:
  • Joined: 04-December 12
  • Posts: 122

Posted 21 January 2013 - 08:08 PM

Quote

That script I posted was an old one that I had on me at the time, I use a slightly different script and I posted it here before. I use it in conjunction with rambetter's server binaries.


I like how you used a screen, that would be handy :)

I am guessing a lot of those server settings are only for Rambetter's binaries?

  • (2 Pages)
  • +
  • 1
  • 2


Fast Reply

  

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users

Sponsored link
https://www.urbanterror.info/members/donate/


Copyright © 1999-2024 Frozensand Games Limited  |  All rights reserved  |  Urban Terror™ and FrozenSand™ are trademarks of Frozensand Games Limited

Frozensand Games is a Limited company registered in England and Wales. Company Reg No: 10343942