我正在使用2 x四核Xeon E5520 2.2GHz,24.0GB RAM和Erlang R15B02(启用SMP)的节点上运行实验。我想知道是否可以限制Erlang VM使用的内核数量,以便我可以暂时禁用某些内核并逐步增加数量以测试可伸缩性。
我在此节点上没有root访问权限。所以我期待一些方法,可以通过指定erl
的参数或通过Erlang代码。
答案 0 :(得分:13)
您可以通过+S
选项将Erlang使用的核心数限制为erl
,这允许您设置Erlang创建的调度程序内核线程数。有关详细信息,请参阅erl man page。
请注意,Erlang linked-in port drivers和native implemented functions(NIF)都可以创建自己的线程,从而影响Erlang进程独立于+S
选项指定的线程使用的内核数量虽然没有标准的驱动程序或NIF这样做。此外,+A
erl
选项创建了一个异步线程池供驱动程序使用,这也可能影响所使用的内核数量,默认情况下,异步线程池有10个线程(默认情况下为空)在Erlang / OTP版本R16B之前。