> -----Ursprüngliche Nachricht-----
> Von: Stefan Eissing [mailto:[email protected]]
> Gesendet: Donnerstag, 1. Februar 2018 16:15
> An: [email protected]
> Betreff: Re: svn commit: r1822878 - in /httpd/httpd/trunk/modules:
> http2/h2_config.c http2/h2_config.h http2/h2_conn.c http2/mod_http2.c
> http2/mod_http2.h proxy/config.m4 proxy/proxy_util.c
>
>
>
> > Am 01.02.2018 um 16:11 schrieb Yann Ylavic <[email protected]>:
> >
> > On Thu, Feb 1, 2018 at 3:58 PM, [email protected]
> <[email protected]> wrote:
> >> Hmm...
> >>
> >>> Am 01.02.2018 um 15:42 schrieb [email protected]:
> >>>
> >>> + /*
> >>> + * When mod_http2 is loaded we might have more processing
> threads
> >>> + * since it has it's own pool of processing threads.
> >>> + */
> >>> + ap_mpm_query(AP_MPMQ_MAX_THREADS, &max_threads);
> >>> + if (have_get_h2_num_workers) {
> >>> + get_h2_num_workers(s, &minw, &maxw);
> >>> + if (max_threads < maxw) {
> >>> + max_threads = maxw;
> >>> + }
> >>> + }
> >>
> >> Is this what you want? I think the max number of threads
> >> that a proxy worker may be active in is:
> >>
> >> (max_threads-1) + maxw
> >
> > The max number of connections a proxy worker might have to handle
> > simultaneously is the maximum number of threads requesting one at the
> > same time.
> >
> > The default for minw (ThreadsPerChild) and the doc about H2MaxWorkers
> > saying "This directive sets the maximum number of worker threads to
> > spawn per child process for HTTP/2 processing" suggested (to me) that
> > H2MaxWorkers already included ThreadsPerChild.
> > But if it should be "(max_threads-1) + maxw" per above, well, I trust
> you ;)
> >
> >>
> >> with a single HTTP/2 connection, running maxw streams in
> >> parallel over proxy?
> >
> > Can't each stream by proxied?
>
> Maybe I am confused, but I see the max at
>
> n-1 HTTP/1.1 connections with requests of the same proxy
> 1 HTTP/2 connection,
> with m streams in parallel over the same proxy
>
> With current implementation, the limits are:
> n <= ThreadsPerChild
> m <= maxw
>
> or?
This is my understanding as well. So something like:
Index: proxy_util.c
===================================================================
--- proxy_util.c (revision 1822880)
+++ proxy_util.c (working copy)
@@ -1850,9 +1850,7 @@
get_h2_num_workers = APR_RETRIEVE_OPTIONAL_FN(http2_get_num_workers);
if (get_h2_num_workers) {
get_h2_num_workers(s, &minw, &maxw);
- if (max_threads < maxw) {
- max_threads = maxw;
- }
+ max_threads = max_threads - 1 + maxw;
}
if (max_threads > 1) {
/* Default hmax is max_threads to scale with the load and never
Regards
Rüdiger