I am currently working on the cxf jms transport for cxf 3.0.0. As the
transport is change pretty heavily I am doing some performance tests to
see it is on par with cxf 2.x.
During my tests I have a very good overall performance for one way
messages without persistence. For most time periods I get about 16 000
msg/s. Every about 5 seconds though performance goes down to 100-1000 msg/s.
Does anyone have an idea what the reason is for this problem? Can I
avoid it? I would like to achieve more or less stable performance.
I first assumed this might be a garbage collection but using jconsole I
can not see garbage collections at exactly the problematic times.
The full performance test code is at:
https://github.com/cschneider/performance-tests/tree/master/cxf
The activemq.xml I used is also stored there.
To run the test do this:
- Starting an activemq 5.9.0 broker with the config from the checkout
- Run the com.example.customerservice.server.CustomerServiceServerJms
- Run the com.example.customerservice.client.CustomerServiceClientJms
The client will send 160 000 cxf soap messages for warmup and then the
same number again for the real test.
I am using these java options for the test code:
-server -Xms256m -Xmx4048m
My system has 16 GB of ram.
I would be happy about any ideas you have about it.
Christian
----
Log of the performance of all 500 message periods where I get below 1000
msg/s.
INFO org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean -
Creating Service
{http://customerservice.example.com/}CustomerServiceService from class
com.example.customerservice.CustomerService
2:41:38 PM - 500 messages total, 549 msg/s: 910 time for 500 msgs
2:41:48 PM - 26000 messages total, 325 msg/s: 1535 time for 500 msgs
2:41:55 PM - 79000 messages total, 211 msg/s: 2366 time for 500 msgs
2:42:03 PM - 139500 messages total, 128 msg/s: 3880 time for 500 msgs
2:42:05 PM - 160000 messages total, 789 msg/s: 633 time for 500 msgs
2:42:07 PM - 22000 messages total, 976 msg/s: 512 time for 500 msgs
2:42:15 PM - 44500 messages total, 81 msg/s: 6137 time for 500 msgs
2:42:17 PM - 67000 messages total, 683 msg/s: 731 time for 500 msgs
2:42:24 PM - 89000 messages total, 102 msg/s: 4898 time for 500 msgs
2:42:29 PM - 157500 messages total, 919 msg/s: 544 time for 500 msgs
Overall measurement: 160000 messages total, 6568 msg/s:
--
Christian Schneider
http://www.liquid-reality.de
Open Source Architect
http://www.talend.com