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