Hyper-V和NUMA架构那点事儿

最近连续做了几个微软虚拟化解决方案的售前演示,其实对于大部分客户来讲不会对一整套“相对完善”的方案在第一时间就看的很深入,反而通常会更在意一些最基础的功能和配置选项,特别是技术岗位的人往往都会有“先入为主”的情绪,这很正常,假设客户使用了N多年的VMware或者他是思杰铁粉儿,那么你怀揣着一套microsoft环境去给人家讲的时候,可能对方会先问一些hyper-v管理器的功能,甚至会问的很细,不要小看这些看似“不起眼”的功能选项,恰恰会成为不同厂商之间竞争的有力砝码或成为整套方案基础架构的核心支柱

#################################################################################

这篇文章主要以Hyper-V当中的NUMA功能来做一些说明,我本人也是这两天花时间查阅了一些资料,希望能给有需要的朋友提供一些帮助

【非统一内存访问(NUMA)

NUMA NODE NUMBER

1,0

Mask for 1

0,1

然后把算好的值加在你要监听的端口后面就行了,比如我要某一项服务在0,1节点上都跑,那么在1433端口后面加个[3]就行了

#######################################################################################

接下来我们在回到Hyper-V的话题上,宿主机支持NUMA架构的话,那么系统会自动把虚机分配到某一个节点上跑,我们还是拿刚才这台SQL服务器来说明;先安装一个winrar,然后运行自带的性能测试来给CPU加压

可以看到虚机的CPU使用率负载马上出现了变化

这个时候再来看一下宿主机,在性能监视器中添加“hyper-v VM vid partition”,可以看到当前这台“10.12_TFS_DB”的虚机跑在了节点1下(参考preferred NUMA node index=1),并且逻辑CPU使用率只占用了4个

######################################################################################

那么这里就会出现一个问题,一个NUMA节点的资源毕竟是有限的,这种架构说白了就是给物理资源进行了一个分组;把若干个逻辑CPU和若干大小的内存进行了绑定,以此来提高CPU对内存访问的命中率,有效减少了前端总线的瓶颈;但若此时多台虚机被分配到了同一节点时,可偏偏这个节点的资源又被吃满了怎么办?

其实这种场景下CPU通常不会是瓶颈,出问题的往往又是内存;于是乎总有一台突破临界点的虚机要去跨节点访问内存了;这时候问题就来了,NUMA架构就是为了划分节点边界,使数据交互尽量保持在各自节点内进行,,结果这么一跨访问;又会出现性能下降的问题了,而且不光本节点的这台虚机受影响,还会侵占被访问节点的资源;那么有没有什么办法来人为控制一下呢?肯定是有的,先来看一下跨节点访问时的效果吧

我们同时开启多台虚机,尽可能分配一些大内存;如下图所示

这时有意思的事情出现了,我们三台虚机DC、DB还有WEB都跑在了节点1上面,但是呢DC这台机器的“remote physical pages”出现了数值,这就是远程访问其他节点的内存;我们这台宿主机就俩节点,所以它一定是用到了节点0的资源;并且你可以通过页面大小来计算出它吃了多少非本地内存

####################################################################################

为了尽可能避免上述情况的发生,特别是面对一些对性能指标很敏感的需求时,我们就要手动的来限制一下;下面这个脚本是从msdn博客上挖来的,可以指定某台虚机与某个numa节点来做绑定,链接如下:

直接执行脚本会出现提示,支持三个参数:/list列出当前宿主机上的虚机名称;/set来做绑定;/clear来解除绑定

下面针对DC这台虚机来做一个绑定,让它去节点0上面跑,而不要跨节点的占用资源(关闭虚机后运行/set参数)

再回到性能监视器,可以看到此时“10.11_DC”这台虚机已经转移到了节点0上面了

再回到宿主机上观察CPU使用率,可以看到目前所有逻辑处理器基本都已经被占用了(说明节点0正在为DC虚机提供服务)

######################################################################################

有关hyper-v上面的虚拟NUMA节点先说这么多,在一些有针对性的需求时,还是很有意义的;这篇文章我也是参考了许多中英博文总结出来的,个人感觉很有意义并且认为很有必要分享出来,感兴趣的朋友们可以抽空测一测,欢迎随时与我交流,谢谢!

本文出自 “IT小卖铺儿” 博客,请务必保留此出处

却又小到连一粒嫉妒的沙石也不能容纳

Hyper-V和NUMA架构那点事儿

相关文章:

你感兴趣的文章:

标签云: