-1

我正在评估一个系统架构,其中应用程序被拆分在同一硬件上的两个虚拟服务器上。

原因是如果系统的某个部分运行在自己的虚拟服务器上,整个系统的性能会更好。它是否正确?

我认为如果进程在相同的硬件上运行,与在一台虚拟服务器上安装相比,两台服务器上的拆分会给通信带来开销。

4

1 回答 1

1

为了确保,听起来您或多或少地在问 2 个(或更多)虚拟机如何相互“竞争”,以及在它们上运行的进程分离如何影响整体性能?

快速回答:简而言之,好消息是,如果您愿意,您可以非常严格地控制虚拟机“争夺”资源的方式。这将防止 VM 在 RAM、CPU 等方面相互竞争,并可以提高应用程序的整体性能。我认为您有兴趣了解两个主要内容:VM 预留/限制/共享和资源池。链接包括在下面。

深入回答:一般来说,分离应用程序的功能是一个好主意。在不同机器上运行的 Web 服务器和 DB 服务器就是一个很好的例子。我不特别了解您的应用程序,但如果它还没有利用多线程(以启用多个处理器的使用),那么将您的应用程序分离到两个服务器上可能真的有助于提高性能。原因如下:

从某种意义上说,VM 了解它们正在运行的硬件。这意味着他们知道可供他们使用的 CPU/RAM/磁盘空间。因此,假设您的 ESX 服务器有 4 个 CPU 和 16 GB 的 RAM。创建 VM 时,您可以自由地为每台服务器分配 2 个 CPU 和 8 GB RAM,或者您可以更改设置以满足您的需要。在 VMware 中,您可以通过使用称为限制、共享和预留的东西来保证一定的资源级别。可以在此处找到有关它们的文档http://pubs.vmware.com/vsphere-4-esx-vcenter/index.jsp?topic=/com.vmware.vsphere.vmadmin.doc_41/vsp_vm_guide/configuring_virtual_machines/t_allocate_cpu_resources.html,在其他地方。这些保留将帮助您确保某个 VM 始终可以访问某个级别的资源,并防止 VM 引起对 RAM、CPU 等的争用。VMware 还使用称为“资源池”的东西提供了这个想法的另一个扩展,它是可以为某些机器预留的 RAM、CPU 等池。您可以在此处阅读它们:http: //pubs.vmware.com/vsphere-4-esx-vcenter/index.jsp?topic=/com.vmware.vsphere.resourcemanagement.doc_41/managing_resource_pools/ c_why_use_resource_pools.html

于 2012-12-13T16:08:11.390 回答