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

Reply via email to