我在双核 Athlon 服务器上运行 VMware Server 2.0.2,该服务器有 4 GB RAM 和 RAID1,配有两个 400 GB SATA 硬盘。该服务器一次运行三台虚拟机。
主机系统是安装了最新内核和所有更新的 Debian 5 x64。除了 VMware Server 之外,它不运行任何其他东西。
VM 确实使用非固定硬盘映像。我运行了两个 VM,每个 VM 有 768 MB RAM,第三个 VM 使用 1.5 GB RAM,因此主机系统应该还有另外 1 GB 的可用 RAM。
两台虚拟机安装了 Ubuntu 9.10 x64,另一台使用 Debian 5 x64。
我的问题是性能非常差。在其中一个虚拟机中,我运行带有 mod_rails 的 Apache(Phusion Passenger)。没有任何虚拟机需要处理非常重的负载。因此,在空闲一段时间后,Passenger 会进入睡眠状态。再次唤醒它需要长达 45 (!) 秒的时间,在此期间,由于再次唤醒时产生的负载,虚拟机实际上不再响应。虚拟机中的负载计峰值达到 10.00,在我看来,这不正常。在(非虚拟化)测试系统上,我看不到这样的行为,所以它一定是 VMware Server,不是吗?
有时,即使是简单的 SSH 连接到其中一个虚拟机也会产生非常高的负载,高达 8.00。
有人告诉我,可以将精确数量的 CPU 功率和其他资源分配给虚拟机,但我真的不知道该寻找什么。不幸的是,Google 也没有告诉我。
任何帮助都将受到赞赏。
答案1
这可能不是您想听到的,但是...
忘掉 VMware Server,安装 ESXi。它是免费的,而且保证能体验到比 VMware Server 更出色的性能。
答案2
VMWare 的众多基本优化步骤之一就是:避免使用非固定磁盘!
如果您有一个经常写入的客户机(我认为 Apache 会不断写入少量数据以进行缓存、日志等),VMWare 需要不断增加磁盘大小。如果您同时执行了三次,并使用 SATA 磁盘(这些磁盘并未真正针对大量并行读/写操作进行优化),它将很容易使您的系统变得非常慢。还可能发生这样的情况,即客户机进程在进入睡眠状态时交换其 RAM,这也意味着大量写入 - 并且主机磁盘再次增加...
答案3
您应该将 vmware-guest-addons 安装到您的虚拟主机:在我的设置中,该步骤提高了性能。
在一个 CPU 核心上安装一个虚拟机并且为系统保留一个核心始终是一个好主意:
例如:你有一个四核处理器,你可以处理 3 个性能非常高的主机
问题取决于芯片:在一个双核芯片上有 3 个 vm 和主机,所有 vm 都会“争夺” CPU 资源 - 此外,进程调度程序本身也需要大量的 CPU 时间。
现代芯片的每个核心都有某种多线程,所以这个问题并不难