首页 > 解决方案 > 主管可以监督的最大子进程数是多少?

问题描述

主管进程可以监督的子进程的最大数量是多少?我来自 Elixir,但我想限制(如果有的话)将直接从 Erlang 继承。

标签: erlangelixirerlang-otp

解决方案


我不是专家,但在erlang 文档中发现了这一点:

10.2 系统限制

Erlang 语言规范对进程数、原子长度等没有限制,但出于性能和内存节省的原因,Erlang 语言和执行环境的实际实现总会有限制。

流程

默认情况下,同时活动的 Erlang 进程的最大数量为 32768。此限制在启动时最多可以提高到 268435456 个进程(请参阅erl(1) 文档中系统标志 +P的文档)。由于内存不足,至少在 32 位架构上无法达到 268435456 个进程的最大限制。

这没有提及gen_server,但它为默认 erlang 系统中的并发进程数设置了上限:32768. 所以也许你的问题的答案很简单32768 - 1。:) 您可以使用+P 开关来增加该数字。


推荐阅读