我们最近购买了运行Hyper-V 2008 R2裸机的服务器。该服务器有两个具有超线程功能的四核Intel Xeon处理器,因此,如果我理解正确,它将为我们提供16个内核。在Hyper-V中,我们创建了一个带有4个虚拟处理器的运行Windows Server 2008 R2的虚拟机。处理器设置屏幕告诉我这占系统总处理能力的25%。这是否意味着虚拟OS无法利用剩余的75%?我们将运行其他一些虚拟机,但这是用于SQL Server的虚拟机,我们希望尽可能多地利用它。
我们最近购买了运行Hyper-V 2008 R2裸机的服务器。该服务器有两个具有超线程功能的四核Intel Xeon处理器,因此,如果我理解正确,它将为我们提供16个内核。在Hyper-V中,我们创建了一个带有4个虚拟处理器的运行Windows Server 2008 R2的虚拟机。处理器设置屏幕告诉我这占系统总处理能力的25%。这是否意味着虚拟OS无法利用剩余的75%?我们将运行其他一些虚拟机,但这是用于SQL Server的虚拟机,我们希望尽可能多地利用它。
Answers:
vCPU只能映射到单个物理CPU。您不能使用4个物理CPU来使单个vCPU快4倍;这不是它的工作原理。
Hyper-V仅限于为VM分配4个vCPU(我上次检查)。如果您需要大量的CPU能力,请进行物理处理,那么首先将虚拟化开销添加到CPU密集型和并行化的事物中是没有意义的。
另外,如Holocryptic所述,如果您将4个vCPU分配给一个VM,则该虚拟机将无法运行,直到Hyper-V获得4个物理CPU内核来运行它们。根据您的配置,这可能是一个主要的障碍(例如,如果你有一个6芯机和一帮4层虚拟CPU的虚拟机,只有一个会在一个时间不断运行,另外两个核心将总是基本上未使用)。根据Jake Oshins的说法,对于任何版本的Hyper-V来说都是不正确的。他指出,Hyper-V不对CPU使用组调度。几乎与其他所有虚拟机管理程序一样。因此,如果一个物理CPU内核可用,则Hyper-V可以使用它来运行多CPU VM。(还提到,由于NUMA分区,Hyper-V可能不会使用当时所有可用的物理核心)
旁注:SQL不一定会首先使用您可以使用的所有内核。它实际上取决于您使用它的目的以及负载的可并行性。
是的,克里斯怎么说。如果在Hyper-V虚拟机中需要4个以上的CPU,则可以在虚拟环境中创建两个SQL Server,然后分布数据库或进行物理操作。根据您的SQL Server许可证,您可能可以在虚拟中(在同一物理主机上)添加更多SQL服务器,而不会产生更多的许可费用,但是请阅读SQL虚拟许可白皮书以获取更多信息。
我也同意,如果您的SQL用4个虚拟CPU耗尽了CPU的能力,那么您要么严重利用了应用程序,要么编写了错误的SQL命令。
遵循本指南
http://surminski.eu/2012/04/17/hyper-v-how-to-add-more-than-4-cores-to-a-virtual-machine/
您可以在VM的VHD目录的“ Virtual Machines”目录下找到vm xml配置文件,该配置文件将在VM的ID下命名。下面的链接是参考。
参考:VM xml配置文件
确保使用管理员权限打开的notepad / notepad ++编辑VM xml配置文件