Hi Akila, On Sat, Nov 21, 2015 at 1:20 PM, Akila Ravihansa Perera <raviha...@wso2.com> wrote:
> > 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? > No, we do not create a thread pool per monitor object, have a look at the code carefully: executorService = StratosThreadPool.getExecutorService( AutoscalerConstants.MONITOR_THREAD_POOL_ID, threadPoolSize); The above statement ask Stratos Thread Pool class to return an executor service with the name AutoscalerConstants.MONITOR_THREAD_POOL_ID: public static ExecutorService getExecutorService(String identifier, int threadPoolSize) { ExecutorService executorService = executorServiceMap.get(identifier); if (executorService == null) { synchronized (executorServiceMapLock) { if (executorService == null) { executorService = Executors.newFixedThreadPool(threadPoolSize); executorServiceMap.put(identifier, executorService); log.info(String.format("Thread pool created: [type] Executor Service [id] %s [size] %d", identifier, threadPoolSize)); } } } return executorService; } This will only create an executor service once for a given identifier. Thanks > > 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 > -- Imesh Gunaratne Senior Technical Lead, WSO2 Committer & PMC Member, Apache Stratos