mesos-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Maged Michael (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (MESOS-4353) Limit the number of processes created by libprocess
Date Wed, 20 Jan 2016 23:08:39 GMT

    [ https://issues.apache.org/jira/browse/MESOS-4353?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15109695#comment-15109695
] 

Maged Michael commented on MESOS-4353:
--------------------------------------

Some options:
(1) Use an environment variable to set the maximum number of libprocess worker threads per
process. Such value can be set according to the role of the Mesos process. For example, a
Mesos Master process may have a higher maximum number of libprocess worker threads than a
Docker Containerizer.
(2) Automatically detect the type of the Mesos process (master, executor, ...) and set the
maximum number of libprocess worker threads accordingly.
(3) Set a hardwired maximum number of worker threads regardless of the type of the Mesos process.

I think option (1) is the most flexible.

> Limit the number of processes created by libprocess
> ---------------------------------------------------
>
>                 Key: MESOS-4353
>                 URL: https://issues.apache.org/jira/browse/MESOS-4353
>             Project: Mesos
>          Issue Type: Improvement
>          Components: libprocess
>            Reporter: Qian Zhang
>            Assignee: Qian Zhang
>
> Currently libprocess will create {{max(8, number of CPU cores)}} processes during the
initialization, see https://github.com/apache/mesos/blob/0.26.0/3rdparty/libprocess/src/process.cpp#L2146
for details. This should be OK for a normal machine which has no much cores (e.g., 16, 32),
but for a powerful machine which may have a large number of cores (e.g., an IBM Power machine
may have 192 cores), this will cause too much worker threads which are not necessary.
> And since libprocess is widely used in Mesos (master, agent, scheduler, executor), it
may also cause some performance issue. For example, when user creates a Docker container via
Mesos in a Mesos agent which is running on a powerful machine with 192 cores, the DockerContainerizer
in Mesos agent will create a dedicated executor for the container, and there will be 192 worker
threads in that executor. And if user creates 1000 Docker containers in that machine, then
there will be 1000 executors, i.e., 1000 * 192 worker threads which is a large number and
may thrash the OS.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message