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.mol...@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 > >