You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Gert Vanthienen <ge...@gmail.com> on 2009/11/19 22:41:13 UTC

Re: Load Test for servicemix's proxy service

L.S.,

There are really a number of things that can be involved in the poor
performance you're experiencing.  However, since you're experiencing
the slowdown when adding more threads for servicemix-camel, let's try
to look into that part first.  Could you turn up the core thread pool
size for that component and then get us a few thread dumps as things
start slowing down.  If adding threads slows things down, we should be
able to see some of these threads either waiting of blocked, so
perhaps the thread dumps can help us pinpoint the problem.

On the other hand, I also notice that some of your configurations are
setting the maximum pool size to -1.  Combined with the queue size of
0, that means that ServiceMix will create a new thread whenever all
threads are active and more work arrives.  I can imagine this can lead
to very large thread pools when there's is slowdown somewhere in the
system and that might as well be a cause for problems.  Could you try
restraining those thread pool sizes to some maximum instead on the
current -1 (e.g. 64 or 96)

Regards,

Gert Vanthienen
------------------------
Open Source SOA: http://fusesource.com
Blog: http://gertvanthienen.blogspot.com/



2009/11/19 inter <ga...@126.com>:
>
>
> I am using servicemix-web-3.3.1,runing in weblogic 10.3.
>
> I developed proxy service with  servicemix-cxf-bc and  servicemix-camel,the
> follow is:
>
>
> external client(load
> runner)===>cxf-consumer===>camel===>cxf-provider===>external echo service
>
> My jvm parameter is:
>    -Xmx1400m -Xms1400m
>
> serviceMix's config:
>    servicemix.corePoolSize    = 32
>    servicemix.maximumPoolSize = 128
>    servicemix.queueSize       = 1024
>
> I also    reconfig   the threadpool for the component:
>   <property name="configs">
>        <map>
>                <entry key="component.servicemix-cxfbc">
>                        <bean
>                                class="org.apache.servicemix.executors.impl.ExecutorConfig">
>                                <property name="corePoolSize" value="64" />
>                                <property name="maximumPoolSize" value="-1" />
>                                <property name="queueSize" value="0" />
>                        </bean>
>                </entry>
>
>                <entry key="flow.seda.servicemix-cxf-bc">
>                        <bean
>                                class="org.apache.servicemix.executors.impl.ExecutorConfig">
>                                <property name="corePoolSize" value="32" />
>                                <property name="maximumPoolSize" value="-1" />
>                                <property name="queueSize" value="0" />
>                        </bean>
>                </entry>
>
>                <entry key="flow.seda.servicemix-camel">
>                        <bean
>                                class="org.apache.servicemix.executors.impl.ExecutorConfig">
>                                <property name="corePoolSize" value="4" />
>                                <property name="maximumPoolSize" value="-1" />
>                                <property name="queueSize" value="512" />
>                        </bean>
>                </entry>
>        </map>
>
>
> (1) 20 concurrency , performance:60   Hits per Second,runing well;
>
> (2)50 concurrency ,  performance:80 Hits per Second at the beginning,but
> will go down to 50 Hits per Second  after  about 5 minutes,then go down to
> 30 after  60 minutes.
>
> (3)120 concurrency , performance:60 Hits per Second at the beginning, will
> go down to 50 Hits per Second  after  about 5 minutes,then go down to 30
> after  60 minutes, at last 10 after about 8 hours.
>
>
> No matter how I increase the number of concurrent client , the throughout
> will not increase.
> And I found that the key  parameter is the camel's corePoolSize,
> If I increase this parameter, throughput significantly decreased ,It seems
> the best value of this parameter is 4。
>
> And I used the netstat command to see network status,I found that,the
> connections of  client to cxf  are 120, but  the connections of cxf to
> external   service  are only about 20!
>
> Is there  anything configured  wrong?
>
>
> --
> View this message in context: http://old.nabble.com/Load-Test-for--servicemix%27s--proxy-service-tp26420227p26420227.html
> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>
>

Re: Load Test for servicemix's proxy service

Posted by inter <ga...@126.com>.
Hi,Gert

     First of all thank you for your attention and reply!
   During the test,I have monitored  the num of threads.
    It will not be unlimited growth, but will stabilize to a certain level 
of about 200.
    So i don't think  the threadPool's size  is clause.
    I  will keep  with the test,and  upload  some   thread dumps  later.

    Regards

Gert Vanthienen wrote:
> 
> L.S.,
> 
> There are really a number of things that can be involved in the poor
> performance you're experiencing.  However, since you're experiencing
> the slowdown when adding more threads for servicemix-camel, let's try
> to look into that part first.  Could you turn up the core thread pool
> size for that component and then get us a few thread dumps as things
> start slowing down.  If adding threads slows things down, we should be
> able to see some of these threads either waiting of blocked, so
> perhaps the thread dumps can help us pinpoint the problem.
> 
> On the other hand, I also notice that some of your configurations are
> setting the maximum pool size to -1.  Combined with the queue size of
> 0, that means that ServiceMix will create a new thread whenever all
> threads are active and more work arrives.  I can imagine this can lead
> to very large thread pools when there's is slowdown somewhere in the
> system and that might as well be a cause for problems.  Could you try
> restraining those thread pool sizes to some maximum instead on the
> current -1 (e.g. 64 or 96)
> 
> Regards,
> 
> Gert Vanthienen
> ------------------------
> Open Source SOA: http://fusesource.com
> Blog: http://gertvanthienen.blogspot.com/
> 
> 
> 
> 2009/11/19 inter <ga...@126.com>:
>>
>>
>> I am using servicemix-web-3.3.1,runing in weblogic 10.3.
>>
>> I developed proxy service with  servicemix-cxf-bc and
>>  servicemix-camel,the
>> follow is:
>>
>>
>> external client(load
>> runner)===>cxf-consumer===>camel===>cxf-provider===>external echo service
>>
>> My jvm parameter is:
>>    -Xmx1400m -Xms1400m
>>
>> serviceMix's config:
>>    servicemix.corePoolSize    = 32
>>    servicemix.maximumPoolSize = 128
>>    servicemix.queueSize       = 1024
>>
>> I also    reconfig   the threadpool for the component:
>>   <property name="configs">
>>        <map>
>>                <entry key="component.servicemix-cxfbc">
>>                        <bean
>>                              
>>  class="org.apache.servicemix.executors.impl.ExecutorConfig">
>>                                <property name="corePoolSize" value="64"
>> />
>>                                <property name="maximumPoolSize"
>> value="-1" />
>>                                <property name="queueSize" value="0" />
>>                        </bean>
>>                </entry>
>>
>>                <entry key="flow.seda.servicemix-cxf-bc">
>>                        <bean
>>                              
>>  class="org.apache.servicemix.executors.impl.ExecutorConfig">
>>                                <property name="corePoolSize" value="32"
>> />
>>                                <property name="maximumPoolSize"
>> value="-1" />
>>                                <property name="queueSize" value="0" />
>>                        </bean>
>>                </entry>
>>
>>                <entry key="flow.seda.servicemix-camel">
>>                        <bean
>>                              
>>  class="org.apache.servicemix.executors.impl.ExecutorConfig">
>>                                <property name="corePoolSize" value="4" />
>>                                <property name="maximumPoolSize"
>> value="-1" />
>>                                <property name="queueSize" value="512" />
>>                        </bean>
>>                </entry>
>>        </map>
>>
>>
>> (1) 20 concurrency , performance:60   Hits per Second,runing well;
>>
>> (2)50 concurrency ,  performance:80 Hits per Second at the beginning,but
>> will go down to 50 Hits per Second  after  about 5 minutes,then go down
>> to
>> 30 after  60 minutes.
>>
>> (3)120 concurrency , performance:60 Hits per Second at the beginning,
>> will
>> go down to 50 Hits per Second  after  about 5 minutes,then go down to 30
>> after  60 minutes, at last 10 after about 8 hours.
>>
>>
>> No matter how I increase the number of concurrent client , the throughout
>> will not increase.
>> And I found that the key  parameter is the camel's corePoolSize,
>> If I increase this parameter, throughput significantly decreased ,It
>> seems
>> the best value of this parameter is 4。
>>
>> And I used the netstat command to see network status,I found that,the
>> connections of  client to cxf  are 120, but  the connections of cxf to
>> external   service  are only about 20!
>>
>> Is there  anything configured  wrong?
>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/Load-Test-for--servicemix%27s--proxy-service-tp26420227p26420227.html
>> Sent from the ServiceMix - User mailing list archive at Nabble.com.
>>
>>
> 
> 
> -----
> ---
> Gert Vanthienen
> http://gertvanthienen.blogspot.com
> 

-- 
View this message in context: http://old.nabble.com/Load-Test-for--servicemix%27s--proxy-service-tp26420227p26454138.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.