erlang程序启动初期,erlang进程突然猛增分析

现象:在erlang程序启动后,只要接受一个外部erlang程序通过gen_server:call或者其他的访问,就会出现许多无名的erlang进程。

分析:刚开始以为是什么地方出了问题,在本地测试的时候根本没有出现过如此的现象,查看这些无名的erlang进程发现每一个都有一个port,然后通过nodes()函数发现,erlang程序和很多模块都建立了链接,erlang程序启动的时候默认是transitive全连通的,即当节点A连接了节点B,节点B连接了节点C,那么节点A也与节点C互相连接,这样就组成了全连通网络。

以下是转载:

但有时我们希望连接一个节点而不去连接其他节点(比如某个节点只是用来查看集群的一些信息),这时可以通过指定该节点为hidden节点来实现(在节点启动时指定-hidden参数),hidden节点不加入集群全连通网络。hidden节点还能降低TCP/IP的连接数:因为如果一个集群里的节点数是N,则全连通的话,需要的TCP/IP连接数则为:N * (N - 1) / 2,所以将没必要全连通的节点设为hidden节点,会将该节点从全连通网络中移除,从而降低TCP/IP连接数。 

注意nodes() 默认是不返回hidden节点的,指定参数hidden或connected(即node(hidden)或node(connected))可返回hidden节点的信息。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值