You can monitor these performance counters while you're running this test. It'll give you an idea of what your practical limits are as you increase the concurrency:
- System \ "Processor Queue Length".
Processor Queue Length is the number
of threads in the processor queue.
Unlike the disk counters, this counter
counters, this counter shows ready
threads only, not threads that are
running. There is a single queue for
processor time even on computers with
multiple processors. Therefore, if a
computer has multiple processors, you
need to divide this value by the
number of processors servicing the
workload. A sustained processor queue
of less than 10 threads per processor
is normally acceptable, dependent of
the workload.
This is similar to the Unix load average, in that it indicates threads waiting to execute. This is not the same as CPU utilization %, which only tells you how much time is spent working vs. idling.
- System \ "Context Switches/sec".
Context Switches/sec is the combined
rate at which all processors on the
computer are switched from one thread
to another. Context switches occur
when a running thread voluntarily
relinquishes the processor, is
preempted by a higher priority ready
thread, or switches between user-mode
and privileged (kernel) mode to use an
Executive or subsystem service. It is
the sum of Thread\Context
Switches/sec for all threads running
on all processors in the computer and
is measured in numbers of switches.
There are context switch counters on
the System and Thread objects. This
counter displays the difference
between the values observed in the
last two samples, divided by the
duration of the sample interval.
This number is relative to each system. But, with some benchmarking you can use this counter to correlate to the upper limits of your processing capacity.