Hyper-V guest虚拟机在分配多于1个vCPU时会看到多个CPU(插槽)还是多个CPU核心?

我有两台vCPU-s的基于Hyper-V的虚拟机上运行的SQL Server 2008 Express。 我刚刚阅读了SQL Server 2012 Express,并注意到它的CPU是“限于1个插槽或4个内核的较小者”( http://msdn.microsoft.com/zh- cn / library / cc645993( v = SQL.110).aspx )

我的问题是SQL Server 2012的CPU /内核限制如何转化为vCPU-s? 他们是“加工者”还是他们的“核心”?

编辑:

我刚刚发现这个: vCPU是一样的1套接字,还是一个单一的核心?

基本上解决scheme是下载CPU-Z和检查,我做了。 在我的2个vCPU VPS上,CPUZ显示1个核心2线程,所以听起来像我的SQL Express应该在两个vCPU上运行。 但是,当我进入处理器关联configuration时,它显示了2个处理器,看起来它只是使用分配给我的VPS的一个vCPU。 我完全困惑:/

每个vCPU在来宾操作系统中都被视为单个CPU,这意味着来宾操作系统及其内部的应用程序,每个物理核心都是一个CPU。

虚拟化抽象了物理硬件,因此所有客户操作系统及其内部的任何应用程序都可以看到pipe理程序传递给它们的值。 在你的情况下,pipe理程序告诉操作系统你有两个CPU,因为这是你如何设置 – 有两个虚拟CPU。 所以当SQL查看你有多less个CPU时,SQL会看到你分配的两个[虚拟] CPU,所以SQL Express限制自己使用一个。

我想我应该补充一点: 如何在Hyper-V中configurationvCPU很快而且很脏 。 如果您希望SQL Express使用更多的CPU资源,请放入一个vCPU,并将其映射到更多的物理处理器和/或更高的资源限制。 这将允许SQL Express使用主机可以分配给它的尽可能多的CPU资源,而不会碰到SQL Express的CPU许可限制。

哦,但是不要在现有的操作系​​统上这样做,因为在Windows操作系统中更改单个CPU和多个CPU之间的处理器数量会导致麻烦 – 这会使操作系统不稳定。 创build一个新的虚拟机,安装一个新的操作系统,这次只需创build一个vCPU,您可以将其映射到更多的物理资源。

Server 2008和Server 2008 R2中的Hyper-V将虚拟拓扑投影到看起来像具有多个内核的单个CPU的虚拟机。 如果你想亲自看看,请从Sysinternals下载Coreinfo。 (目前在http://technet.microsoft.com/en-us/sysinternals/cc835722

Server 2012中的Hyper-V可以投影许多不同种类的虚拟拓扑,这对于configuration具有大量虚拟处理器的工作负载非常有用。 它将默认投影与物理拓扑相匹配的拓扑,但是可以覆盖该拓扑。

请注意,更改投影到VM中的拓扑可以通过使来宾操作系统和应用程序堆栈作出不同的configuration决策来改变其内部工作负载的性能。 仅仅改变客户拓扑结构,不能使你进入许可合规。