Hyper-V Apache 性能与非虚拟服务器

Hyper-V Apache 性能与非虚拟服务器

我们最近从一台服务器(Win2008 服务器、4 个双核 2.8GHz 处理器、24G RAM)过渡到一台更大、更快的 Hyper-V 服务器,这真是一场灾难。我们运行 Apache 2 和 PHP 5(均为 32 位),除此之外什么都没有。

新虚拟机有一个客户机,该客户机装有 Win2008 服务器操作系统,配置与原始服务器相同。整个客户机操作系统和 Apache 服务器根目录存储在带有 2G NIC(1G 读取和 1G 写入)的 SAN 上。我被告知,这是在需要时能够故障转移到另一台虚拟机所必需的。

在使用相同参数运行 Apache Bench 时,旧的单台服务器的性能比新的“更大、更快”的 Hyper-V 机器高出 20% 到 30%。我们在虚拟机上安装了一个装有 Apache 64 位的 Linux 机器,但仍然有同样的性能问题。

我不明白为什么一台在各个方面(RAM、处理器等)都“好很多”的机器性能却如此糟糕。这是因为操作系统和 Apache 根存储在 SAN 上吗?Hyper-V 安装的性能是否总是比非虚拟服务器差?您会在哪里查看以及如何确定问题所在?

答案1

新的虚拟机有一个装有 Win2008 服务器操作系统的客户机,其配置与原始服务器相同。

由于 Hyper-V 在当前测试版本之前仅支持 4 个虚拟处理器,因此您在 VM 上只能使用 4 个核心,那么您是如何做到这一点的?

有人告诉我,这是为了能够在必要时故障转移到另一台虚拟机。

不,你被告知需要将故障转移到另一台主机 - 而不是另一台虚拟机。请试着听听别人告诉你的话。

这是将操作系统和 Apache 根存储在 SAN 上的结果吗?

您告诉我们。理论上这是每秒 100mbit - 足够了,但是谁知道 SAN 有多快?运行低级比较并找出 SAN 性能是否比旧磁盘子系统的性能差很多。这不是玩笑 - 见过。

还请注意,可用的 CPU 核心少了很多。

Hyper-V 安装的性能总是比非虚拟服务器差吗?

取决于负载 - 是的。请注意,多 VM 意味着更少的二级和三级缓存命中(因为 CPU 在程序之间跳转)。与 Hyper-V 无关 - 这对于多样化负载来说是典型的。但它不应该如此明显,特别是如果您是主机上唯一的机器。您真的需要坐下来为系统管理员做基础分析。找出主机和 VM 的负载情况,进行比较。

一般来说情况不应该是这样 - 特别是考虑到你一开始就使用的可怜的硬件(4 个双核旧版),但你确实在转换过程中丢失了 CPU 核心。

相关内容