【发布时间】:2011-05-09 21:16:28
【问题描述】:
前言:当我在下面说“机器”时,我指的是物理专用服务器或虚拟专用服务器。当我说“节点”时,我的意思是 erlang 虚拟机的一个实例,其中可以有多个作为单独的进程在单个 unix 内核下运行。
我有一个涉及多个 erlang/OTP 应用程序的项目。这些应用程序将在同一台机器上一起运行并相互交谈。他们都将访问磁盘,使用内存并产生 erlang 进程。他们还将使用网络资源,因为他们将与集群中运行相同应用程序集的类似机器通信。
几乎所有这些通信都是通过 HTTP 进行的。因此,我可以将每个 erlang OTP 应用程序分离到同一台机器上的 erlang VM 的单独实例中,并且它们仍然可以相互通信。
我的问题是:让它们全部运行在一个 erlang VM 下是否更好,以便这个 erlang VM 进程可以在它们之间分配对资源的访问,并安排各种 erlang 进程的执行。
或者在给定的服务器上有单独的 erlang 节点更好?
如果一个比另一个更好,为什么?
我假设在单个 erlang vm 中运行所有这些应用程序,从本质上讲,服务器的完整运行将带来更好的性能。操作系统只是在低级别管理磁盘和内存,并且只有一个重要的进程(erlang VM)可以切换......当erlang VM拥有所有的整体视图时,它可能更聪明地分配资源erlang 进程。
这可能是我需要测试的东西,但我无法在短期内有效地这样做。
【问题讨论】:
标签: erlang parallel-processing scheduling