httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steffen <i...@apachelounge.com>
Subject RE: No H2 Window updates!
Date Sat, 28 Nov 2015 09:44:44 GMT

I saw issues on  boxes with the default  of number of concurrent 
streams.

Lowering the default 100 value of the directive  H2MaxSessionStreams 
solved it.




On Saturday 28/11/2015 at 10:29, Bert Huijben  wrote:
>
>
>>
>> -----Original Message-----
>> From: Jan Ehrhardt [mailto:phpdev@ehrhardt.nl]
>> Sent: vrijdag 27 november 2015 22:35
>> To: dev@httpd.apache.org
>> Subject: Re: No H2 Window updates!
>>
>> Bert Huijben in gmane.comp.apache.devel (Fri, 27 Nov 2015 20:04:14 
>> +0100):
>>>
>>> Well. it is not a regression, so can it be a show stopper? ?.
>>> But I would like to see this fixed.
>>
>> Curious: are you still testing this on Windows? If so, I guess you
>> compiled your own httpd. I tried to do the same a couple of days ago, 
>> but
>> ran into problems with Drupal7: the admin menu sometimes showed and
>> sometimes did not show at all. I could not lay my finger on what went
>> wrong.
>>
>> Because I did not have the problems with Apachelounge's 2.4.18-dev at
>> https://www.apachelounge.com/viewtopic.php?t=6842 I checked out an
>> earlier
>> revision of the alpha branch:
>> | svn co -r 1715218
>> http://svn.apache.org/repos/asf/httpd/httpd/branches/2.4-http2-alpha
>>
>> That revision compiled into a httpd with no problems. I am waiting now 
>> for
>> Stefan Eissing to finish his work on mod_http2.
>>
>> BTW: did you switch to nghttp2 1.5.0 already?
>
> Hi Jan,
>
> No I didn't switch to nghttp2 1.5.0 yet. Thanks for reminding me to 
> check if
> there is a new version :)
>
> The code I wrote for Serf code doesn't use nghttp2... After reading 
> the
> specs I didn't think building on nghttp2 would win me a lot of time, 
> and
> having multiple separate implementations of the same specification/RFC 
> in
> the open source world would be a good thing. (Almost every recent H2 
> project
> I see builds on top of nghttp2)
>
>
> It is entirely possible that you hit the same problem as I did. (I'm
> actually very surprised that I didn't hit this problem much earlier 
> on.
> There is just one test in the Subversion testsuite that sends more 
> than 64
> Kbyte of request bodies over a single connection... I'll fix that)
>
>
> But back to that problem... There is an easy workaround, which I used 
> on the
> other side until two days ago: just making the H2 default window big 
> enough
> that you never get near it.
>
> Just configure 'H2WindowSize' to be something like 1 GB and you 
> probably
> never have to think about window updates. (The max allowed value is 2 
> GB -1)
>
>
> This windowing allows the server to throttle incoming DATA from the 
> other
> side, so servers like httpd really want to tune this dynamically. Note 
> that
> headers and new requests are not counted to this limit, so on the 
> server
> side it is really just request bodies... (Technically data on already 
> closed
> streams should be counted too... but that is an implementation 
> detail).
>
>
> I remember reading that Stefan Eissing is away for some time ('Re: 
> NOTICE:
> Intent to T&R 2.4.18' thread), so perhaps I should spend some time 
> looking
> at this myself.
>
>
> Disabling that line that explicitly disables Window updates from the 
> nghttp
> library, could be an easy fix... but it might require some 
> compensating
> actions, like lowering the number of supported concurrent streams if 
> that
> comment is still up to date. Allowing up to 100 concurrent streams per
> connection could be a bit high, although this really depends on what 
> these
> connections are used for. I don't know how to test against that 'gets
> flooded' problem though, as that isn't measurable by itself.
>
>
>
> And yes I build my own binaries for Subversion and all its 
> dependencies...
> All my scripting that I use for that is in
> https://sharpsvn.open.collab.net/svn/sharpsvn/trunk/imports (username
> 'guest', no password). The default build doesn't build httpd, but if 
> you use
> a Subversion dev build (copy dev-default.build to a directory one 
> level
> above imports) it builds httpd. My scripts should work for VS2005 upto 
> 2015
> and require nant, and some python and perl versions. Everything else 
> is
> built from the scripts.
>
> These same scripts drive the Subversion and Serf win32 buildbots that 
> I
> maintain on ci.apache.org... and they also deliver the SharpSvn and 
> 'Slik
> Subversion Client' binaries.
> (I currently explicitly don't deliver httpd itself or anything that 
> depends
> on that though)
>
>
> Thanks [ / Groeten ;-)],
>
> Bert
>
>>
>> --
>> Jan
>
>


Mime
View raw message