我们最近从一个服务器(Win2008服务器,4个双核2.8GHz处理器,24G RAM)发生灾难性的转变,到一个更大,更快的Hyper-V服务器。 我们运行Apache 2和PHP 5(都是32位),其他都没有。
新的虚拟机有一个Win2008服务器操作系统的访客,其configuration与原始服务器相同。 整个访客操作系统和Apache服务器根存储在具有2G NIC(1G读取和1G写入)的SAN上。 我被告知这是必要的,以便有能力故障转移到另一个虚拟机,如果需要的话。
当运行具有相同参数的Apache Bench时,旧的单一服务器比新的“更大,更快”的Hyper-V机器性能要好20到30%。 我们在VM上安装了一个Apache 64位的Linux机器,但仍然有相同的性能问题。
我无法弄清楚为什么一台机器在所有领域都是一台“好得多”的机器(RAM,处理器等),性能如此糟糕。 这是存储在SAN上的操作系统和Apache根目录的结果吗? Hyper-V安装是否总是比非虚拟服务器执行更差? 你在哪里看,你将如何确定问题是什么?
新的虚拟机有一个Win2008服务器操作系统的访客,其configuration与原始服务器相同。
你是如何做到这一点的,因为Hyper-V目前只支持4个虚拟处理器,所以你只能在虚拟机上使用4个内核?
我被告知这是必要的,以便有能力故障转移到另一个虚拟机,如果需要的话。
不,你被告知这是一个需要故障转移到另一个主机 – 而不是另一个虚拟机。 请尝试听听人们告诉你什么。
这是存储在SAN上的操作系统和Apache根目录的结果吗?
你告诉我们 理论上这是每秒100mbit – 很多,但谁知道SAN有多快? 运行低级别比较,找出SAN性能是否比旧的光盘子系统的性能差得多。 不是一个笑话 – 看到了。
另外请注意,你有更less的CPU核心可用。
Hyper-V安装是否总是比非虚拟服务器执行更差?
取决于负载 – 是的。 看到,多虚拟机意味着更less的二级和三级caching命中(因为CPU跳转程序之间)。 不与Hyper-V相关 – 这对于不同的负载是很典型的。 但它不应该如此明显,特别是如果你是主机上唯一的机器。 你真的需要坐下来为系统pipe理员做基本的分析。 找出如何加载主机和虚拟机,运行比较。
一般情况下,不应该是这种情况 – 特别是在开始使用可怜的硬件时(4双核旧),但是在转换过程中,您将丢失CPU内核。