Hi,
When I started a 10M load test from Smart Home sample in DAS it runs for
some time and stops receiving events suddenly.
But publisher in client was running in higher CPU usage when DAS was
running with very low CPU.
When another data agent was spawned it started to publish correctly which
was confirming that the issue is with the client side.
We analyzed the thread dump and found the highest using thread is with the
following stack traces when we analyzed it twice.
1.
"main" prio=10 tid=0x00007f85ec00a800 nid=0x7843 runnable
[0x00007f85f250f000]
java.lang.Thread.State: RUNNABLE
at
org.wso2.carbon.databridge.agent.endpoint.DataEndpointGroup$EventQueue.put(DataEndpointGroup.java:148)
at
org.wso2.carbon.databridge.agent.endpoint.DataEndpointGroup$EventQueue.access$300(DataEndpointGroup.java:97)
at
org.wso2.carbon.databridge.agent.endpoint.DataEndpointGroup.publish(DataEndpointGroup.java:94)
at
org.wso2.carbon.databridge.agent.DataPublisher.publish(DataPublisher.java:183)
at
org.wso2.carbon.das.smarthome.sample.SmartHomeAgent.publishLogEvents(Unknown
Source)
at org.wso2.carbon.das.smarthome.sample.SmartHomeAgent.main(Unknown
Source)
2.
"main" prio=10 tid=0x00007f85ec00a800 nid=0x7843 runnable
[0x00007f85f250f000]
java.lang.Thread.State: RUNNABLE
at org.apache.log4j.Category.callAppenders(Category.java:202)
at org.apache.log4j.Category.forcedLog(Category.java:391)
at org.apache.log4j.Category.log(Category.java:856)
at
org.apache.commons.logging.impl.Log4JLogger.debug(Log4JLogger.java:177)
at
org.wso2.carbon.databridge.agent.endpoint.DataEndpointGroup.isActiveDataEndpointExists(DataEndpointGroup.java:264)
at
org.wso2.carbon.databridge.agent.endpoint.DataEndpointGroup.access$400(DataEndpointGroup.java:46)
at
org.wso2.carbon.databridge.agent.endpoint.DataEndpointGroup$EventQueue.put(DataEndpointGroup.java:155)
at
org.wso2.carbon.databridge.agent.endpoint.DataEndpointGroup$EventQueue.access$300(DataEndpointGroup.java:97)
at
org.wso2.carbon.databridge.agent.endpoint.DataEndpointGroup.publish(DataEndpointGroup.java:94)
at
org.wso2.carbon.databridge.agent.DataPublisher.publish(DataPublisher.java:183)
at
org.wso2.carbon.das.smarthome.sample.SmartHomeAgent.publishLogEvents(Unknown
Source)
at org.wso2.carbon.das.smarthome.sample.SmartHomeAgent.main(Unknown
Source)
We suspect that *isActiveDataEndpointExists()* method is called in
*org.wso2.carbon.analytics.eventsink.internal.queue.DataEndpointGroup*
class repeatedly because the disruptor ring buffer is filled in client
side. Not sure why this happens.
*Maninda Edirisooriya*
Senior Software Engineer
*WSO2, Inc.*lean.enterprise.middleware.
*Blog* : http://maninda.blogspot.com/
*E-mail* : [email protected]
*Skype* : @manindae
*Twitter* : @maninda
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev