Hi,

I noticed that ExecutorService objects are created in the constructors of
ClusterMonitor, ApplicationMonitor, GroupMonitor, ParentComponentMonitor
classes. These thread pools' size is 100 [1, 2, 3, 4].

Any idea why thread pools are created per monitor object? Is it not
possible to share a common thread pool as per the current design?

Stratos server thread count goes beyond 1500 when deploying 2 or 3 apps.
And it keeps growing proportional to the deployed app count. This is a very
high resource usage.

[1]
https://github.com/apache/stratos/blob/stratos-4.1.x/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/ClusterMonitor.java#L108

[2]
https://github.com/apache/stratos/blob/stratos-4.1.x/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ApplicationMonitor.java#L82

[3]
https://github.com/apache/stratos/blob/stratos-4.1.x/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/GroupMonitor.java#L88

[4]
https://github.com/apache/stratos/blob/stratos-4.1.x/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/component/ParentComponentMonitor.java#L112

Thanks.

-- 
Akila Ravihansa Perera
WSO2 Inc.;  http://wso2.com/

Blog: http://ravihansa3000.blogspot.com

Reply via email to