CN112000422A - 一种防止容器编排框架中pod内存溢出的方法、装置 - Google Patents
一种防止容器编排框架中pod内存溢出的方法、装置 Download PDFInfo
- Publication number
- CN112000422A CN112000422A CN202010693798.8A CN202010693798A CN112000422A CN 112000422 A CN112000422 A CN 112000422A CN 202010693798 A CN202010693798 A CN 202010693798A CN 112000422 A CN112000422 A CN 112000422A
- Authority
- CN
- China
- Prior art keywords
- memory
- request
- threshold value
- flow
- interception
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000012544 monitoring process Methods 0.000 claims abstract description 38
- 230000009467 reduction Effects 0.000 claims abstract description 9
- 239000003607 modifier Substances 0.000 claims description 17
- 238000011084 recovery Methods 0.000 claims description 8
- 230000008520 organization Effects 0.000 claims 1
- 230000002159 abnormal effect Effects 0.000 abstract description 3
- 230000000737 periodic effect Effects 0.000 description 4
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005265 energy consumption Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种防止容器编排框架中POD内存溢出的方法、装置,所述方法包括如下步骤:监控POD的当前内存大小,并根据当前内存大小与预设置的内存阈值计算出内存使用率,如果内存使用率大于设定的阈值时,发出进行流量控制的请求;接收到流量控制的请求后,将根据连续请求次数判断拦截等级并根据拦截等级对应的丢包率执行丢包操作来调整流量;当设定时间段内一直以最高拦截等级进行流量的调整时,发送内存阈值调整请求;接收到内存阈值调整请求后,动态更改应用内存阈值,实现内存使用率的降低。避免了应用因业务激增、异常访问或应用GC导致内存使用过大,造成内存溢出使应用被杀死的可能。
Description
技术领域
本发明涉及kubernetes集群中的POD应用技术领域,具体涉及一种防止容器编排框架中POD内存溢出的方法、装置。
背景技术
POD应用运行在kubernetes集群中,Kubernetes是Google开源的一个容器编排框架,也叫容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡,当POD(POD,应用执行程序和运行环境)运行过程中使用的内存超过设置值时,将会被控制器杀死,导致应用短时间内无法提供服务,由于无法快速测试到应用周期性使用的内存资源,预先设置限制将可能出现两种情况,第一是实际业务需求一直大于限制值,另外一种情况是实际业务与限制值还有很大的距离。以上两种情况都将会带来损失。
发明内容
考虑到设置的内存大小和建立连接数的不确定关系,无法直接限制连接数防止内存溢出,本发明提供一种防止容器编排框架中POD内存溢出的方法、装置。通过采用监控内存使用率判断是否触发截流、降低服务质量。
本发明的技术方案是:
一方面,本发明技术方案提供一种防止容器编排框架中POD内存溢出的方法,包括如下步骤:
监控POD的当前内存大小,并根据当前内存大小与预设置的内存阈值计算出内存使用率,如果内存使用率大于设定的阈值时,发出进行流量控制的请求;
接收到流量控制的请求后,将根据连续请求次数判断拦截等级并根据拦截等级对应的丢包率执行丢包操作来调整流量;当设定时间段内一直以最高拦截等级进行流量的调整时,发送内存阈值调整请求;
接收到内存阈值调整请求后,动态更改应用内存阈值,实现内存使用率的降低。
进一步的,监控POD的当前内存大小,并根据当前内存大小与预设置的内存阈值计算出内存使用率,如果内存使用率大于设定的阈值时,发出进行流量控制的请求的步骤包括:
获取当前POD设置的内存阈值;
获取当前POD使用的内存大小值;
根据内存阈值和当前内存大小值计算内存使用率;其中,内存使用率=当前内存大小值/内存阈值;
为了防止内存溢出,如果内存使用率大于设定的阈值时,发出进行流量控制的请求。在这里检测是周期性的相应的流量控制请求也是周期性的。
进一步的,监控POD的当前内存大小,并根据当前内存大小与预设置的内存阈值计算出内存使用率,如果内存使用率大于设定的阈值时,发出进行流量控制的请求的步骤之前包括:
根据历史流量控制的请求连续请求次数将请求进行拦截等级的划分,每个拦截等级对应一个丢包率;在这里,拦截等级越高相应的丢包力度就越大。
将划分的拦截等级以及对应的丢包率存储到本地存储文件。
进一步的,接收到流量控制的请求后,将根据连续请求次数判断拦截等级并根据拦截等级对应的丢包率执行丢包操作来调整流量;当设定时间段内一直以最高拦截等级进行流量的调整时,发送内存阈值调整请求的步骤包括:
接收到流量控制的请求后,检查本地存储文件判断该请求所属的等级,存储该等级值和时间戳;根据时间戳判断请求的连续性。
若时间戳是连续的内存监测周期,将根据连续的内存监测周期的个数判断拦截等级并根据拦截等级对应的丢包率执行丢包操作来调整流量;
当设定时间段内一直以最高拦截等级进行流量的调整时,发送内存阈值调大请求,同时发布应用异常的告警通知。
进一步的,接收到内存阈值调整请求后,动态更改应用内存阈值,实现内存使用率的降低的步骤包括:
接收到内存阈值调整请求后,计算应用运行节点的空闲资源,并根据计算结果将通过更改CGroup参数值动态更改应用内存阈值变大并将更改的内存阈值进行存储,实现内存使用率的降低。
进一步的,若时间戳是连续的内存监测周期,将根据连续的内存监测周期的个数判断拦截等级并根据拦截等级对应的丢包率执行丢包操作来调整流量的步骤还包括:
若在下一个内存监测周期时,未收到流量控制的请求,发送内存阈值恢复请求;
接收到内存阈值恢复请求后,动态恢复默认的内存阈值,并将内存阈值进行存储。节省资源降低能耗。
另一方面,本发明技术方案提供一种防止容器编排框架中POD内存溢出的装置,包括内存监测器、流量控制器、内存动态更改器;
内存监测器,应用监控POD的当前内存大小,并根据当前内存大小与预设置的内存阈值计算出内存使用率,如果内存使用率大于设定的阈值时,发出进行流量控制的请求到流量控制器;
流量控制器,用于接收到流量控制的请求后,将根据连续请求次数判断拦截等级并根据拦截等级对应的丢包率执行丢包操作来调整流量;当设定时间段内一直以最高拦截等级进行流量的调整时,发送内存阈值调整请求到内存动态更改器;从而降低应用内存等资源的使用。
内存动态更改器,用于接收到内存阈值调整请求后,动态更改应用内存阈值,实现内存使用率的降低。
进一步的,内存监测器包括内存阈值获取模块、当前内存值获取模块、计算判断模块和流量控制请求发送模块;
内存阈值获取模块,用于获取当前POD设置的内存阈值;
当前内存值获取模块,用于获取当前POD使用的内存大小值;
计算判断模块,用于根据内存阈值和当前内存大小值计算内存使用率并判断内存使用率与设定阈值的大小;其中,内存使用率=当前内存大小值/内存阈值;
流量控制请求发送模块,用于计算判断模块输出内存使用率大于设定的阈值时,发出进行流量控制的请求。
进一步的,该装置还包括设置器;
设置器,用于根据历史流量控制的请求连续请求次数将请求进行拦截等级的划分,每个拦截等级对应一个丢包率;还用于将划分的拦截等级以及对应的丢包率存储到本地存储文件;
进一步的,流量控制器包括检查模块、请求判断模块、流量调整模块和内存调整请求发送模块;
检查模块,用于接收到流量控制的请求后,检查本地存储文件判断该请求所属的等级,存储该等级值和时间戳;
请求判断模块,用于判断若时间戳是连续的内存监测周期,将根据连续的内存监测周期的个数判断拦截等级并输出信息到流量调整模块;
流量调整模块,用于根据请求判断模块输出的拦截等级对应的丢包率执行丢包操作来调整流量;
内存调整请求发送模块,用于当设定时间段内一直以最高拦截等级进行流量的调整时,发送内存阈值调大请求,同时发布应用异常的告警通知。
进一步的,内存动态更改器,具体用于接收到内存阈值调整请求后,计算应用运行节点的空闲资源,并根据计算结果将通过更改CGroup参数值动态更改应用内存阈值变大并将更改的内存阈值进行存储,实现内存使用率的降低。
进一步的,请求判断模块,还用于若在下一个内存监测周期时,未收到流量控制的请求,发送内存阈值恢复请求到内存动态更改器;
内存动态更改器,还用于接收到内存阈值恢复请求后,动态恢复默认的内存阈值,并将内存阈值进行存储。
内存监测器根据内存使用率判断是否向流量控制器发送流量控制请求,流量控制器根据请求的次数也就是频率执行分阶段流量大小限制,无请求情况下可自动恢复至无拦截状态,当出现异常情况无法通过分阶段流量控制,则发起内存阈值调整请求并通知管理员,内存动态更改器接收到流量控制器的请求后,将动态更改应用资源最大限制,当收到恢复默认值时也将动态变更。
从以上技术方案可以看出,本发明具有以下优点:采用监控内存使用率判断是否触发截流、降低服务质量。若内存使用率持续增高,则需动态增加内存,然后再向管理员发布告警信息,从而保障了应用持续可靠的提供服务。加强了kubernetes集群中应用持续提供服务的需求,避免了应用因业务激增、异常访问或应用GC导致内存使用过大,造成内存溢出使应用被杀死的可能。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的装置的示意性框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
如图1所示,本发明实施例提供一种防止容器编排框架中POD内存溢出的方法,包括如下步骤:
S1:监控POD的当前内存大小,并根据当前内存大小与预设置的内存阈值计算出内存使用率,如果内存使用率大于设定的阈值时,发出进行流量控制的请求;
S2:接收到流量控制的请求后,将根据连续请求次数判断拦截等级并根据拦截等级对应的丢包率执行丢包操作来调整流量;当设定时间段内一直以最高拦截等级进行流量的调整时,发送内存阈值调整请求;
S3:接收到内存阈值调整请求后,动态更改应用内存阈值,实现内存使用率的降低。
在有些实施例中,步骤S1中,在运行POD中注入守护容器,然后监控POD的内存使用情况,并计算出内存使用率,具体包括:
S11:获取当前POD设置的内存阈值;从APIServer中获得当前POD设置的内存最大值,例如:请求/api/v1/pod/namespace/test得到MEMORY=1024Mi,
S12:获取当前POD使用的内存大小值;从Metric Server中获得当前POD使用的内存大小,例如:MEMORY=900Mi;
S13:根据内存阈值和当前内存大小值计算内存使用率;其中,内存使用率=当前内存大小值/内存阈值;例如:内存使用率=900Mi/1024Mi≈88%
S14:如果内存使用率大于设定的阈值时,发出进行流量控制的请求。在这里检测是周期性的相应的流量控制请求也是周期性的。例如,设定的阈值为80%;
需要说明的是,S1的步骤之前包括:
S0:根据历史流量控制的请求连续请求次数将请求进行拦截等级的划分,每个拦截等级对应一个丢包率,并将划分的拦截等级以及对应的丢包率存储到本地存储文件。例如,拦截等级的划分为三个等级,分别是第一等级、第二等级和第三等级;对应的丢包率,第一等级10%、第二等级15%、第三等级20%,等级越高对应的丢包率越大,当大于第三等级以后,需请求内存阈值调整并发出告警通知管理员,持续以第三等级的丢包率20%进行操作。
在有些实施例中,步骤S2具体包括:
S21:接收到流量控制的请求后,检查本地存储文件判断该请求所属的等级,存储该等级值和时间戳;根据时间戳判断请求的连续性。
S22:若时间戳是连续的内存监测周期,将根据连续的内存监测周期的个数判断拦截等级并根据拦截等级对应的丢包率执行丢包操作来调整流量;
S23:当设定时间段内一直以最高拦截等级进行流量的调整时,发送内存阈值调大请求,同时发布应用异常的告警通知。例如:等级为三级level=3,根据时间片段进行丢包iptables-A OUTPUT-d 192.168.1.1-p tcp--tcp-flags SYN,ACK,FIN,RST ACK-j DROP,则在一分钟内iptables规则总生效12s。
在有些实施例中,步骤S3具体为:接收到内存阈值调整请求后,计算应用运行节点的空闲资源,并根据计算结果将通过更改CGroup参数值动态更改应用内存阈值变大并将更改的内存阈值进行存储,实现内存使用率的降低。
在有些实施例中,若时间戳是连续的内存监测周期,将根据连续的内存监测周期的个数判断拦截等级并根据拦截等级对应的丢包率执行丢包操作来调整流量的步骤还包括:
若在下一个内存监测周期时,未收到流量控制的请求,发送内存阈值恢复请求;
接收到内存阈值恢复请求后,动态恢复默认的内存阈值,并将内存阈值进行存储。节省资源降低能耗。当一个周期内未收到流量控制的请求后,则先请求内存动态调整器恢复为初始内存阈值,然后再按照递减的方式降低拦截等级直到完全放开。使用运行节点的空闲资源,例如:/api/kubelet/mem收到恢复默认值请求,例如/api/kubelet/remem?mem=1024MiB。
如图2所示,本发明实施例提供一种防止容器编排框架中POD内存溢出的装置,包括内存监测器、流量控制器、内存动态更改器;
内存监测器,应用监控POD的当前内存大小,并根据当前内存大小与预设置的内存阈值计算出内存使用率,如果内存使用率大于设定的阈值时,发出进行流量控制的请求到流量控制器;
流量控制器,用于接收到流量控制的请求后,将根据连续请求次数判断拦截等级并根据拦截等级对应的丢包率执行丢包操作来调整流量;当设定时间段内一直以最高拦截等级进行流量的调整时,发送内存阈值调整请求到内存动态更改器;从而降低应用内存等资源的使用。
内存动态更改器,用于接收到内存阈值调整请求后,动态更改应用内存阈值,实现内存使用率的降低。
在有些实施例中,内存监测器包括内存阈值获取模块、当前内存值获取模块、计算判断模块和流量控制请求发送模块;
内存阈值获取模块,用于获取当前POD设置的内存阈值;
当前内存值获取模块,用于获取当前POD使用的内存大小值;
计算判断模块,用于根据内存阈值和当前内存大小值计算内存使用率并判断内存使用率与设定阈值的大小;其中,内存使用率=当前内存大小值/内存阈值;
流量控制请求发送模块,用于计算判断模块输出内存使用率大于设定的阈值时,发出进行流量控制的请求。
需要说明的是,该装置还包括设置器;
设置器,用于根据历史流量控制的请求连续请求次数将请求进行拦截等级的划分,每个拦截等级对应一个丢包率;还用于将划分的拦截等级以及对应的丢包率存储到本地存储文件;
在有些实施例中,流量控制器包括检查模块、请求判断模块、流量调整模块和内存调整请求发送模块;
检查模块,用于接收到流量控制的请求后,检查本地存储文件判断该请求所属的等级,存储该等级值和时间戳;
请求判断模块,用于判断若时间戳是连续的内存监测周期,将根据连续的内存监测周期的个数判断拦截等级并输出信息到流量调整模块;
流量调整模块,用于根据请求判断模块输出的拦截等级对应的丢包率执行丢包操作来调整流量;
内存调整请求发送模块,用于当设定时间段内一直以最高拦截等级进行流量的调整时,发送内存阈值调大请求,同时发布应用异常的告警通知。
在有些实施例中,内存动态更改器,具体用于接收到内存阈值调整请求后,计算应用运行节点的空闲资源,并根据计算结果将通过更改CGroup参数值动态更改应用内存阈值变大并将更改的内存阈值进行存储,实现内存使用率的降低。
进一步的,在有些实施例中,请求判断模块,还用于若在下一个内存监测周期时,未收到流量控制的请求,发送内存阈值恢复请求到内存动态更改器;
内存动态更改器,还用于接收到内存阈值恢复请求后,动态恢复默认的内存阈值,并将内存阈值进行存储。内存动态更改器收到增大内存请求后,使用主机限制资源动态调整应用最大内存阈值,收到恢复内存阈值请求后,变更应用内存限制。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种防止容器编排框架中POD内存溢出的方法,其特征在于,包括如下步骤:
监控POD的当前内存大小,并根据当前内存大小与预设置的内存阈值计算出内存使用率,如果内存使用率大于设定的阈值时,发出进行流量控制的请求;
接收到流量控制的请求后,将根据连续请求次数判断拦截等级并根据拦截等级对应的丢包率执行丢包操作来调整流量;当设定时间段内一直以最高拦截等级进行流量的调整时,发送内存阈值调整请求;
接收到内存阈值调整请求后,动态更改应用内存阈值,实现内存使用率的降低。
2.根据权利要求1所述的一种防止容器编排框架中POD内存溢出的方法,其特征在于,监控POD的当前内存大小,并根据当前内存大小与预设置的内存阈值计算出内存使用率,如果内存使用率大于设定的阈值时,发出进行流量控制的请求的步骤包括:
获取当前POD设置的内存阈值;
获取当前POD使用的内存大小值;
根据内存阈值和当前内存大小值计算内存使用率;其中,内存使用率=当前内存大小值/内存阈值;
如果内存使用率大于设定的阈值时,发出进行流量控制的请求。
3.根据权利要求1所述的一种防止容器编排框架中POD内存溢出的方法,其特征在于,监控POD的当前内存大小,并根据当前内存大小与预设置的内存阈值计算出内存使用率,如果内存使用率大于设定的阈值时,发出进行流量控制的请求的步骤之前包括:
根据历史流量控制的请求连续请求次数将请求进行拦截等级的划分,每个拦截等级对应一个丢包率;
将划分的拦截等级以及对应的丢包率存储到本地存储文件。
4.根据权利要求1所述的一种防止容器编排框架中POD内存溢出的方法,其特征在于,接收到流量控制的请求后,将根据连续请求次数判断拦截等级并根据拦截等级对应的丢包率执行丢包操作来调整流量;当设定时间段内一直以最高拦截等级进行流量的调整时,发送内存阈值调整请求的步骤包括:
接收到流量控制的请求后,检查本地存储文件判断该请求所属的等级,存储该等级值和时间戳;
若时间戳是连续的内存监测周期,将根据连续的内存监测周期的个数判断拦截等级并根据拦截等级对应的丢包率执行丢包操作来调整流量;
当设定时间段内一直以最高拦截等级进行流量的调整时,发送内存阈值调大请求,同时发布应用异常的告警通知。
5.根据权利要求4所述的一种防止容器编排框架中POD内存溢出的方法,其特征在于,若时间戳是连续的内存监测周期,将根据连续的内存监测周期的个数判断拦截等级并根据拦截等级对应的丢包率执行丢包操作来调整流量的步骤还包括:
若在下一个内存监测周期时,未收到流量控制的请求,发送内存阈值恢复请求;
接收到内存阈值恢复请求后,动态恢复默认的内存阈值,并将内存阈值进行存储。
6.一种防止容器编排框架中POD内存溢出的装置,其特征在于,包括内存监测器、流量控制器、内存动态更改器;
内存监测器,应用监控POD的当前内存大小,并根据当前内存大小与预设置的内存阈值计算出内存使用率,如果内存使用率大于设定的阈值时,发出进行流量控制的请求到流量控制器;
流量控制器,用于接收到流量控制的请求后,将根据连续请求次数判断拦截等级并根据拦截等级对应的丢包率执行丢包操作来调整流量;当设定时间段内一直以最高拦截等级进行流量的调整时,发送内存阈值调整请求到内存动态更改器;
内存动态更改器,用于接收到内存阈值调整请求后,动态更改应用内存阈值,实现内存使用率的降低。
7.根据权利要求6所述的一种防止容器编排框架中POD内存溢出的装置,其特征在于,内存监测器包括内存阈值获取模块、当前内存值获取模块、计算判断模块和流量控制请求发送模块;
内存阈值获取模块,用于获取当前POD设置的内存阈值;
当前内存值获取模块,用于获取当前POD使用的内存大小值;
计算判断模块,用于根据内存阈值和当前内存大小值计算内存使用率并判断内存使用率与设定阈值的大小;其中,内存使用率=当前内存大小值/内存阈值;
流量控制请求发送模块,用于计算判断模块输出内存使用率大于设定的阈值时,发出进行流量控制的请求。
8.根据权利要求7所述的一种防止容器编排框架中POD内存溢出的装置,其特征在于,该装置还包括设置器;
设置器,用于根据历史流量控制的请求连续请求次数将请求进行拦截等级的划分,每个拦截等级对应一个丢包率;还用于将划分的拦截等级以及对应的丢包率存储到本地存储文件。
9.根据权利要求8所述的一种防止容器编排框架中POD内存溢出的装置,其特征在于,流量控制器包括检查模块、请求判断模块、流量调整模块和内存调整请求发送模块;
检查模块,用于接收到流量控制的请求后,检查本地存储文件判断该请求所属的等级,存储该等级值和时间戳;
请求判断模块,用于判断若时间戳是连续的内存监测周期,将根据连续的内存监测周期的个数判断拦截等级并输出信息到流量调整模块;
流量调整模块,用于根据请求判断模块输出的拦截等级对应的丢包率执行丢包操作来调整流量;
内存调整请求发送模块,用于当设定时间段内一直以最高拦截等级进行流量的调整时,发送内存阈值调大请求,同时发布应用异常的告警通知。
10.根据权利要求9所述的一种防止容器编排框架中POD内存溢出的装置,其特征在于,请求判断模块,还用于若在下一个内存监测周期时,未收到流量控制的请求,发送内存阈值恢复请求到内存动态更改器;
内存动态更改器,还用于接收到内存阈值恢复请求后,动态恢复默认的内存阈值,并将内存阈值进行存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010693798.8A CN112000422B (zh) | 2020-07-17 | 2020-07-17 | 一种防止容器编排框架中pod内存溢出的方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010693798.8A CN112000422B (zh) | 2020-07-17 | 2020-07-17 | 一种防止容器编排框架中pod内存溢出的方法、装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112000422A true CN112000422A (zh) | 2020-11-27 |
CN112000422B CN112000422B (zh) | 2022-08-05 |
Family
ID=73467682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010693798.8A Active CN112000422B (zh) | 2020-07-17 | 2020-07-17 | 一种防止容器编排框架中pod内存溢出的方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112000422B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190369A (zh) * | 2021-04-21 | 2021-07-30 | 北京海博思创科技股份有限公司 | 数据处理方法、装置、设备及存储介质 |
CN113568303A (zh) * | 2021-09-26 | 2021-10-29 | 成都数默科技有限公司 | 一种基于pid控制算法的网络流量抓包限流丢包方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106506392A (zh) * | 2016-12-19 | 2017-03-15 | 深圳创维数字技术有限公司 | 一种网络拥塞处理方法及装置 |
CN107872401A (zh) * | 2017-12-22 | 2018-04-03 | 成都飞鱼星科技股份有限公司 | 一种网络关键业务保障方法及装置 |
CN110287029A (zh) * | 2019-06-27 | 2019-09-27 | 中国—东盟信息港股份有限公司 | 一种基于kubernetes容器资源动态调整的方法 |
-
2020
- 2020-07-17 CN CN202010693798.8A patent/CN112000422B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106506392A (zh) * | 2016-12-19 | 2017-03-15 | 深圳创维数字技术有限公司 | 一种网络拥塞处理方法及装置 |
CN107872401A (zh) * | 2017-12-22 | 2018-04-03 | 成都飞鱼星科技股份有限公司 | 一种网络关键业务保障方法及装置 |
CN110287029A (zh) * | 2019-06-27 | 2019-09-27 | 中国—东盟信息港股份有限公司 | 一种基于kubernetes容器资源动态调整的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190369A (zh) * | 2021-04-21 | 2021-07-30 | 北京海博思创科技股份有限公司 | 数据处理方法、装置、设备及存储介质 |
CN113568303A (zh) * | 2021-09-26 | 2021-10-29 | 成都数默科技有限公司 | 一种基于pid控制算法的网络流量抓包限流丢包方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112000422B (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107040415B (zh) | 一种终端及数据上报方法、服务器及数据接收方法 | |
CN112000422B (zh) | 一种防止容器编排框架中pod内存溢出的方法、装置 | |
CN112511456B (zh) | 流量控制方法、装置、设备、存储介质和计算机程序产品 | |
CN106357469B (zh) | 一种资源监控模式的动态调整方法和装置 | |
CN108241528B (zh) | 一种用户自定义海量网络安全数据动态采集方法 | |
US20150124604A1 (en) | Systems and Methods for Proactive Congestion Detection in Radio Access Networks | |
CN107204875B (zh) | 数据上报链路监测方法、装置、电子设备及存储介质 | |
CN108023759B (zh) | 自适应的资源调度方法和装置 | |
CN106844083B (zh) | 一种面向流计算系统异常感知的容错方法及系统 | |
Meng et al. | Monitoring continuous state violation in datacenters: Exploring the time dimension | |
CN109522100B (zh) | 实时计算任务调整方法和装置 | |
CN104320285A (zh) | 一种网站运行状态监控方法及装置 | |
CN106936926B (zh) | 访问数据节点的方法及系统 | |
CN112100029B (zh) | 客户端状态监测方法及相关组件 | |
CN105357026B (zh) | 一种资源信息收集方法和计算节点 | |
CN109284275B (zh) | 一种云平台虚拟机文件系统监控方法和装置 | |
CN105357060A (zh) | 一种获取网络设备性能数据的方法、装置和系统 | |
EP2750427B1 (en) | Method and apparatus for coordinating cell outage compensation and capacity and coverage optimization | |
CN106326042B (zh) | 一种运行状态确定方法及装置 | |
WO2022001430A1 (zh) | 一种高吞吐量流处理方法、装置及计算机可读存储介质 | |
CN115333983A (zh) | 心跳管理方法及节点 | |
WO2014040470A1 (zh) | 告警消息的处理方法及装置 | |
WO2015085489A1 (zh) | 对端网元的过载控制方法及装置 | |
CN102262579A (zh) | 一种计算机监控方法及系统 | |
JP2014003476A (ja) | 通信システム、監視サーバ、基地局および通信制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |