Performance 在单个主机上运行多个虚拟机
我需要在数量相对较少的物理主机上运行数量相对较多的虚拟机。每个虚拟机做的不多——每个虚拟机只需要运行一个基本的网络服务——想想SMTP之类的。此外,每个设备上的负载将非常轻 不幸的是,这个数字大约是5台物理主机上的100台虚拟机。每台主机都足够好——2核,2千兆ram和1 TB磁盘。然而,我知道,仅仅拍摄一张ubuntu的vmware图像并在该机器上运行不会让我得到接近100个实例,而且会接近20个 那么,这种图像与主机的比例还有希望吗?此外,哪种虚拟机实现最适合于此目的-ie具有高效的总体资源利用率?我们在这里主要使用VMware,但是如果通过切换到Xen等可以获得显著的性能优势,我相信我们会考虑它。 提前感谢您的见解:)Performance 在单个主机上运行多个虚拟机,performance,vmware,virtual-machine,Performance,Vmware,Virtual Machine,我需要在数量相对较少的物理主机上运行数量相对较多的虚拟机。每个虚拟机做的不多——每个虚拟机只需要运行一个基本的网络服务——想想SMTP之类的。此外,每个设备上的负载将非常轻 不幸的是,这个数字大约是5台物理主机上的100台虚拟机。每台主机都足够好——2核,2千兆ram和1 TB磁盘。然而,我知道,仅仅拍摄一张ubuntu的vmware图像并在该机器上运行不会让我得到接近100个实例,而且会接近20个 那么,这种图像与主机的比例还有希望吗?此外,哪种虚拟机实现最适合于此目的-ie具有高效的总体资源
注意:我们最终使用了OpenVZ,它运行得相当好。ubuntu模板的默认参数允许我们在每台机器上运行大约40个实例。如果你可以精简来宾,你可能可以做到,没有X,启动了最少的服务等等。看看slackware或ubuntu服务器。 Xen似乎在网络托管公司中很受欢迎,因此可能值得一看
CPU使用率将取决于应用程序,但您可能需要购买更多的ram 如果计算一下,每台机器的平均内存为100MB。这并不多。虚拟机的开销相当大,必须在每个实例中运行一个完整的操作系统 要么你使用一些占地面积很小的操作系统(?),然后花更多的时间将其剥离,要么你得到更大的机器
由于机器如此便宜,我倾向于升级到64位操作系统,并拥有大量的ram。VMWare有一个很酷的选项,您可以“汇集”一组物理机器,它将自动将虚拟机移动到使用率最低的硬件,而不会中断VM的操作
您是否仅限于vmware?考虑到每个虚拟机都可以运行同一个内核,您是否考虑过以更少的开销获得更多的虚拟机。几种想法 1-正如其他人指出的,内存算法不起作用,您将需要更多的RAM 2-根据服务的不同,您可能能够找到预配置的虚拟机。例如,它的免费防火墙软件有一个虚拟机设置。您还可以找到一个非常小的linux发行版,可以进行调整 3-也许我遗漏了什么,但听起来Ubuntu已经非常接近了。。。5台机器上每台机器20个实例可获得所需的100个实例。然而,未来的增长空间不大
保重,祝你好运。有几个问题
祝你好运有三个主要方面可以让你的身体健康:
您最好运行VMware ESX/ESXi,因为它们都具有奇特的内存池功能。它基本上占用相同的内存页,并在多个客户机之间使用它们,因此如果您运行许多相同的客户机,您将能够在主机上获得比其他虚拟机多得多的内存 查看中关于“透明页面共享”的部分,以及对此的评论
显然,您仍在使用每台主机20个来宾和每台主机上只有2Gb RAM来推动它,但如果您删除所有无关的服务和应用程序,并在每台主机上安装专用应用程序之前构建1个来宾映像和克隆它,您可能会侥幸逃脱,特别是VMware链接显示一台4Gb主机运行40个来宾 您真的需要100个全功能操作系统吗 为什么不采取web服务器已经使用的方法?我指的是虚拟网络服务器/主机 例如,以ApacheHttpd为例,它安装在使用单个配置文件托管多个虚拟服务器的单个物理服务器上。另外,您还需要配置DNS和/或许多具有不同IP地址的虚拟网络接口(eth0:0、eth0:1、…、eth0:n)
如果您确实只需要向外界公开多个服务,并且负载不高,那么这应该是可行的。是否有理由将每个网络服务实例划分为各自的虚拟机?如果您不需要将用户彼此隔离,但确实需要隔离流程和流量,