Dave, Does this mean 1000 concurrent threads ? How many processors do you have ? How many servers ? I suppose, that with so many threads latency of every operation increases, try to get latency of 1000xSystem.out.println instead of httpClient.execute(httpget, context); and send results comparison here. Please send how much latency increases now ? So or so, very interesting case.
BR Jakub On Wed, Jul 10, 2013 at 3:49 PM, Dave Johnston <[email protected] > wrote: > Hi, > I've been trying to execute a large volume of transactions to simulate > real traffic using the httpclient. I'm trying to create 1000 concurrent > connections, that each perform 10 requests per second. i.e. 10000 > transactions per second. > > I've based my code on the multi-threaded example: > > http://hc.apache.org/httpcomponents-client-ga/httpclient/examples/org/apache/http/examples/client/ClientMultiThreadedExecution.java > > I've increased the number of connections allowed per route to 1000 and > have attempted to measure latency by doing this: > > long currentTime = System.currentTimeMillis(); > HttpResponse response = httpClient.execute(httpget, context); > long executionTime = System.currentTimeMillis(); > > System.out.printf("ID [%d] Executed in %d milliseconds\n", id, > (executionTime-currentTime)); > > It looks like the latency increases as the number of connections go up, > although I would have hoped to see it stay the same (I've used other load > test tools to execute 20K transactions with steady latency). > > Whats the best approach for writing an application that behaves this way? > Is the standard PoolingClientConnectionManager with multiple threads the > way to go? > > > > >
