camel-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <>
Subject Re: ESB Performance Testing - Round 6
Date Thu, 30 Aug 2012 07:40:31 GMT
On Thu, Aug 30, 2012 at 12:20 AM, Christian Müller
<> wrote:
> Hello Claus, hello Dan!
> First, Kudos for Dan. I was indeed inspired from your performance tests.
> Thanks for your work.
> May be this performance test is single-sided from our point of view (I
> share this view.). But to fail with this tests cause some concerns by my
> managers. They didn't know that the integration solution was implemented
> with the deprecated JBI components. They only notice: ServiceMix (and Fuse
> ESB) failed to complete the test. That's all.
> And because Camel is the first choice integration solution for ServiceMix,
> we can "help out" here and correct the bad picture which some people got,
> after reading this test.

Ah yeah I didn't know that either that the old JBI stuff was in use.
And the fact that they use SMX 4.3.0 which is an old release (4.3.0/
                                          03-Mar-2011 13:25)
Since SMX 4.4.0, 4.4.1, and 4.4.2 has been released.

I am not neither sure if they have configured the old JBI apps in an
optimal way, for example
... shows a thread pool with max 24 threads, where as some of the
other ESB being tested is using much higher thread pools in the

A few tips to optimize your Camel tests would be to
- disable JMX either totally, or set the performance stats off
- turn of breadcrumb (
- check logging if something is logging to noisy (albeit at INFO level
it should not be noisy)
- and the stream caching threshold I talked about before

And then I guess there is a some CXF / Jetty stuff that can be tweaked a bit.
I am not sure about how their thread pool settings is configured out
of the box etc.

The pure proxy example, you may use pure Jetty instead of CXF, albeit
that CXF in MESSAGE mode probably is super fast anyway.
And CXF uses Jetty under the hood anyway.

Also I wonder if we could optimize the stream cache implementation in Camel to
- use file nio for spooling to disk (allow to use nio and thinks like
memory mapped files)
- avoid copy stream, if input source supports re-readable (eg to set a
mark on the stream, and position back to the mark)

> And I also would like to work on a more "real world" ESB or integration
> framework performance test suite (one task in my long TODO list...). This
> test suite would also test other frequently used protocols like file, http,
> jms, rest or plain tcp/ip and also a few more frequently used EIP's like
> splitter, aggregator, content based router (not only the filter EIP) and
> message translator. It's good to know how good/bad we perform compared to
> the other ones (I know, performance is not the single fact which is
> important, but it's one of a few).
> The guys from<>will
> share the results with me/us before they will run a new performance
> test. This allows us to tweak our solution (with your valuable input). And
> after ServiceMix 4.5.0 is out, I will upgrade the tests to use this version
> of ServiceMix. Until then, I will work on the changes you suggested and see
> how it works. Some of the suggestion are already "implemented" (a minimal
> ServiceMix feature boot path). Hopefully I will find time to play with the
> VTD-XML library. I didn't used it until now.
> Best,
> Christian
> On Wed, Aug 29, 2012 at 6:48 PM, Claus Ibsen <> wrote:
>> Hi
>> For what may be worth it, Camel now supports the VTD-XML library which
>> is a very fast and efficient XPath engine.
>> Though the camel-vtdxml component is hosted at Camel Extra due GPL
>> licensing of the VTD-XML library itself.
>> It works well for processing/splitting big files etc, where the xpath
>> and xquery can't cope so well (xquery using saxon).
>> I am not sure if any of the ESB's use that for xpath/xquery. But with
>> Camel we can now do that as well.
>> Installing it in OSGi I have not done. Hopefully installing the JAR
>> using wrap would be sufficient.
>> On Tue, Aug 28, 2012 at 11:07 PM, Christian Müller
>> <> wrote:
>> > You may know the last ESB performance test results from round 6 [1].
>> > As you can see, Apache ServiceMix 4.3.0 failed to complete this
>> benchmark.
>> > These tests are still based on the deprecated Apache ServiceMix JBI
>> > components.
>> >
>> > Because of this, I implemented the required tests for Apache ServiceMix
>> > 4.4.2 and Apache Camel (2.8.5) - instead of using JBI. I hope we can pass
>> > the tests this time...
>> > Feel free to provide any feedback. May you find places where we can make
>> > Apache ServiceMix and/or Apache Camel faster.
>> > You can find my Mercurial repo at [2] and my Git repo at [3].
>> >
>> > [1]
>> >
>> > [2]
>> > [3]
>> >
>> > Best,
>> > Christian
>> >
>> > --
>> --
>> Claus Ibsen
>> -----------------
>> FuseSource
>> Email:
>> Web:
>> Twitter: davsclaus, fusenews
>> Blog:
>> Author of Camel in Action:
> --

Claus Ibsen
Twitter: davsclaus, fusenews
Author of Camel in Action:

View raw message