views:

18

answers:

1

We have an number of old visual C++ 6 windows services that are currently running on a single server. The problem seems to be that all of the service seem to utilise only a single core. (There are 4 cores)

Isn't the multi core utilisation (on windows server 2003) supposed to be optimised by the OS?

+2  A: 

Nope. As long as each service is single threaded (or uses a single process) all the OS can do is to assign to each service a different core to run it in parallel to the rest of the services. The OS can't parallelize a single thread of execution.

Vinko Vrsalovic
That seems fair but all of the services seem to be assigned to the first core? (The other 3 have < 3% usage)
Carl
@Carl: Are you saying you have a single core with 100% utilization and 3 cores with 3%? What if you add a different CPU heavy process to the mix, do then the other cores start being utilized more?
Vinko Vrsalovic
It seems to hang and wait until the 1st cpu is free again. No change to the other cores
Carl
Vinko Vrsalovic
Yeah. It seems to work fine on our test servers (which are actually 2 quads hyperthreaded) so 16 cores. Just one of those things I suppose. Will update this if I find anything :-)
Carl
@Carl: Maybe you've set CPU affinity on the production server for the services? That could explain the behavior.
Vinko Vrsalovic
Thanks Vinko. I will look into this (the server is at a customer site so will take some time to organise).
Carl

related questions