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

一种基于业务优先级的K8S-OOM优化方法与流程

2022-12-13 21:27:22 来源:中国专利 TAG:
一种基于业务优先级的k8s-oom优化方法
技术领域
:1.本发明属于云计算
技术领域
:,尤其是涉及一种基于业务优先级的k8s-oom优化方法。
背景技术
::2.k8s原生podoom机制,当节点资源不足时,节点上运行的pod,会被k8s按照oom优先级杀死优先级低的pod,k8s把pod分成三个qos等级,而其中和lmits和requests参数有关;3.oom按照如下qos优先级排序,按照如下排序杀死pod,释放内存:4.besteffortpod》burstablepod》其它进程(内核init进程等)》guaranteedpod》kubelet/docker等》sshd等进程;5.原生oom机制不足:6.针对用户业务pod,用户基本都会配置request和limit,且request《limit,qos基本都是burstable,k8s针对burstablepod,未细化优先级排序,导致随机oom,重要的业务pod可能随机被oom掉,针对现有技术的不足,本文提出了一种基于用户业务pod优先级oom优化方法。技术实现要素:7.有鉴于此,为克服上述缺陷,本发明旨在提出一种基于业务优先级的k8s-oom优化方法。8.为达到上述目的,本发明的技术方案是这样实现的:9.第一方面,本发明提供了一种基于业务优先级的k8s-oom优化方法,包括:10.获取各节点上的业务pod为burstablepod的tps,记录业务pod当前使用内存;11.按照tps对各pod排序,采用hash和双向链表数据结构存储业务pod的tps、使用内存;12.当业务pod上次tps和当前从监控系统获取的tps变化小于设定的变化阈值,不更新业务pod在双向链表的位置,当变化大于等于设定的变化阈值,则更新链表排序,防止频繁变动双向链表带来时间成本。13.进一步的,在各k8s节点上运行oom检查模块,获取各节点上的业务pod为burstablepod的tps。14.进一步的,所述采用hash和双向链表数据结构存储业务pod的tps、使用内存,包括:各业务pod的tps按双向链表排序存储。15.进一步的,还包括设置节点总内存阈值:16.当业务pod内存使用达到节点总内存使用设定阈值后,优先oom掉tps小的pod,直到释放的内存不超过阈值,否则继续oom掉其他pod。17.进一步的,oom掉的pod若再次调度到该节点,且无其他节点的oom模块启动节点扩容,则启动节点扩容。18.第二方面,本发明提供了一种电子设备/服务器,包括处理器,以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器在执行所述指令时,实现上述第一方面所述的基于业务优先级的k8s-oom优化方法。19.第三方面,本发明提供了一种可读取存储介质,用于存储计算机程序,所述计算机程序在被处理器执行时,实现上述第一方面所述的基于业务优先级的k8s-oom优化方法。20.相对于现有技术,本发明所述的基于业务优先级的k8s-oom优化方法具有以下优势:21.可有效解决原生k8s针对qos=burstable的大量pod随机oom,导致重要业务pod误杀;解决节点资源不足时,自动扩容节点,分担业务压力。附图说明22.构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:23.图1为业务pod1-pod4按tps吞吐量,哈希 双向链表排序存储数据结构图;24.图2为业务pod1-pod5按tps吞吐量,哈希 双向链表排序存储数据结构图;25.图3为业务pod2吞吐量减少达到设定阈值,重新按哈希 双向链表排序存储数据结构图;26.图4为节点上pod使用内存和超过总内存设定阈值,oom掉后pod5后数据结构图。具体实施方式27.需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。28.下面将参考附图并结合实施例来详细说明本发明。29.本实施例提供了一种基于业务优先级的k8s-oom优化方法,在各k8s节点上运行一oom检查模块,并执行如下方法:30.1、周期性从业务监控系统,获取该节点上的业务pod为burstablepod的tps,记录pod当前使用内存。31.2、按tps排序各pod,采用hash 双向链表数据结构存储pod的tps、使用内存,各pod的tps按双向链表排序存储。32.3、当pod上次tps和当前从监控系统获取的tps变化小于设定的变化阈值,不更新pod在双向链表的位置,当变化大于等于设定的变化阈值,则更新链表排序,防止频繁变动双向链表带来时间成本。33.4、节点上,业务pod内存使用达到节点总内存使用设定阈值后,优先oom掉tps小的pod,直到释放的内存不超过阈值,否继续oom掉其他pod。34.5、oom掉的pod若再次调度到该节点,且无其他节点的oom模块启动节点扩容,则启动节点扩容。35.示例:36.如图1所示,用户部署业务pod1-pod4,oom模块周期性检查时间到,当前节点存在:pod1、pod2...pod4,请求吞吐量排序n2(pod2)》n1(pod1)》n3(pod3)》n4(pod4),构建其数据结构,所有pod内存和未达到总内存阈值n%:(m1 m2 m3 m4)/m《n%,不进行oom。37.如图2所示,用户部署业务pod5,oom模块周期性检查时间到,当前节点存在:pod1、pod2...pod5,请求吞吐量排序n2(pod2)》n1(pod1)》n3(pod3)》n4(pod4)》n5(pod5),构建其数据结构,所有pod内存和未达到总内存阈值n%:(m1 m2 m3 m4 m5)/m《n%,不进行oom。38.如图3所示,oom模块周期性检查时间到,当前节点存在:pod1、pod2...pod5,请求吞吐量排序n1(pod1)》n2(pod2)》n3(pod3)》n4(pod4)》n5(pod5),且pod2的吞吐量变化达到设定阈值,重新排序,构建其数据结构,所有pod内存和未达到总内存阈值n%:(m1 m2 m3 m4 m5)/m《n%,不进行oom。39.如图4所示,oom模块周期性检查时间到,当前节点存在:pod1、pod2...pod5,请求吞吐量排序n1(pod1)》n2(pod2)》n3(pod3)》n4(pod4)》n5(pod5),且各pod吞吐量未达到变化阈值,且pod2的吞吐量变化达到设定阈值,数据结构不变,所有pod内存和达到总内存阈值n%:(m1 m2 m3 m4 m5)/m》=n%,oom掉tps最低的pod5,计算(m1 m2 m3 m4)/m《n%,如果还是大于阈值n%,则继续oom最小吞吐量pod4,oom掉pod5,oom掉的pod若继续调度到当前节点,且当前无其他节点的oom模块启动节点扩容,则启动扩容节点。40.本实施例提供了一种服务器,包括处理器,以及与处理器通信连接,且用于存储所述处理器可执行指令的存储器,所述处理器在执行所述指令时,实现上述实施例所述的基于业务优先级的k8s-oom优化方法。41.本实施例提供了一种可读取存储介质,用于存储计算机程序,所述计算机程序在被处理器执行时,实现上述实施例所述的基于业务优先级的k8s-oom优化方法。42.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。43.在本技术所提供的几个实施例中,应该理解到,所揭露的方法和系统,可以通过其它的方式实现。例如,以上所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。上述单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。44.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。45.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献