Hello, I'm seeing reduced performance when trying to use the HttpClient to speak Http-over-SPDY using the SPDY Client. I'm seeing about ~10% reduction in throughput when sending one request a time when compared to using a plain Http connection. This gap increases substantially as I increase the amount of concurrent requests sent through a single HttpClient.
If the SPDY client is sending multiple http requests using a single tcp connection it would explain the increasing gap as the number of concurrent requests increase. I'm just trying to understand if these results are expected or not, especially the differences when servicing a single request.
Edit: Each client's configurations are the same (ex. number of threads for the executor and max connections per destination) The only other difference is that the connectors on the server side; one is an httpSpdyConnector and the other is just a plain httpconnector.
Edit 2: there were inconsistencies influencing the test. Will report back if this continues to be a problem.
Alright so I'm removed the inconsistencies in the test and I'm still seeing less performance with the HttpClient when sending Http over SPDY instead of plain Http. I understood that most of the performance benefits come from reducing the number of round trip, but I didn't really expect a performance loss in the actual round trip. Could someone confirm that the results I'm seeing are expected?
Re: [jetty-users] Reduced Performance with SPDY Client
On Sat, Nov 23, 2013 at 10:39 PM, Nicholas Lun <[hidden email]> wrote:
> Alright so I'm removed the inconsistencies in the test and I'm still seeing
> less performance with the HttpClient when sending Http over SPDY instead of
> plain Http. I understood that most of the performance benefits come from
> reducing the number of round trip, but I didn't really expect a performance
> loss in the actual round trip. Could someone confirm that the results I'm
> seeing are expected?
We are working on improving SPDY's performance, and although the work
is mostly geared towards server performance, the client will benefit
too (it's the same codebase).
HttpClient's HTTP transport has been really fine tuned for performance
because we use it as our primary load test tool.
I'm interested in following up on this. I will be out the first half
of the week to a conference, but meanwhile you have your test code
We did measure SPDY to be vastly better than HTTP when used in
conjunction with browsers, which only allocates 6 HTTP connections.
Measurements with a Java client may really be different depending on
the client configuration and so forth, so a detailed description of
your tests and the code are really important to clearly understand
your use case.
For example, I would expect performance to vary if the client is tuned
for large uploads or for small downloads, etc.
I'll try to follow up on this thread; meanwhile, please file an issue
about this, so we won't forget.