Erlang本身对进程数,原子长度等没有限制,但为了提高性能和节省内存,总会在实际实现中和运行环境中作出一些限制。
1、进程数量
缺省情况下同时存在的最大Erlang进程数量不超过2^18=262144个,最大值为2^27-1=134217727,是由于内存的限制在32位环境中这个数量不太可能达到。有效范围是1024-134217727。
怎么知道实际中使用进程限制?
C:\>erl
Eshell V5.10.2 (abort with ^G)
1> erlang:system_info(process_limit).
262144
通过配置erlang启动参数(标志+P)可以改变进程数量限制
C:\>erl +P 1000000
Eshell V5.10.2 (abort with ^G)
1> erlang:system_info(process_limit).
1048576
注意了,erlang实际使用的进程数量限制可能比你设置的要大得多,这是因为erlang运行系统选择的进程数量限制通常是2的幂。
2、分布式节点数量
节点名称限制:
一个节点的远程节点的最大数目是由可用于节点名称atom的最大数目的限制,换句话说,节点名称限制数量取决于atom的最大数量。另外,节点名称长度也和atom有关,不能超过255个字符。
节点连接限制:
能够同时连接的最大节点数是由节点名称限制,可用端口限制,