perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Dunlap <J...@lariat.co>
Subject Re: HTTP and MPM support
Date Mon, 28 Jan 2019 21:02:38 GMT
We can give that a try but I'm not sure how much it would help us because
we're already pulling all of our static content directly from Amazon
Cloudfront. The vast majority of our requests are for dynamic content.

On Mon, Jan 28, 2019 at 8:38 PM Mark Blackman <mark@blackmans.org> wrote:

>
>
> On 27 Jan 2019, at 20:13, William A Rowe Jr <wrowe@rowe-clan.net> wrote:
>
> On Fri, Jan 25, 2019 at 11:35 AM John Dunlap <John@lariat.co> wrote:
>
>> I'm in the process of optimizing our web application for performance and
>> one thing that I was really excited to try was mod_http2 because it allows
>> the browser to send multiple requests through the same TCP connection with
>> compressed headers. However, when I enabled it and restarted apache I was
>> greeted with this:
>>
>> [Fri Jan 25 12:30:57.813355 2019] [http2:warn] [pid 10186] AH10034: The
>> mpm module (prefork.c) is not supported by mod_http2. The mpm determines
>> how things are processed in your server. HTTP/2 has more demands in this
>> regard and the currently selected mpm will just not do. This is an advisory
>> warning. Your server will continue to work, but the HTTP/2 protocol will be
>> inactive.
>>
>
> To this question, the answer should be blatantly obvious; http2 doesn't
> simply support multiple requests (connection: keepalive solved that)
> but supports parallel requests. This clearly isn't compatible with any
> single-threaded/single-worker per connection strategy.
>
> A hybrid mod_prefork could be coded to dispatch all worker requests
> across to distinct worker processes for a single connection, but I
> don't anticipate anyone interested in doing such development.
>
>
>> The last time I tried to use either mpm_worker or mpm_event my
>> application was plagued by seemingly random segfaults. Are there any plans
>> to support other MPM's? If not, the benefits of HTTP2 appear to be
>> permanently out of reach for our mod_perl applications and that, honestly,
>> might force us into seriously reevaluating our technology stack. :(
>>
>
> Your compatibility with the worker MPM is likely much stronger than
> with the event MPM; however... all request workers can behave in a
> "free threaded" manner under mod_http2, eliminating the relative
> simplicity of the worker MPM. Working out each and any of these
> specific segfaults occurs is the only way to improve the situation.
>
> For the general mod_perl activity to increase, the Apache Perl Project
> needs active volunteers and contributions. Consider this entire thread
> an open invitation to participate.
>
>
> Given that Perl is single-threaded by design and history and has no
> reliable support for threading, I think that mod_perl and direct http/2
> support in the same instance are probably fundamentally incompatible. I.e.
> if you have 10 perl threads running (each in a single process), then it
> doesn’t matter if you can multiplex 20 http/2 connections, they will all
> just block.  If you’re very attached to mod_perl, you should already be
> using a 2-tier strategy anyway, with N fat mod_perl Apache instances
> handling only HTTP/1.1 requests and a second front-end proxy layer of
> whatever front-end proxy makes sense handling HTTP/2 requests for both
> static and dynamic content requests. This was standard advice 20 years ago
> as far as I recall and is even more prudent now.
>
> - Mark
>


-- 
John Dunlap
*CTO | Lariat *

*Direct:*
*john@lariat.co <john@lariat.co>*

*Customer Service:*
877.268.6667
support@lariat.co

Mime
View raw message