我们的软件部门有一台运行 VMWare Server 2 的服务器。我们通常有 8-10 台 VM 作为测试环境(Win XP 和 Server 08)运行,用于测试我们软件的各个版本,还有一台 VM 用作构建服务器(Win XP)。
主机运行的是 Server 2003 R2。它有 32GB RAM、8 核 Xeon 3.16GHz CPU、一个用于主机操作系统的磁盘和两个用于虚拟机的 raid 磁盘。
大多数情况下,此设置运行良好,没有任何投诉。其他时候,虚拟机可能会非常滞后。这有时(但并非总是)与构建服务器的负载过重有关。
我是一名软件开发人员,不是 IT 专业人士,但我觉得这台机器应该足够强大,可以处理这么多虚拟机。偶尔出现的性能下降是否只是因为我们达到了硬件的极限,还是我应该寻找另一个罪魁祸首?
从我读到的内容来看,我猜如果存在瓶颈,那可能是磁盘 I/O,因为所有这些虚拟机都在两个磁盘上运行(尤其是构建服务器)。将虚拟机分布在更多磁盘上和/或切换到 SSD 是否会显著提高我们的性能?
我读过的其他东西也可能会提高性能:
- 每个虚拟机单个虚拟处理器
- 删除/禁用未使用的虚拟硬件
- 预分配磁盘空间
- 不使用快照
- 在主机上设置保留内存限制并禁用虚拟机内存交换
有人能确认或否认这些是否能提高性能吗?我还错过了什么好的调整?
答案1
您选择了一些好的性能指标(您的项目符号列表),并且您正确地认为磁盘 IO 可能是问题所在,但我认为您错过了一个技巧。
除非你需要使用底层的 S2K3 操作系统,否则为什么不停止使用“Server 2”(它实际上在作为服务器运行时并不是很好)而改用免费的 ESXi 虚拟机管理程序呢?好吧,你会失去基本的 Windows 操作系统,但你会看到显着的性能改进,并且对虚拟机的行为有更好的可视性 - 使你能够确认任何 IO 瓶颈(实际上只有花钱才能解决)。
哦,我对您拥有的这款“8 核 Xeon”很感兴趣,它真的有双四核 Xeon 吗?只是还没有 8 核 3.16Ghz Xeon 出货。这些信息可以让我们更好地了解情况。
答案2
这是不错的调整选择。但是,如果您受到磁盘限制,那么提高 CPU 性能的调整就毫无用处。我建议从 Perfmon 会话开始(特别是查看磁盘 I/O 统计数据)以确定问题所在。
如果您没有使用预分配的磁盘,仔细查看主机磁盘碎片会很有成效,就像重建具有对齐磁盘分区边界的 XP VM 一样。
大棒将会迁移到 ESXi,它提供更好的性能,前提是你具有硬件兼容性。
答案3
我使用过一台与您的类似的服务器 - Windows 2003 R2、VMware Server 2、XP 构建机和其他一些虚拟机、足够的 RAM 和用于虚拟机的六磁盘 RAID 5。构建机启动时,您肯定会在其他虚拟机上注意到它。有时这很痛苦。
我搜索并尝试了所有能找到的优化方法,但只看到了很小的性能提升。然后我将这台虚拟机迁移到它自己的 VMware ESXi 主机上,所有机器都运行得更顺畅了。
这次经历让我总体上避免使用 VMware Server - 尤其是对于磁盘密集型应用程序。对于低使用率的情况来说,它很好,但使用 ESXi(或我也喜欢的 Hyper-V 服务器)通常会让生活变得轻松得多。
我现在有一台构建机器,它与 Hyper-V 下的许多其他虚拟机共享一个类似的(虽然稍微强大一些)服务器,并且运行良好。
因为我的设置比你的设置拥有更多的磁盘,所以我会谨慎地假设更多的磁盘可以解决你的问题。