summaryrefslogtreecommitdiff
path: root/changes-entries
diff options
context:
space:
mode:
authorYann Ylavic <ylavic@apache.org>2022-04-28 13:57:15 +0000
committerYann Ylavic <ylavic@apache.org>2022-04-28 13:57:15 +0000
commit57e8cb584687cef79a61a8c47f5d834f46d10d28 (patch)
treeb2151a80392cb84f4e35a53ae2ee22654553368a /changes-entries
parentcc894406d8e2c2afb79269dcb6190c28837fc142 (diff)
downloadhttpd-57e8cb584687cef79a61a8c47f5d834f46d10d28.tar.gz
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.txt2
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]