记录一下Windows2012Hyper-V中虚拟NUMA架构的笔记

记录一下Windows2012Hyper-V中虚拟NUMA架构的笔记

在Windows2012中由于有了可感知NUMA的虚拟机Hyper-V,因此类似SQLSERVER这样的应用程序性能将显著提高。然而也要注意,

虚拟机对NUMA的支持只适用于Windows2012中的Hyper-V,并且要求宿主机必须启用动态内存功能

关于动态内存

动态内存最早出现在Windows 2008R2 Hyper-V中,该技术使得虚拟化宿主机可更高效地使用物理内存,

并将其分配给宿主机上运行的虚拟机。动态内存技术可实时调整虚拟机能够使用的内存数量。

这些内存分配的调整完全基于虚拟机对内存的需求以及虚拟机上动态内存的配置参数。

动态内存技术可提供极大的扩展性和性能收益,尤其是在虚拟桌面基础架构VDI环境中,

在这样的环境中,特定时间内,宿主机上会有大量运行中的虚拟机处于空闲状态或低负载状态。

通过在类似这样的场景中使用动态内存,即可将更多数量的虚拟机整合到Hyper-V宿主。

最终只需要较少数量的宿主机即可为更多用户供应虚拟桌面,同时这也意味着您不需要购买太多高端服务器硬件。

换句话说,动态内存技术可帮你省钱

工作原理

虚拟NUMA技术可在虚拟机内呈现出NUMA拓扑,这样来宾操作系统与应用程序就可针对线程和内存的分配做出更智能的决策,并

反映到宿主机的物理NUMA拓扑中。

如下图,演示了一个支持NUMA的四CPU插槽宿主机以标注从1到4的四个物理NUMA节点。

该宿主机运行了两个虚拟机,每个虚拟机中呈现出两个虚拟NUMA节点,根据策略,

这些NUMA节点与宿主机的物理NUMA节点保持匹配。最终结果是,对于可感知NUMA的应用程序,

例如这些虚拟机的来宾操作系统内安装SQLSERVER就能据此分配自己的线程和内存资源,就好像自己正在具有两个NUMA节点的物理服务器上直接运行一样

虚拟NUMA与故障转移集群

在Windows2012中,对虚拟NUMA的支持还可扩展到使用故障转移集群技术的高可用性解决方案中。这样故障转移集群即可通过

评估节点的NUMA配置情况,随后才将虚拟机移动到指定节点,做出最适宜的虚拟机安置决策,并确保移动到的节点能够支持该虚拟机

的负载。故障转移集群环境中虚拟机的这种NUMA感知能力有助于减少故障转移操作的操作次数,改善虚拟机的持续运行时间。

 -----------------------------------------华丽的分割线------------------------------------------------------------

NUMA的解释

NUMA可充分利用高端服务器硬件所提供的新技术,在未来两年内很可能将成为服务器领域的标配功能。

NUMA在设计上可克服传统对称式多处理器(SMP)架构在扩展能力方面的局限,因为传统架构中对内存的所有访问

都需要通过同一条共享的内存总线实现。

如果CPU数量不多,SMP架构可很好地适应,但如果有几十个CPU需要访问共享总线就很容易出问题。

NUMA通过限制多少CPU可访问指定的一条内存总线,并使用高速链路进行互连,避免了这种性能瓶颈。

目前的服务器硬件有很大比例已经支持NUMA,这些服务器会使用多个总线系统,每个总线对应一个处理器插槽。

每个插槽可对应多个CPU,并且有自己的内存。处理器插槽和对应的内存,以及I/O系统组成了一个NUMA节点。

相比访问本地节点的内存,访问位于其他NUMA节点中的数据开销要大很多。

 -------------------------------------华丽的分割线----------------------------------------------------

总结

Windows2012介绍,下载地址:

https://files.cnblogs.com/lyhabc/WS2012_Intro_Book_RTM_Update_CN_20121122.pdf

 

posted @ 2013-05-17 23:23  桦仔  阅读(1541)  评论(0编辑  收藏  举报