On Wed, 2014-05-21 at 16:38 +0100, Daniel Feist wrote: > You change definitely Improve things :-) unless there are other > changes in 4.3.4-SNAPSHOT that may affect performance?? >
None I personally know of. > My Observations: > - Minimal is 7% faster both before and after your changes. This is > fine though, it's doing a bit more. > - 4.3 is faster than 3.1 when cpu is constrained (+5%) > - 4.3 is slower than 3.1 when cpu is constrained (-5%) > - With your changes 4.3 performs same as 3.1 on 32 core This seems only to be the case with certain concurrency levels (20 and 200), which is suspicious. > and 25% > (instead of 5%) faster on 4-core. > > There are still a few things I don't understand: > - I'm unsure why your change to eliminate proxy would have such an > impact with the 10 thread case. (+65%), good though. Could be a fluke. I see no good reason for such a significant difference. > - Unsure why when cpu isn't constrained 3.1 does so well. All I can > think of it that 3.1 is more cpu intensive than 4.3 and so doesn't > fair so badly when plenty of cpu. > I think it is a pretty good theory. HC 3.x should be generating more intermediate garbage and taking more CPU cycles while parsing HTTP messages compared to HC 4.x. More CPU cores seem to alleviate this inefficiency. The patch has been committed to SVN trunk and 4.3.x branch. http://svn.apache.org/r1596649 http://svn.apache.org/r1596653 Thank you so much for reporting the problem and helping fix it. Cheers Oleg > Dan > > On Wed, May 21, 2014 at 4:02 PM, Oleg Kalnichevski <[email protected]> wrote: > > On Wed, 2014-05-21 at 15:40 +0100, Daniel Feist wrote: > >> Here are the results!! Interesting... > >> > >> I reran everything: > >> - Added JVM options to even out garbage collection. > >> - Ran each test for minutes 5 minutes. > >> - Used Jetty SelectChannelConnector, same as you always used. (other > >> one is faster, but less stable). > >> > >> https://docs.google.com/a/mulesoft.com/spreadsheets/d/1j2TCeAQmrkWLZyQfetzmtqmUDaGQBiDAr20hC9gEfYE/edit#gid=590558615 > >> > >> Configurations of httpClient are as you have in svn accept for 4.3.3 > >> (not minimal) which is configured as follows: > >> > >> The non-minimal configuration for 4.3.3 is: > >> final RequestConfig requestConfig = RequestConfig.custom() > >> .setStaleConnectionCheckEnabled(false) > >> .setExpectContinueEnabled(false) > >> .build(); > >> this.httpclient = HttpClients.custom() > >> .setConnectionManager(this.mgr) > >> .disableContentCompression() > >> .setDefaultRequestConfig(requestConfig) > >> .build(); > >> > >> > >> Dan > >> > > > > Hi Daniel, > > > > What I am seeing makes me think we are on the right track, aren't we? I > > find HC 3.1 performance with 32 CPU cores a little suspect, but HC 3.x > > has a completely different connection pool manager implementation, so I > > do not see this as anything worth looking into. > > > > I'll merge my changes into the official SVN repository shortly. I > > personally would consider the issue resolved unless you think there is > > still something that needs investigation. > > > > Cheers > > > > Oleg > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
