Hello, Sorry, but the problem don't seems resolve.
Today, I try a load test on a Content Delivery Network (CDN) with HC3.1 vs HC4 with last JMeter trunk (r1173449). My script : Test only static resources (gif, png, jpeg) with direct HTTP Request 100 users Ramp up : 100 secs Duration test : 300 secs (5min) Each iteration execute 39 HTTP requests HTTP requests : Keep Alive true I have 2 issues (on 8 same tests: 4 HC3.1 and 4 HC4.1) : *_Issue 1_* With HC 3.1 : always no error With HC 4.1 : always some errors at the beginning of load test Stack trace (on view result tree: response data) is : org.apache.http.NoHttpResponseException: The target server failed to respond at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:101) at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:252) at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:281) at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:247) at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:219) at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:298) at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125) at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:645) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:464) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754) at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:265) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:62) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1010) at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:996) at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:383) at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:276) at java.lang.Thread.run(Thread.java:722) HC 4 Summariser (begin) : summary + 55 in 2,2s = 24,9/s Avg: 71 Min: 15 Max: 1677 Err: 0 (0,00%) summary + 5027 in 30,0s = 167,5/s Avg: 103 Min: 1 Max: 1816 Err: 14 (0,28%) summary = 5082 in 32,2s = 157,8/s Avg: 103 Min: 1 Max: 1816 Err: 14 (0,28%) summary + 5013 in 31,4s = 159,7/s Avg: 283 Min: 2 Max: 3500 Err: 11 (0,22%) summary = 10095 in 62,2s = 162,3/s Avg: 192 Min: 1 Max: 3500 Err: 25 (0,25%) summary + 5075 in 31,6s = 160,7/s Avg: 449 Min: 37 Max: 7999 Err: 0 (0,00%) summary = 15170 in 92,2s = 164,5/s Avg: 278 Min: 1 Max: 7999 Err: 25 (0,16%) summary + 4984 in 34,8s = 143,2/s Avg: 587 Min: 40 Max: 11028 Err: 0 (0,00%) summary = 20154 in 122,2s = 164,9/s Avg: 355 Min: 1 Max: 11028 Err: 25 (0,12%) */_ Issue 2 :_/* With HC3.1 after ramp up: netstat -tplna|grep java|grep ESTA|wc -l 100 With HC4.1 at beginning and after ramp up : netstat -tplna| grep java | grep ESTA | wc -l 1145 (value change between ~1000-1150) I make a tcp dump and analyze with wireshark. With HC3.1 : 0-42 secs : 43 TCP conversations (inside several HTTP GET and response) With HC4.1 : 0-44 secs : 3011 TCP conversations (inside one HTTP GET and one response) HTTP conversations show Keep-Alive header (HC3 and HC4) I suppose that is a close keep alive connection problem with JMeter. Perhaps 2 issues are linked? Milamber Le 24/08/2011 11:40, sebb a ecrit : > On 24 August 2011 02:43, sebb <seb...@gmail.com> wrote: > >> Looks like HTTPHC4Impl is not reusing HttpClient instances. >> >> It should only create one per thread per unique URL + some other fields. >> >> It seems not to be finding the previously created instances, so it >> creates a new one for every sample. >> Not sure why yet; probably something simple. >> > Very simple. > > The equals() method was returning false if the other object was the > correct type, instead of returning false for the incorrect type. > So the hash keys never matched. > > Nightly builds from r1160957 will have the fix. > > >> However the code does at least seem to be closing the connections at >> end of thread. >> >> On 23 August 2011 17:13, Milamber <milam...@apache.org> wrote: >> >>> [snip] >>> >>>>> I believe is a HTTPClient issue, on close connection? >>>>> (http://www.sunmanagers.org/pipermail/summaries/2006-January/007068.html) >>>>> >>>>> >>>> I think it's more likely to be that JMeter is not tidying up the HC4 >>>> connections properly. >>>> >>>> Are you using Keep-Alive? >>>> >>>> >>> Yes. >>> >>> >>>> Can you reproduce the problem with a simpler test case, e.g. one that >>>> could be run against a local server. >>>> >>>> >>> Yes on my laptop (Debian 6 / 64 bits / openjdk 1.6u18) >>> >>> in attachment JMeter testcase. >>> >>> With HC4 impl: >>> summary = 2590 in 72.4s = 35.8/s Avg: 994 Min: 487 Max: 4806 >>> Err: 0 (0.00%) >>> >>> Stats at ~ 72secs : >>> netstat -tuplna|grep java |wc -l; >>> 1494 >>> netstat -tuplna|grep java|grep ESTA|wc -l; >>> 167 >>> netstat -tplnau|grep java|grep CLOSE_WAIT|wc -l; >>> 1337 >>> >>> >>> With HC3 impl: >>> summary = 4498 in 83.2s = 54.1/s Avg: 448 Min: 246 Max: 2489 >>> Err: 0 (0.00%) >>> >>> Stats at ~83 secs: >>> netstat -tuplna|grep java |wc -l; >>> 61 >>> netstat -tuplna|grep java|grep ESTA|wc -l; >>> 60 >>> netstat -tplnau|grep java|grep CLOSE_WAIT|wc -l; >>> 0 >>> >>> NB: more requests in same time with HC3. >>> NB2: HC3 ESTABLISHED connections is lesser than HC4 (60 users in JMeter >>> scripts) >>> >>> >>> Milamber >>> >>> >> >