diff options
author | Stefan Fritsch <sf@apache.org> | 2011-06-19 14:23:42 +0200 |
---|---|---|
committer | Stefan Fritsch <sf@apache.org> | 2011-06-19 14:23:42 +0200 |
commit | 18fdb9d7119da5e2d521eb8307b73e1f482b15c6 (patch) | |
tree | d8b011ac213b3fc82d990a0ec98ea070d9e38fc2 /include/http_connection.h | |
parent | update transformation (diff) | |
download | apache2-18fdb9d7119da5e2d521eb8307b73e1f482b15c6.tar.xz apache2-18fdb9d7119da5e2d521eb8307b73e1f482b15c6.zip |
Some improvements for handling of many connections for MPM event:
- Process lingering close asynchronously instead of tying up worker threads
(based on patch by Jeff Trawick).
- If the number of connections of a process is above
threads_per_child + WORKER_OVERCOMMIT * (idle_workers - 1)
(WORKER_OVERCOMMIT is fixed at 2, at the moment), or if all workers are busy,
don't accept new connections in that process. Such a dynamic connection limit
is necessary because we may have both async and non-async (ssl) connections.
WORKER_OVERCOMMIT should be a config option.
- Don't count idle workers of not-accepting processes against MinSpareThreads,
so that the parent will spawn new processes when necessary.
- If we receive a keep-alive request while all workers are busy, don't block
but close the connection immediately so that the client will re-connect to a
different process.
Related changes:
- Log what is going on at trace loglevels.
- Remove the bypass_push poll type flag, this code cannot be hit anymore
(if it ever could?).
- Add some macro helpers for dealing with timeout queues.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1137358 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'include/http_connection.h')
-rw-r--r-- | include/http_connection.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/http_connection.h b/include/http_connection.h index 37437cfd5a..d5bca043bb 100644 --- a/include/http_connection.h +++ b/include/http_connection.h @@ -70,7 +70,9 @@ AP_CORE_DECLARE(void) ap_flush_conn(conn_rec *c); */ AP_DECLARE(void) ap_lingering_close(conn_rec *c); - /* Hooks */ +AP_DECLARE(int) ap_start_lingering_close(conn_rec *c); + +/* Hooks */ /** * create_connection is a RUN_FIRST hook which allows modules to create * connections. In general, you should not install filters with the |