[erlang-questions] How much load can supervisors handle?

Gleb Peregud <>
Thu Oct 25 12:38:34 CEST 2012


> On Oct 24, 2012, at 11:18 PM, Chris Hicks <> wrote:
>> Does anyone have any experience running one supervisor with a thousand,
> ten-thousand, or more, workers under it with a high rate of churn? Would
> a dynamically expanding tree of supervisors, which would obviously need to be
> balanced, be a good solution for this?

Lately my experience with simple_one_for_one was more or less like this:
- thousands work without issues
- tens of thousands are OK, but the limit is near and it can add some latency
- hundred of thousands is stalling supervisor for minutes and system
stops handling any requests which need spawning processes under the
supervisor

We solved this problem by "sharding" supervisors (spawn as many
supervisors as there are schedulers) to ensure that all CPU cores are
used.

Another question: why does supervisors not use ETS tables? I believe
it should be faster than "sets" for handling many thousands of entries
(I haven't done any benchmarks here).



More information about the erlang-questions mailing list