Jump to content
Sign in to follow this  
VictorFarbau

Finally - Arma is using 2 CPUs

Recommended Posts

Since my dedicated server was down today I had to try this (using 1.08):

Started Arma.exe and ArmaServer.exe on the same machine. That worked well. Then I set the CPU affinity of arma.exe to CPU 0 and arma_server.exe to CPU 1.

Started "Seize the base" and played a nice long coop mission. Both CPUs used 70-90% all the time, memory consumption in total was 1.3GB (got 2GB). A very nice way to use the potential of your dual core machine and circumvent the perfomance limitations of running a non-dedicated server.

yay.gif

The odd thing was that I still had some lag and AI soldiers were partially jumping around. You would think this shouldn't occur with a ping <0ms (localhost). But it does. wow_o.gif

Cheers,

Victor

Share this post


Link to post
Share on other sites

The lag you are getting might be due to the game hitting the hard drive to load in objects or other data. If both the server and client hit at the same time then you will get lag.

Share this post


Link to post
Share on other sites

This is a neat trick that I used to do in my il2 days. Having a dedicated server machine is still preferable, though.

Share this post


Link to post
Share on other sites

Nothing New :P But you might resolve the jumping etc by toying with the bandwidth settings, afaik they are pretty narrowly setup per default.

Share this post


Link to post
Share on other sites

@Sickboy, waddya mean "nothing new"? smile_o.gif I think I discovered a live-changing concept!!!

Anyways, I was just surprised how well the CPU load balancing works with both server and client running.

@Nutty, I am not convinced about the lag. It is the same lag that I have when I use my dedi server in my local LAN (100mbit) or even server on the Internet. There's always the same amount of lag. Maybe it really is due to less-than-optimal bandwidth settings on the server side.

Victor

Share this post


Link to post
Share on other sites
@Sickboy, waddya mean "nothing new"? smile_o.gif I think I discovered a live-changing concept!!!

Anyways, I was just surprised how well the CPU load balancing works with both server and client running.

A life changing concept? smile_o.gif Ok, well im happy that you perceive it this way mate, for me it's nothing more than logics wink_o.gif)

I think ur method is preferred in any case when having a dualcore and wanting to run a server. I think the ingame server is more heavy as it's limited together with the game to 1 cpu smile_o.gif

But In general it might be wise to put the dedicated server on "Low" priority to certainly leave cpu %% available to background apps and other stuff smile_o.gif

Share this post


Link to post
Share on other sites

Ah no worries about CPU priority, there's still plenty of latency time available for bg processes.

In fact the only life-changing insight to me is that you can run both server and client in parallel on the same unit. Was that also possible in OFP? I don't recall; I just thought you can't do it. Now I know better.

Victor

Share this post


Link to post
Share on other sites
In fact the only life-changing insight to me is that you can run both server and client in parallel on the same unit.

Was that also possible in OFP?

Thats possible with any software which consist of two seperated client and server processes.

Share this post


Link to post
Share on other sites

This method is common among mission makers to test their Missions on a dedicated server if they dont have a second PC at home, was also done in OFP.

Share this post


Link to post
Share on other sites

Speaking of dual CPU and quad CPU...

Is there a way of setting the CPU affinity automatically instead of going via task manager?

What I am trying to say is, start server running on CPU0 and start the game running on CPU3 without the use of task manager or third party applications?

I made a search on the net and various forums, but it seems it is not the case?

Share this post


Link to post
Share on other sites
Speaking of dual CPU and quad CPU...

Is there a way of setting the CPU affinity automatically instead of going via task manager?

What I am trying to say is, start server running on CPU0 and start the game running on CPU3 without the use of task manager or third party applications?

I made a search on the net and various forums, but it seems it is not the case?

in a dos command prompt: start /?

Quote[/b] ]Starts a separate window to run a specified program or command.

START ["title"] [/D path] [/i] [/MIN] [/MAX] [/sEPARATE | /SHARED]

[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]

[/AFFINITY <hex affinity>] [/WAIT] [/b] [command/program]

[parameters]

"title" Title to display in window title bar.

path Starting directory

B Start application without creating a new window. The

application has ^C handling ignored. Unless the application

enables ^C processing, ^Break is the only way to interrupt

the application

I The new environment will be the original environment passed

to the cmd.exe and not the current environment.

MIN Start window minimized

MAX Start window maximized

SEPARATE Start 16-bit Windows program in separate memory space

SHARED Start 16-bit Windows program in shared memory space

LOW Start application in the IDLE priority class

NORMAL Start application in the NORMAL priority class

HIGH Start application in the HIGH priority class

REALTIME Start application in the REALTIME priority class

If Command Extensions are enabled, external command invocation

through the command line or the START command changes as follows:

non-executable files may be invoked through their file association just

by typing the name of the file as a command. (e.g. WORD.DOC would

launch the application associated with the .DOC file extension).

See the ASSOC and FTYPE commands for how to create these

associations from within a command script.

When executing an application that is a 32-bit GUI application, CMD.EXE

does not wait for the application to terminate before returning to

the command prompt. This new behavior does NOT occur if executing

within a command script.

When executing a command line whose first token is the string "CMD "

without an extension or path qualifier, then "CMD" is replaced with

the value of the COMSPEC variable. This prevents picking up CMD.EXE

from the current directory.

When executing a command line whose first token does NOT contain an

extension, then CMD.EXE uses the value of the PATHEXT

environment variable to determine which extensions to look for

and in what order. The default value for the PATHEXT variable

is:

.COM;.EXE;.BAT;.CMD

Notice the syntax is the same as the PATH variable, with

semicolons separating the different elements.

When searching for an executable, if there is no match on any extension,

then looks to see if the name matches a directory name. If it does, the

START command launches the Explorer on that path. If done from the

command line, it is the equivalent to doing a CD /D to that path.

Quote[/b] ]Ah no worries about CPU priority, there's still plenty of latency time available for bg processes.
Sure mate, but that very much depends on what ur testing and playing, to make sure you don't lag ur system in any case, it IS supposedly a good idea to put at least one of the processes on a lower priority.

Share this post


Link to post
Share on other sites

I believe this switch has only been introduced in Windows Vista. There is no such switch in XP-SP2 available. There you indeed need to use 3rd party tools (couple of them available).

Regards,

Victor

Share this post


Link to post
Share on other sites

It is actuly Bad to run a dedicated server on both cpu Set it just to use one.

Share this post


Link to post
Share on other sites

I've tested the #cpu's/cores used on this 2 cpu 4 core system.

The server is set to run on cpu#1-core2 which stays at 100% while playing on it.

If I add cpu0 along w/cpu1..of 1 cpu (set affinity) while server is under load, all it does is switch the load to cpu0.

Now the odd thing is..if I pick all 4 cores, the load spreads out to all of them...anywhere from 16%-56% each, but core #3 (cpu #2) seems to use the most.

And I'm testing this while playing on the same box. whistle.gif

Pic

Share this post


Link to post
Share on other sites

the server process will allway shave only thread and therefor it will allways only be on 1 cpu at a time.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×