VMware:一个或多个虚拟服务器上的应用程序性能

时间:2012-12-12 16:14:06

标签: performance virtualization

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

原因是如果整个系统的某个部分在其自己的虚拟服务器上运行,则整个系统的性能会更好。这是对的吗?

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

1 个答案:

答案 0 :(得分:1)

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

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

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

从某种意义上说,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