You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Yong J <jy...@gmail.com> on 2008/07/21 23:57:30 UTC
ServiceMix/ServiceMix-JMS performance problem
Hi,
We did some performance tests on Servicemix-jms BC, and found it
performs poorly. We use Servicemix version 3.2.1. Tests run on two
Ubuntu v 8.04 boxes (HP ProLiant DL140 G3 Servers). We have the test
setting below:
Data Generator -> data.telemetry.in -> data.telemetry.out -> Data Reflector
Data Receiver <- command.out <- command.in <--|
The data generator and data receiver are java objects reside in the
same JVM v1.6 (different threads). The generator generates and sends
different sized messages at various rates, and the receiver aggregates
and computes the average round trip time. Data.telemetry.in(out) and
command.in(out) are queues in a single remote Servicemix instance, and
Servicemix-jms BC is responsible to transport messages from consumers
(in queues) to providers (out queues). The data reflector is a java
object resides on the same physical machine as the Servicemix
instance, and it basically routes messages from data.telemetry.out to
command.in. To compare Servicemix-jms' performance, we use the
Servicemix's (the same Servicemix instance) internal Activemq and
setup the baseline as below
Data Generator -> data.telemetry -> Data Reflector
Data Receiver <- command <--|
In the baseline case, the JMS BC is not used. Instead, the data
reflector/receiver read message directly from the queues.
And we got the result below:
Avg = 1000-10000
Size JMS-1000 JMS-500 JMS-250 JMS-100 SM-1000
SM-500 SM-250 SM-100
4096 10.99355873 1.992798541 1.846196511 1.858529907 38.13672252
15.99289634 12.87034476 28.77400334
1024 1.871724364 1.0014821 1.061549684 1.075310164 124530.201
117993.9008 78.64173833 62.60961545
512 1.289635009 0.895815389 0.853104379 0.880207007 100581.0333
624.7655428 103.8424667 77.8392499
256 21.68340657 1.101478901 1.060026675 0.939207598 70612.14396
87665.68287 3.573813645 1.753960887
128 1.570891884 0.643154019 0.717291628 0.818023884 129145.2986
89747.2953 231.6068274 2.026899381
We generated 10,000 messages. We removed the first 1,000 to avoid
transient effects. The size column represents the message size in
bytes. JMS represents Activemq, and SM is Servicemix-jms. For JMS-X
or MS-X, the X represents the number of messages per second, for
example, JMS-250 mean test uses Activemq and generator sends 250
message per second. The cell numbers are message round trip time in
milliseconds. As you can see from the result, Servicemix-jms seems to
perform poorly (horrible when send rate is above 250) compare the pure
Activemq. When we charted and looked at the raw result data, we also
found a lot of Sawtooth shapes, and we suspected some sort of
buffering was hindering Servicemix performance. Can you please give
me some pointers on how to improve Servicemix/Servicemix-jms
performance. I attached the service assemblies used in the test.
Thanks in advance.
Yong Jin