Hi,

My comment inline
On 2010-5-15, at 上午5:03, Dissa wrote:


Hi,

I am using servicemix 3.3.1 version. And wanted to load test one of the CXF
web service.

I was using soapUI 3.5 and tested up to 15 threads (15 Threads for 1 minute with a test delay of 1 second). It works fine. As soon as I increase the no of Threads to 16 after sometime, I was getting time outs. And then found out the whole server was frozen with no error message in the log. This is the
last line of the log I saw
=======================================
16:17:31,904 DEBUG [32980...@qtp0-33] (SedaFlow) - Called Flow send
16:17:31,904 DEBUG [32980...@qtp0-33] (DeliveryChannelImpl) - Waiting for
exchange ID:127.0.0.1-128980e3012-8:52 (6c97c1) to be answered in
DeliveryChannel{servicemix-cxf-bc} from sendSync
=======================================

This behavior could be repeated exactly at 16 threads with few CXF web
services I have . Then I started searching in the forum and found this
http://old.nabble.com/cxf-bc-load-testing-tp23195483p23195483.html
http://old.nabble.com/cxf-bc-load-testing-tp23195483p23195483.html

As suggested, I increased the following properties (in
conf/servicemix.properties).
servicemix.corePoolSize    = 32
servicemix.maximumPoolSize = 64
servicemix.queueSize       = 512

Now it is failing exactly at the 32 Threads.

In that form entry it was already said that
https://issues.apache.org/activemq/browse/SM-1717 was a defect related to that and it was already fixed in servicemix 3.3.1 (the version I am using).
As I mentioned in the that thread[1], only configure smx component thread pool isn't enough, you also need configure jetty thread pool used for cxf bc consumer.
The important part I said is
Ideally, the concurrent request should be less than the corePoolSize for
servicemix-cxf-se component, so that the request dispatch to
servicemix-cxf-se will not be queued(which will cause the timeout as you
see).
(for example the corePoolSize by default for servicemix-cxf-se is 16,
then set maxThreads="12" for cxf bc consumer jetty would be fine, which
means at most there would be 12 concurrency request dispatch to
servicemix-cxf-se)

Or you can use asyn cxf bc consumer endpoint , just add synchronous="false" for your cxf bc consumer endpoint configuration. [1]https://cwiki.apache.org/SM/discussion-forums.html#nabble- td23195483|a23195483

Freeman

I think it is OK to get the time out but, if the server is going to be
frozen, that is not acceptable to me. At the same time, increasing the
servicemix.corePoolSize and other parameters is just a short term solution
for me in our production environment.

Has anyone come across something similar ? Any suggestions ?

--
View this message in context: 
http://old.nabble.com/CXF-web-service-load-testing-freeze-the-server-tp28564246p28564246.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.



--
Freeman Fang
------------------------
Open Source SOA: http://fusesource.com

Reply via email to