一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于NUMA架构的容器部署亲和性配置优化的方法与流程

2022-04-30 09:16:55 来源:中国专利 TAG:

一种基于numa架构的容器部署亲和性配置优化的方法
技术领域
1.本发明涉及新兴信息技术领域,特别涉及一种基于numa架构的容器部署亲和性配置优化的方法。


背景技术:

2.亲和性(affinity):假设应用a与应用b两个应用频繁交互,因此让两个应用的尽可能的靠近,甚至在一台服务器上,以减少因距离而带来的性能损耗。
3.kubernetes集群包含两种亲和性(affinity)策略,分别为node亲和性(node affinity)、pod亲和性(inter-pod affinity);node亲和性(node affinity)类似于节点选择器(nodeselector),允许我们指定一些pod在node间调度的约束;pod亲和性允许用户通过已经运行的pod的标签来决定调度策略,用文字描述就是“如果node x上运行了一个或多个满足y条件的pod,那么这个pod在node应该运行在pod x”,因为node没有命名空间,pod有命名空间,这样就允许管理员在配置的时候指定这个亲和性策略适用于哪个命名空间,并可以通过topologykey来指定分配在哪类的node;基于以上2种亲和性策略基本可以满足大部分容器调度的需求,但在numa架构下还没有达到最佳的亲和策略(numa,non-uniform memory access,即非统一内存访问架构),本专利针对这一场景,提出了一种基于numa架构的容器部署亲和性配置优化的方法,numa架构图如图1所示:(注:此图为2个socket、4颗cpu、2个node的numa架构图,未包含所有相关组件,实际情况除内存及cpu以外还有其它设备如gpu/nic等)
4.如图1所示,cpu访问内存有了远近(remote/local)之别,因此让具备亲和性关系的容器尽可能分配至在numa架构下的同一node中(注:此处是numa架构中的node,非kubernetes的node),通过从而实现更好的亲和性,有效的提升应用的性能。


技术实现要素:

5.本发明要解决的技术问题是克服现有技术的缺陷,提供一种基于numa架构的容器部署亲和性配置优化的方法,针对kubernetes使用亲和性策略时,提出一种基于numa架构的容器部署亲和性配置优化的方法,配置numa node级别的容器亲和性,使其尽可能减少应用计算及数据拷贝等方面的性能损耗,从而有效的提升应用的性能。
6.本发明提供了如下的技术方案:
7.本发明提供一种基于numa架构的容器部署亲和性配置优化的方法,kubernetes中1台4颗cpu/8g内存服务器(host)上的numa架构,既2个node(node01、node02)、4颗cpu(cpu0、cpu1、cpu2、cpu3),其中cpu0、cpu1属于node1,cpu2、cpu3属于node2,以及每个node对应4g内存插槽;
8.通过云计算平台启动2个需要资源1颗cpu/2g内存应用pod既pod01、pod02,因两者存在亲和性;
9.通过kubernetes的亲和性策略分配到了同一台主机上;
10.pod01、pod02分别调度到了numa node1、numa node2上,两者同属于同一服务器(host),事实上,将pod01、pod02均部署在numa的node1或者node2上才是更具亲和性的部署位置,具体过程描述如下:
11.1)用户提交创建kubernetes pod01请求,且对pod02有亲和性(注:pod01、pod02在设定cpu request时必须为整数,指定了整数型cpu requests的容器,才会被分配独占cpu资源);
12.2)在请求提交给kubernetes apiserver之前,判断该请求是否使用numa node亲和性,如果是则进入下一步,如果否,则直接将请求传递给kubernetes apiserver创建pod,继续后面的亲和性策略调度;
13.3)查询接口获取pod02容器的主机名以及numa node编号;
14.4)修改pod创建请求参加,增加numa node的亲和性属性(包括主机名以及numa node);
15.5)调用kubernetes apiserver创建pod,至此整个创建完成(注:此处需扩充kubelet代码实现numa node的感知以及优先级选择);
16.通过以上过程,最终部署呈现中,pod01和pod02分配到了同一台主机上的同一个numa node上,充分共享cpu缓存(l1/l2/l3)以及同一numa node下内存的高速传输,使其尽可能减少计算及数据拷贝等方面的性能损耗,从而有效的提升应用的性能。
17.与现有技术相比,本发明的有益效果如下:
18.目前云计算平台在kubernetes使用亲和性策略时,并没有考虑应用pod在numa架构下的cpu等设备的分布距离,本专利提出一种基于numa架构的容器部署亲和性配置优化的方法,配置numa node级别的容器亲和性,使其尽可能减少应用计算及数据拷贝等方面的性能损耗,从而有效的提升应用的性能。
附图说明
19.附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
20.图1是本发明的numa架构图;
21.图2是本发明的实施例示意图之一;
22.图3是本发明的实施例示意图之二;
23.图4是本发明的实施例示意图之三;
24.图5是本发明的实施例示意图之四。
具体实施方式
25.以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。其中附图中相同的标号全部指的是相同的部件。
26.实施例1
27.如图1-5,本发明提供一种基于numa架构的容器部署亲和性配置优化的方法,如图2所示,kubernetes中1台4颗cpu/8g内存服务器(host)上的numa架构,既2个node(node01、
node02)、4颗cpu(cpu0、cpu1、cpu2、cpu3),其中cpu0、cpu1属于node1,cpu2、cpu3属于node2,以及每个node对应4g内存插槽。
28.如图3所示,通过云计算平台启动2个需要资源1颗cpu/2g内存应用pod既pod01、pod02,因两者存在亲和性
29.通过kubernetes的亲和性策略分配到了同一台主机上;
30.由图3可知pod01、pod02分别调度到了numa node1、numa node2上,两者同属于同一服务器(host),事实上,将pod01、pod02均部署在numa的node1或者node2上才是更具亲和性的部署位置,实施过程如图4所示,具体过程描述如下:
31.1)用户提交创建kubernetes pod01请求,且对pod02有亲和性(注:pod01、pod02在设定cpu request时必须为整数,指定了整数型cpu requests的容器,才会被分配独占cpu资源);
32.2)在请求提交给kubernetes apiserver之前,判断该请求是否使用numa node亲和性,如果是则进入下一步,如果否,则直接将请求传递给kubernetes apiserver创建pod,继续后面的亲和性策略调度;
33.3)查询接口获取pod02容器的主机名以及numa node编号;
34.4)修改pod创建请求参加,增加numa node的亲和性属性(包括主机名以及numa node);
35.5)调用kubernetes apiserver创建pod,至此整个创建完成(注:此处需扩充kubelet代码实现numa node的感知以及优先级选择);
36.通过以上过程,最终部署呈现如图5所示,pod01和pod02分配到了同一台主机上的同一个numa node上,充分共享cpu缓存(l1/l2/l3)以及同一numa node下内存的高速传输,使其尽可能减少计算及数据拷贝等方面的性能损耗,从而有效的提升应用的性能。
37.目前云计算平台在kubernetes使用亲和性策略时,并没有考虑应用pod在numa架构下的cpu等设备的分布距离,本专利提出一种基于numa架构的容器部署亲和性配置优化的方法,配置numa node级别的容器亲和性,使其尽可能减少应用计算及数据拷贝等方面的性能损耗,从而有效的提升应用的性能。
38.最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献