Threads
Challenger can use threads on operating systems that support them.
When using threads several requests can be handled in parallel. The
main advantage of this is that requests that take a long time to
process will not block the server, and other requests will be served
even if a previous request is still being processed. It is therefore
recommended that you run with threads on all operating systems that
supports it.
However, the speed gained by running with threads is usually
limited. Most requests to a Challenger server take a very short time
to handle, and such requests gain next to nothing by running in
parallel. One exception is pages served over NFS from another
computer. Fetching data over NFS is a slow, blocking operation,
thereby benefiting from being able to run in parallel.
On multi-CPU machines the worst case scenario is that the overhead
for thread synchronization makes the performance worse when using
threads than when not using threads.
The number of threads Challenger will use is configured in the
Global Variables/Number of threads to run variable. To disable threads
altogether use the --without-threads option to the start
-script.
Note that even if Challenger only uses one thread, modules can
create threads for themselves, if they intend to do something that
will take a long time.
|