独立单线程优化服务器vs VM在VMWare上运行

我很抱歉我的post的长度。

我们最近将我们的业务系统转换为由核心数量许可的产品。 我们购买了2核心许可证,目前正在VMWare上运行它。 转到下一个许可证级别是相当昂贵的。

我们有一些非常重要的性能问题。 我们已经消除了RAM作为一个瓶颈,以及networking,数据库和磁盘访问。 我们遇到的问题并不总是以高CPU使用率为特征。 有时CPU使用率低于20%,但CPU就绪率很高。

我正在思考直接在单独的物理服务器上运行它的可能性。 由于我限于两个内核,所以我会select最快的“单线程性能”CPU,我可能会得到4个内核。 然后我将业务系统设置为使用2个内核,并允许操作系统消耗其他2个内核。

我的逻辑是这样的。 现在虚拟机获得两个线程或vCPU。 这实际上只有一个pCPU。 即使我把它移动到没有超线程的同一个盒子,它也会得到2个完整核心,而不是2个vCPU。 但是如果我select单线速度更快的芯片,我可以获得更多的收益。 我也可能有一个小的收益,因为我不会再虚拟化了。

我们目前的6核CPU根据Passmark获得以下分数。 CPU标记:8570单线程性能:1403

我想要的4核心处理器得到这些分数。 CPU标记:10231单线程性能:2287

build立一个服务器是否有意义,以获得这样的应用程序的最佳单线程性能? 我有什么需要担心的吗? 一个新的操作系统会有很大的不同吗?

当前主机服务器具有以下规格:Proliant DL380 G7 2个物理CPU:Intel(R)Xeon(R)X5675 @ 3.07 GHz 6个内核每个用于24个逻辑处理器(vCPU)总数启用超线程。 144 GB的RAM

存储位于较新的SAN上,我相信这不会影响我们的性能问题。

业务系统虚拟机configuration2个vCPU和24 GB的RAM。 操作系统是Windows Server 2008 R2。 业务系统软件经过优化,可在IIS中的应用程序池中运行4 – 6 GB的RAM。 我从来没有看到虚拟机超过16 GB的使用。

我们还在主机上运行3个其他虚拟机。 一个现在真的很less,很可能会在不久的将来closures。 它有2个vCPU和8 GB的RAM。

第二个是运行我们的MS Sql数据库。 那个有8个vCPU和64GB的RAM。 我们有一个DBA看看它,他不觉得这是我们问题的原因,至less不是从数据库性能方面。

第三个VM正在运行我们的公共网站。 在CPU上平均不到25%。 它有3个vCPU和16 GB的RAM。

再次,任何帮助或智慧,你可以提供将是真棒,非常感激。

谢谢!

你的假设是正确的。 对于你的特殊情况,堆叠Mhz而不是vCore是一个正确的select。 看看这个处理器 :(function4x 3,5-3,7 Ghz物理核心+ HT)。

但是,除非您可以提供实际的“CPU准备就绪”值,否则我无法从您所描述的内容中看到真正的问题。

几件事情;

1)尽量限制自己虚拟机实际需要的vCPU数量。 这与VMware ESXi中的资源调度程序有关,如果您有一个具有8个vCPU的虚拟机,则必须在具有8个空闲空间的物理CPU上查找时隙,以运行虚拟机的时钟周期。 所以如果你每个CPU有6个内核,调度器必须在两个pCPU上find一个时隙,这基本上把所有其他的东西都搁置了。 虚拟机不像物理机器一样运行,它们在时钟周期之间被“冻结”,如果调度程序遇到问题,维持虚拟机将花费越来越多的时间“冻结”。 如果你没有在SQL虚拟机上运行一个庞大的数据库,请尝试降低它的vCPU到6,看看是否改善不了。 我通常每个默认运行1个vCPU,对于更大的虚拟机运行2个,对于一些更大的数据库,最多运行4个。 我从来没有见过需要添加更多。

2)不要在VMware中使用HyperThreading,根据VMware的一些testing,它可以提供更多的性能,大约10%左右,所以不要指望硬件性能提高2倍。

3)具有更快时钟频率的CPU可以使您的单线程性能更快,但是更less的内核使您能够运行更多的虚拟机。 VMware向您展示了主机上所有核心速度的总和,这就是ESXi将CPU视为计算能力的总和。