Wso2 AttributeAggregator中initAggregator方法的高cpu使用率

Wso2 AttributeAggregator中initAggregator方法的高cpu使用率,wso2,complex-event-processing,siddhi,Wso2,Complex Event Processing,Siddhi,我们使用siddhi-3.1.2作为cep引擎。我们目前使用1个线程来处理siddhi中的所有数据。数据处理速度非常慢 在分析cpu使用情况时,我们发现大部分时间都花在initAggregator方法上。Yourkit快照分析表明,在这种特定方法中,1s采样的CPU使用率约为954ms Analytics (1/1) TID=322 STATE=RUNNABLE CPU_TIME=1978 (87.24%) USER_TIME=1910 (84.20%) Allocted: 512423

我们使用siddhi-3.1.2作为cep引擎。我们目前使用1个线程来处理siddhi中的所有数据。数据处理速度非常慢

在分析cpu使用情况时,我们发现大部分时间都花在initAggregator方法上。Yourkit快照分析表明,在这种特定方法中,1s采样的CPU使用率约为954ms

Analytics (1/1) TID=322 STATE=RUNNABLE CPU_TIME=1978 (87.24%) USER_TIME=1910 (84.20%) Allocted: 512423096 org.wso2.siddhi.core.query.selector.attribute.aggregator.AttributeAggregator.initAggregator(AttributeAggregator.java:47) org.wso2.siddhi.core.query.selector.attribute.processor.executor.GroupByAggregationAttributeExecutor.execute(GroupByAggregationAttributeExecutor.java:52) org.wso2.siddhi.core.query.selector.attribute.processor.AttributeProcessor.process(AttributeProcessor.java:38) org.wso2.siddhi.core.query.selector.QuerySelector.processInBatchGroupBy(QuerySelector.java:225) org.wso2.siddhi.core.query.selector.QuerySelector.process(QuerySelector.java:78) org.wso2.siddhi.core.query.processor.stream.window.WindowProcessor.processEventChunk(WindowProcessor.java:57) org.wso2.siddhi.core.query.processor.stream.AbstractStreamProcessor.process(AbstractStreamProcessor.java:101) 分析(1/1)TID=322状态=可运行CPU时间=1978(87.24%)用户时间=1910(84.20%)分配:512423096 org.wso2.siddhi.core.query.selector.attribute.aggregator.AttributeAggregator.initAggregator(AttributeAggregator.java:47) org.wso2.siddhi.core.query.selector.attribute.processor.executor.GroupByAggregationAttributeExecutor.execute(GroupByAggregationAttributeExecutor.java:52) org.wso2.siddhi.core.query.selector.attribute.processor.AttributeProcessor.process(AttributeProcessor.java:38) org.wso2.siddhi.core.query.selector.QuerySelector.processInBatchGroupBy(QuerySelector.java:225) org.wso2.siddhi.core.query.selector.QuerySelector.process(QuerySelector.java:78) org.wso2.siddhi.core.query.processor.stream.window.WindowProcessor.processEventChunk(WindowProcessor.java:57) org.wso2.siddhi.core.query.processor.stream.AbstractStreamProcessor.process(AbstractStreamProcessor.java:101) CPU中的热点如下所示


我想知道在initAggregator上花费的这段时间通常是预期的,还是取决于正在处理的siddhi查询。

您似乎在查询中使用了“group by”。。这样,它将为每个组创建属性聚合器。。。所以这可能就是这背后的原因。。。因此,您是否可以共享用于执行上述测试的查询?是的。没错。我们在一个流中的多个字段上有一个group by。这个字段的值是动态的。我们发现我们的问题是。该问题中提出的解决方案解决了克隆和写时拷贝数组列表的缓慢问题。但它暴露了这里讨论的另一个问题,这些动态groupBy值的AttributeAggregator会导致OOM。-我想需要一种方法来确保AttributeAggregator可以安全地从地图中删除。似乎您在查询中使用了“group by”。。这样,它将为每个组创建属性聚合器。。。所以这可能就是这背后的原因。。。因此,您是否可以共享用于执行上述测试的查询?是的。没错。我们在一个流中的多个字段上有一个group by。这个字段的值是动态的。我们发现我们的问题是。该问题中提出的解决方案解决了克隆和写时拷贝数组列表的缓慢问题。但它暴露了这里讨论的另一个问题,这些动态groupBy值的AttributeAggregator会导致OOM。-我想需要一种方法来确保AttributeAggregator可以安全地从地图上驱逐出去。