> -----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

Reply via email to