Docker集群的内存配置方法、存储介质、计算机设备技术

技术编号:24409236 阅读:16 留言:0更新日期:2020-06-06 08:26
本发明专利技术公开了Docker集群的内存配置方法、存储介质、计算机设备。该方法:步骤一:确定宿主主机的Docker集群内存在有待调整容器,待调整容器的使用内存达到宿主主机分配给待调整容器的初始分配内存;步骤二:检测宿主主机的剩余内存是否大于预设内存;若是,则将待调整容器的初始分配内存提高至最终分配内存,若否,则进行步骤三;步骤三:检测待调整容器的使用交换空间的倾向性值是否小于或等于预设倾向性值;若是,则进行步骤四;若否,则对待调整容器的最初分配内存不进行调整;步骤四:对空闲容器的最初分配内存进行降低,并返回步骤二。实时检测各个容器的内存使用情况,实现对Docker集群内各个容器内存的动态调整,并实现内存资源的最大化利用。

Memory configuration method, storage medium and computer equipment of docker cluster

【技术实现步骤摘要】
Docker集群的内存配置方法、存储介质、计算机设备
本专利技术属于信息
,特别涉及Docker集群的内存配置方法、存储介质、计算机设备。
技术介绍
Docker集群合理使用主机的内存是非常重要的。例如对于Linux主机来说,一旦内核检测到没有足够的内存可以分配,就会抛出OOME(OutOfMemoryException),并开始杀死一些进程用于释放内存空间。糟糕的是任何进程都可能成为内核猎杀的对象,包括Dockerdaemon和其它一些重要的程序。更危险的是如果某个支持系统运行的重要进程被干掉了,整个系统也就宕掉了。为了避免以上问题,可以对每个容器设置固定的内存使用上限,这种方法虽然能更好地避免内存过载的问题,但是由于每个容器的内存使用上限是固定的,在宿主主机的剩余内存不足时,如果某个常用容器的内存达到了使用上限,这时不能增加该常用容器的内存使用上限,而另一方面,有些不常使用的容器的内存远远没有达到内存使用上限,由于分配给不常使用的容器的内存是固定的,这样不常使用的容器占用了过多的宿主主机内存,从而不能最大化地利用内存资源。
技术实现思路
(一)本专利技术所要解决的技术问题本专利技术要解决的技术问题是:如何动态地调节容器的内存阈值以最大化地利用内存资源。(二)本专利技术所采用的技术方案为了实现上述的目的,本专利技术采用了如下的技术方案:一种Docker集群的内存配置方法,所述内存配置方法包括:步骤一:确定宿主主机的Docker集群内存在有待调整容器,所述待调整容器的使用内存达到宿主主机分配给所述待调整容器的初始分配内存;步骤二:检测宿主主机的剩余内存是否大于预设内存;若是,则将所述待调整容器的所述初始分配内存提高至最终分配内存,所述预设内存大于或等于所述最终分配内存和所述初始分配内存之差;若否,则进行步骤三;步骤三:检测所述待调整容器的使用交换空间的倾向性值是否小于或等于预设倾向性值;若是,则进行步骤四;若否,则对所述待调整容器的最初分配内存不进行调整;步骤四:对空闲容器的最初分配内存进行降低,以提高宿主主机的剩余内存,并返回步骤二;所述空闲容器的使用内存未达到宿主主机分配给所述空闲容器的初始分配内存。本专利技术还公开了一种Docker集群的内存配置方法,所述内存配置方法包括:步骤一:确定宿主主机的Docker集群内存在有待调整容器,所述待调整容器的使用内存达到宿主主机分配给所述待调整容器的初始分配内存;步骤二:第i次检测宿主主机的剩余内存是否大于预设内存;若是,则将所述待调整容器的所述初始分配内存提高至最终分配内存,所述预设内存大于或等于所述最终分配内存和所述初始分配内存之差;若否且i=1,则进行步骤三,若否且i≥2,则直接进行步骤四;步骤三:检测所述待调整容器的使用交换空间的倾向性值是否小于或等于预设倾向性值;若是,则进行步骤四;若否,则对所述待调整容器的最初分配内存不进行调整;步骤四:对空闲容器的最初分配内存进行降低,以提高宿主主机的剩余内存,且使i=i+1,并返回步骤二;所述空闲容器的使用内存未达到宿主主机分配给所述空闲容器的初始分配内存。优选地,在步骤一中,若确定所述待调整容器的数量为至少两个,则按照预定策略对各个待调整容器分别进行步骤二至步骤四的处理。优选地,所述按照预定策略对各个待调整容器分别进行步骤二至步骤四的处理的具体方法为:确定各个待调整容器的分配内存与最终分配内存的差值;按照分配内存与最终分配内存的差值从小至大的顺序依序对各个待调整容器分别进行步骤二至步骤四的处理。优选地,所述按照预定策略对各个待调整容器分别进行步骤二至步骤四的处理的具体方法为:确定各个待调整容器的使用交换空间的倾向性值;按照倾向性值从小至大的顺序依序对各个待调整容器分别进行步骤二至步骤四的处理。优选地,所述对空闲容器的最初分配内存进行降低的具体方法为:获取各个空闲容器的使用交换空间的倾向性值;按照倾向性值从大至小的顺序依序将至少一个空闲容器的分配内存进行降低。优选地,所述Docker集群内各个容器的使用交换空间的倾向性值按照各个容器的内存读取次数的增大而递减。本专利技术还公开了一种存储介质,所述计算机可读存储介质存储有Docker集群的内存配置程序,所述Docker集群的内存配置程序被所述处理器执行时实现任一种上述的Docker集群的内存配置方法。本专利技术还公开了一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上的Docker集群的内存配置程序,所述Docker集群的内存配置程序被所述处理器执行时实现任一种上述的Docker集群的内存配置方法。(三)有益效果本专利技术公开的一种Docker集群的内存配置方法、存储介质和计算机设备,实时检测各个容器的内存使用情况,通过宿主主机的剩余内存来实时提高待调整容器的内存,或者通过压缩空闲容器的内存来提高待调整容器的内存,实现对Docker集群内各个容器内存的动态调整,并实现内存资源的最大化利用。附图说明图1是本专利技术的实施例一的内存配置方法的流程图;图2是本专利技术的实施例二的内存配置方法的流程图;图3是本专利技术的实施例三的计算机设备的结构框图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。实施例一在安装有Linux操作系统的宿主主机中,宿主主机可安装Docker-machine,在Docker-machine的基础上可以安装多个Docker容器,多个Docker容器组成Docker集群。如图1所示,根据本专利技术的实施例一的Docker集群的内存配置方法包括如下步骤:步骤一S101:确定宿主主机的Docker集群内存在有待调整容器,待调整容器的使用内存达到宿主主机分配给待调整容器的初始分配内存。在Docker集群内运行的每个容器都有一定的初始分配内存,根据每个容器实际情况,宿主主机对不同的容器设置不同的初始分配内存,初始分配内存指容器在实际运行过程中,该容器的使用内存所能达到的最大值。同时对不同的容器设置不同的使用交换空间(swap)的倾向性值,其中,容器的使用交换空间的倾向性值低,代表该容器对内存读取速度要求高;容器的使用交换空间的倾向性值高,代表该容器对内存读取速度要求低。交换空间在宿主主机的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到交换空间中,等到那些程序要运行时,再从交换空间中恢复保存的数据到内存中。进一步地,Dockerrun命令中通过-m选项限制容器使用的内存上限。通过memory-swap设置swap的使用大小。当-m设置为300本文档来自技高网...

【技术保护点】
1.一种Docker集群的内存配置方法,其特征在于,所述内存配置方法包括:/n步骤一:确定宿主主机的Docker集群内存在有待调整容器,所述待调整容器的使用内存达到宿主主机分配给所述待调整容器的初始分配内存;/n步骤二:检测宿主主机的剩余内存是否大于预设内存;若是,则将所述待调整容器的所述初始分配内存提高至最终分配内存,所述预设内存大于或等于所述最终分配内存和所述初始分配内存之差;若否,则进行步骤三;/n步骤三:检测所述待调整容器的使用交换空间的倾向性值是否小于或等于预设倾向性值;若是,则进行步骤四;若否,则对所述待调整容器的最初分配内存不进行调整;/n步骤四:对空闲容器的最初分配内存进行降低,以提高宿主主机的剩余内存,并返回步骤二;所述空闲容器的使用内存未达到宿主主机分配给所述空闲容器的初始分配内存。/n

【技术特征摘要】
1.一种Docker集群的内存配置方法,其特征在于,所述内存配置方法包括:
步骤一:确定宿主主机的Docker集群内存在有待调整容器,所述待调整容器的使用内存达到宿主主机分配给所述待调整容器的初始分配内存;
步骤二:检测宿主主机的剩余内存是否大于预设内存;若是,则将所述待调整容器的所述初始分配内存提高至最终分配内存,所述预设内存大于或等于所述最终分配内存和所述初始分配内存之差;若否,则进行步骤三;
步骤三:检测所述待调整容器的使用交换空间的倾向性值是否小于或等于预设倾向性值;若是,则进行步骤四;若否,则对所述待调整容器的最初分配内存不进行调整;
步骤四:对空闲容器的最初分配内存进行降低,以提高宿主主机的剩余内存,并返回步骤二;所述空闲容器的使用内存未达到宿主主机分配给所述空闲容器的初始分配内存。


2.一种Docker集群的内存配置方法,其特征在于,所述内存配置方法包括:
步骤一:确定宿主主机的Docker集群内存在有待调整容器,所述待调整容器的使用内存达到宿主主机分配给所述待调整容器的初始分配内存;
步骤二:第i次检测宿主主机的剩余内存是否大于预设内存;若是,则将所述待调整容器的所述初始分配内存提高至最终分配内存,所述预设内存大于或等于所述最终分配内存和所述初始分配内存之差;若否且i=1,则进行步骤三,若否且i≥2,则直接进行步骤四;
步骤三:检测所述待调整容器的使用交换空间的倾向性值是否小于或等于预设倾向性值;若是,则进行步骤四;若否,则对所述待调整容器的最初分配内存不进行调整;
步骤四:对空闲容器的最初分配内存进行降低,以提高宿主主机的剩余内存,且使i=i+1,并返回步骤二;所述空闲容器的使用内存未达到宿主主机分配给所述空闲容器的初始分配内存。


3.根据权利要求1或2所述的内存配置方法,其特征在...

【专利技术属性】
技术研发人员:曾经纬喻之斌
申请(专利权)人:深圳先进技术研究院
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1