diff options
author | Yann Ylavic <ylavic@apache.org> | 2022-04-28 15:57:15 +0200 |
---|---|---|
committer | Yann Ylavic <ylavic@apache.org> | 2022-04-28 15:57:15 +0200 |
commit | 57e8cb584687cef79a61a8c47f5d834f46d10d28 (patch) | |
tree | b2151a80392cb84f4e35a53ae2ee22654553368a /changes-entries | |
parent | *) mod_http2: remove unused and insecure code. Fixes PR66037. (diff) | |
download | apache2-57e8cb584687cef79a61a8c47f5d834f46d10d28.tar.xz apache2-57e8cb584687cef79a61a8c47f5d834f46d10d28.zip |
ab: Add the -W option to use worker threads.
This allows for multiple CPUs to handle the load, the number of requests and
concurrency level asked are distributed over the configured number of workers,
allowing for as much parallelism.
On unixes (only for now), -W0 will use all the CPUs available on the system.
To avoid synchronization during runtime, the stats and requests times are
gathered per worker and consolidated at the end of the run before being
printed.
Connection closes, keepalives and errors are now handled in a single place,
namely cleanup_connection(), which takes care of the good/bad state of each
request based on the response fully received or not.
When multiple workers are running, SIGINT is handled by the main thread only
and masked in workers, workers are asked to stop and woken up if waiting in
poll().
A single worker is started first to determine the connectivity with the peer,
if that fails (10 tries) ab will stop early still without starting the other
workers, otherwise the first worker will signal the main thread to start the
others.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1900362 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'changes-entries')
-rw-r--r-- | changes-entries/ab_workers.txt | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/changes-entries/ab_workers.txt b/changes-entries/ab_workers.txt new file mode 100644 index 0000000000..46629b7955 --- /dev/null +++ b/changes-entries/ab_workers.txt @@ -0,0 +1,2 @@ + *) ab: Add the -W option to use worker threads, allowing for multiple CPUs + to handle the load. [Yann Ylavic] |