httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Eissing <stefan.eiss...@greenbytes.de>
Subject Re: HTTP/2 in massive file transfers
Date Tue, 08 Mar 2016 13:34:05 GMT
José,

there is a newer version 2.4.18 of Apache httpd which is be better suited
for performance testing. 2.4.17 was the first release of the module and much
has happened since.

Test throughput here on localhost, the limit of http/1.1 and http/2 on
Apache are several gigabytes/s, without any super special configuration.

It is interesting to know how latency affects this and I would like to
see results on this.

As to the calibration of your test client, I recommend getting alternate
figures from servers such has h2o and nghttpd and also using other clients
like the h2load which is part of the nghttp2 distribution. That way, you
can check where difference in client implementation might affect your
performance results.

Cheers,

  Stefan

> Am 08.03.2016 um 14:05 schrieb Joshua Marantz <jmarantz@google.com.INVALID>:
> 
> That's a great benchmark, José.  A couple of questions:
> 1. When using http 1.1, is your connection over SSL?  I assume that your h2
> connection is over ssl, and that might account for a speed penalty.
> 2. Have you tried this on other h2 implementations (h2o, nginx)?
> 3. Can you take some other data points?  If you just have 100 shards rather
> than 1000, how does that affect the results?
> 4. Can you also vary the size of each shard?
> 
> Publishing your results in a more comprehensive study would be quite
> valuable.
> 
> -Josh
> 
> On Tue, Mar 8, 2016 at 6:33 AM, Molina <jose.molina@cern.ch> wrote:
> 
>> Hello,
>> 
>> I’m testing the HTTP/2 performance to add support to the software I’m
>> working for. My benchmark consist on an apache 2.4.17 server with the
>> following http2-related configuration:
>> 
>> LoadModule http2_module modules/mod_http2.so
>> <IfModule http2_module>
>>  Protocols h2c http/1.1
>>  H2WindowSize 1460000000
>>  H2StreamMaxMemSize 1460000000
>>  H2MinWorkers 8
>>  H2Direct on
>>  LogLevel http2:info
>>  H2MaxSessionStreams 100
>>  H2SessionExtraFiles 1000
>>  H2MaxWorkers 100
>> </IfModule>
>> 
>> The rest is simply the default apache configuration.
>> My client is a C application that downloads 1024 files of exactly 1MiB
>> each, so totally 1GB. When performing the test with normal HTTP/1.1 the
>> download speed is around 20MiB/s, while when using HTTP/2 is 1.5MiB/s. The
>> client uses exactly one  multiplexed connection and works as expected
>> Lastly, the client and server are located in center Europe and center USA
>> respectively to increase the impact of opening many HTTP/1.1 connections
>> with such a high physical distance due to latency.
>> 
>> I tried to increase the Linux window size, as well as the TCP buffer to
>> increase the download speed, but without success so far.
>> 
>> Is there some configuration parameter I’m missing to make it perform
>> better? Or perhaps the module itself needs an special configuration for
>> such a use case?
>> 
>> Thanks a lot in advance. Best regards,
>> José Molina
>> 
>> 


Mime
View raw message