Any performance difference beween evaluation & licensed

Posted by smahanta on 27-Feb-2009 00:25

I was evaluating Sonic ESB.In a Linux box with Intel Xeon.This process uses

1) 4 transformation service steps – which add timestamp information when the the step is executed

2) 1 CBR step – This just routes to the next step without checking any other condition

3) 2 Java sevice steps – These services do not perform any real processing logic.

There are NO database calls

Here is the statistics of the time taken to process messages. The messages were pumped on to the process at a modest speed of 10 per second.

With 5 threads configured for each of Sample process, CBR, Transformation and Java service types

msgs seconds msg/sec

200 82 2.44

500 185 2.70

1000 590 1.69

With 10 threads configured for each of Sample process, CBR, Transformation and Java service types

msgs seconds msg/sec

200 90 2.22

500 204 2.45

1000 620 1.61

These are the figures when a single broker(MgmtBroker), my services & process deployed in test-container and JMS client for pumping message was running on same machine.

Not understanding why I am getting this kind of performance.

Is this because my sonic is evaluation version, not the licensed version?

All Replies

Posted by Bill Wood on 21-Oct-2009 13:29

Workbench does have some different capabiities to a production version, but a Workbench is effectively the same whether you use the eval or the Professional Developer editon.  Perhaps the biggest difference in Workbench is that all caching is turned off for any services, so your .cbr, .js, and .xsl files are effectively looked up on every request from the D.S.

The next point is that you need to be really careful about when you have Intracontainer turned on (and again, Workbench installed containers have this off by default (although you can enable this).  That means every step is going over a JMS hop.

Finally, understanding the listeners is important.  For example, if every process calls the XML Tranformation step 4 times then you are getting 4 service() calls for each process.  If you only have 5 XML Transformers, you are effectively limiting throughput to these servcies as they will always be busy.  (Even if you enable intracontainer, you will still be limiting yourself to 5 simulaneous transformations.

In summary, given the process that has an Entry Endpoint, and 7 steps and 5 of these steps use sonicfs files, each call to the process results in:

  - 10 JMS messages with application traffic, and 10 (5 x Request + Reply) of the sonicfs lookups.

So based on what I am seeing in your example, it looks like you are only processing as if you have 1 1/4 (and 2 1/2) listeners in the 5 and 10 case, because of the blocking in the XML Transformation.   Also, as you are sending messages in at 10 msg/sec you are gradually filling up all the queues (and topic) buffers while you sent the total count, and this would increase the latency on what is going on.

Posted by Bill Wood on 06-Feb-2010 09:26

Short Answer:

  - NO.  Evaluation and Licenced copies of Sonic ESB are the same.

  - HOWEVER, Workbench and Deployment have different characteristics.  (This includes not only the 'Eclipse-part', but also the Domain Manager and Containers).   The previous response talks more about this, but the main points are:

  • Containers are in TEST_CONTAINER_MODE.
  • There are debug interceptors on all calls (used by the Eclipse debugging framework)
  • Caching of sonicfs files and intermediate results (e.g. caching a parsed XSLT) is turned off.
  • Accessing sonicfs:///workspace is handled differently in a Workbench installation, compared to a deployment
  • All ESB containers are set to intracontainer=False
  • One broker is used for both Management and Application traffic (which you would typically not do in production)
  • Messaging and ESB containers are co-hosted (again, not what you'd do in production)

All these implact performance

This thread is closed