Hi Akila,
On Sat, Nov 21, 2015 at 1:20 PM, Akila Ravihansa Perera <[email protected]>
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