Hyper-V 处理器限制

Hyper-V 处理器限制

我们最近购买了一台运行 Hyper-V 2008 R2 裸机的服务器。该服务器有两个四核 Intel Xeon 处理器,具有超线程功能,如果我没有理解错的话,这给了我们 16 个核心。在 Hyper-V 中,我们创建了一个运行 Windows Server 2008 R2 的虚拟机,该虚拟机有 4 个虚拟处理器。处理器设置屏幕告诉我,这代表了整个系统处理能力的 25%。这是否意味着虚拟操作系统无法利用剩余的 75%?我们将运行其他几个虚拟机,但这个虚拟机用于 SQL Server,我们希望尽可能地为其提供强大的功能。

答案1

一个 vCPU 只能映射到一个物理 CPU。您无法使用 4 个物理 CPU 来制作一个速度快 4 倍的 vCPU;这根本不是它的工作原理。

Hyper-V 最多只能为虚拟机分配 4 个 vCPU(我上次检查过)。如果您需要强大的 CPU 能力,那就使用物理机吧,没有必要为某些东西增加虚拟化开销首先是CPU密集型和并行。

此外,正如 Holocryptic 所指出的,如果您为虚拟机分配 4 个 vCPU,则该虚拟机无法运行,直到 Hyper-V 获得 4 个物理 CPU 核心来运行它们。根据您的配置,这可能是一个主要的绊脚石(例如,如果您有一台 6 核机器,里面有一堆 4 个 vCPU 虚拟机,那么一次只能运行一个,其他两个核心将始终运行本质上未使用)。根据杰克·奥辛斯对于任何版本的 Hyper-V 来说,情况都不是这样。他指出,Hyper-V 不使用成组调度来调度 CPU;而几乎所有其他虚拟机管理程序都这样做。因此,如果有一个物理 CPU 核心可用,Hyper-V 可以使用它来运行多 CPU VM。(还提到,由于 NUMA 分区,Hyper-V 可能不会使用当时可用的所有物理核心)

附注:SQL 不一定会首先使用所有可用的内核。它真的取决于您使用它的目的以及负载的可并行性。

答案2

是的,正如 Chris 所说。如果您需要在 Hyper-V 虚拟机中使用 4 个以上的 CPU,那么要么在虚拟环境中创建两个 SQL 服务器并分散您的数据库,要么使用物理服务器。根据您的 SQL 服务器许可证,您可能能够在虚拟环境中(在同一物理主机上)添加更多 SQL 服务器,而无需支付更多许可费用,但请阅读 SQL 虚拟许可白皮书以了解更多信息。

我也同意,如果您的 SQL 使用 4 个虚拟 CPU 时 CPU 能力耗尽,那么您的应用程序利用率就会很严重,或者 SQL 命令写得很糟糕。

答案3

关于 4 个 CPU 核心的限制:

在虚拟机的配置文件部分:

[处理器] [count type=”integer”]16[/count]

现在您有 16 核 CPU。

更新:似乎需要截图

在此处输入图片描述

答案4

遵循本指南

http://surminski.eu/2012/04/17/hyper-v-how-to-add-more-than-4-cores-to-a-virtual-machine/

您可以在虚拟机的 VHD 目录的“虚拟机”目录下找到 vm xml 配置文件,配置文件将以虚拟机的 id 命名。以下链接是参考。

参考:虚拟机 xml 配置文件

确保使用 notepad/notepad++ 编辑虚拟机 xml 配置文件管理员权限

相关内容