[cvsnt] multi core/multi cpu scaling

Steve Trotman strotman at renlearn.ca
Thu Jan 17 13:46:41 GMT 2008

Thank you! 

-----Original Message-----
From: Arthur Barrett [mailto:arthur.barrett at march-hare.com] 
Sent: January 16, 2008 2:23 PM
To: Steve Trotman; cvsnt at cvsnt.org
Subject: RE: [cvsnt] multi core/multi cpu scaling


> Has anyone done any testing, formal or informal, regarding how 
> effectively CVSNT uses multiple cpu cores?


> Basically I am interested in knowing whether a higher clocked single 
> or dual core cpu would be preferable to a lower clocked quad core/8 
> way system.  I do know it spawns many instances of itself during 
> operation.

CVSNT is not multi threaded - and generally as a rule, the point of
multi-core CPU's is to handle multi threaded applications better -
however there are caveats.

Unlike Oracle Server and Apache Server, CVSNT server spawns a unique
process for each client connection (Oracle and Apache starts a new
thread) - this places a lot of the 'load' of scheduling these to the cpu
to the operating system (preemtive multitasking).  Therefore CVSNT (more
than apache and oracle) will perform dramatically differently depending
on how well the operating system does pre-emptive multi tasking and new
process creation.

If you have a dual core CPU on windows and look in the task manager you
will see each core listed as a CPU - which is complete rubbish - a core
is not a CPU.  However a CPU can be as poor a performer (or worse) than
a core depending on the motherboard design (and depending on the chip
design).  It all comes down to whether each core/cpu can get the data it
needs from available memory/registers so that it can execute the next
instruction.  The compilers we use should help with this, however we do
not currently specifically test for this.

What we can assure you of is that we've done a lot of performance
testing and found that the CPU is rarely the bit that causes
'performance' problems in a CVSNT server - almost always the system is
waiting for IO to complete.  I recommend that you invest in fast disks
with plenty of BBWC, plenty of memory and an operating system that has
good pre-emptive multi tasking stats, and can create processes with
little overhead way before you start thinking of adding cores.

The other reason why we haven't done a lot of stats on
multi-core/SMP/SMT performance is that different multi-core CPU's are
drastically different (sparc/intel-xeon/intel-celeron/amd and
intel-itanium) in their wiring making some (eg: intel-celeron) almost
pointless, and making the whole exercise quite difficult (and

Instead we concentrate primarily on 'macro' changes that we can make to
the product to dramatically alter 'how' CVSNT works so that the
processors are actually doing less.



More information about the cvsnt mailing list