CN110196751A - 互扰服务的隔离方法及装置、电子设备、存储介质 - Google Patents
互扰服务的隔离方法及装置、电子设备、存储介质 Download PDFInfo
- Publication number
- CN110196751A CN110196751A CN201810284065.1A CN201810284065A CN110196751A CN 110196751 A CN110196751 A CN 110196751A CN 201810284065 A CN201810284065 A CN 201810284065A CN 110196751 A CN110196751 A CN 110196751A
- Authority
- CN
- China
- Prior art keywords
- container
- host
- target
- interference
- service
- 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
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
- 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/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Medical Treatment And Welfare Office Work (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明揭示了一种互扰服务的隔离方法及装置、电子设备、计算机可读存储介质,该服务部署在宿主机的容器中,该方法包括:采集宿主机中每一容器的负载数据;根据容器的负载数据,确定宿主机中被干扰的目标容器;在目标容器所在宿主机中查找与目标容器相关的干扰容器;为目标容器和干扰容器中的迁移容器生成用于标识与对方互扰的标签信息;将迁移容器移植到与标签信息匹配的宿主机。采用本发明提供的方案,可以自动识别资源消耗相同的容器,隔离互相干扰的容器,能够将资源互补的服务部署在一起,提升了资源的使用率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种干扰服务的隔离方法及装置、电子设备、计算机可读存储介质。
背景技术
Docker是一个开源的应用容器引擎,旨在提供一种应用的自动化部署解决方案,能够让开发者打包他们的应用及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,实现应用的自动化安装、部署和升级,非常方便。而且,Docker能够虚拟出多个容器,每个容器之间相互隔离没有接口,可以将彼此的生产环境和开发环境分开,互不影响。
目前云服务的基石是操作系统级别的隔离,在同一台宿主机上通过一个或多个虚拟机(Virtual Machine,简称VM)运行业务,而Docker实现了一种应用级别的隔离,它改变了基本的开发、操作单元,由直接操作VM转换为操作应用运行的“容器”。
为了解决宿主机单一服务部署浪费宿主机资源的问题,越来越多的运营平台希望通过服务混布,将资源消耗互补的应用服务部署在一起,提升资源的使用率。而容器技术正好使得可以将更多的计算工作负载塞入到一台宿主机上,每个容器内都包含一个独享的完整用户环境空间,一台宿主机可以包括多个容器,每个容器运行一种应用服务,由此实现一台宿主机中多种应用服务的混布。
服务混布虽然可以有效提高资源的使用情况,但是在混布时,也有可能将资源消耗相同的应用服务部署在一起。为了隔离这种相互干扰的服务,现有技术提出服务隔离配置的方案,试图通过服务配置,达到隔离的目的。服务隔离配置的原理是:出现相互干扰服务之后,依靠用户配置,为服务A、B分别指定一批不同的机器,调度器在调度部署过程中根据配置的机器列表,重新进行服务的部署。
从上述可知,现有技术互扰服务的隔离单纯依靠用户配置,由此增加了用户工作量以及人力成本;另外,人工配置存在较大误差,如果配置有误则无法起到互扰服务隔离的目的。
发明内容
为了解决相关技术中存在的通过人工配置隔离干扰服务,人力成本较高,误差较大等的缺陷,本发明提供了一种干扰服务的隔离方法。
一方面,本发明提供了一种互扰服务的隔离方法,所述服务部署在宿主机的容器中,包括:
采集所述宿主机中每一容器的负载数据;
根据所述容器的负载数据,确定所述宿主机中被干扰的目标容器;
在所述目标容器所在宿主机中查找与所述目标容器相关的干扰容器;
为所述目标容器和干扰容器中的迁移容器生成用于标识与对方互扰的标签信息;
将所述迁移容器移植到与所述标签信息匹配的宿主机。
另一方面,本发明还提供了一种互扰服务的隔离装置,所述服务部署在宿主机的容器中,所述装置包括:
数据采集模块,用于采集所述宿主机中每一容器的负载数据;
干扰确定模块,用于根据所述容器的负载数据,确定所述宿主机中被干扰的目标容器;
容器查找模块,用于在所述目标容器所在宿主机中查找与所述目标容器相关的干扰容器;
标签生成模块,用于为所述目标容器和干扰容器中的迁移容器生成用于标识与对方互扰的标签信息;
容器移植模块,用于将所述迁移容器移植到与所述标签信息匹配的宿主机。
此外,本发明还提供了一种电子设备,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述互扰服务的隔离方法。
进一步的,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可由处理器执行完成上述互扰服务的隔离方法。
本发明的实施例提供的技术方案可以包括以下有益效果:
本发明以服务的容器为粒度,通过迁移走互相干扰的容器,从而实现宿主机中干扰服务的隔离,通过将迁移容器移植到与其标签信息匹配的宿主机,进一步保证了宿主机中新增加的容器不会与其已部署容器之间存在干扰,充分保证了干扰服务的隔离,由于无需人工介入即可实现干扰服务的隔离,克服了现有通过人工配置误差较大,人力成本较高的缺陷,采用本发明提供的方案,可以自动识别资源消耗相同的容器,隔离互相干扰的容器,能够将资源互补的服务部署在一起,提升了资源的使用率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1是根据本发明所涉及的实施环境的示意图;
图2是根据一示例性实施例示出的一种服务器的框图;
图3是根据一示例性实施例示出的一种互扰服务的隔离方法的流程图;
图4是根据一示例性实施例示出的互扰服务隔离的应用场景示意图;
图5是调度器进行容器调度的框架示意图;
图6是图3对应实施例中步骤330的细节流程示意图;
图7是图6对应实施例中步骤331的细节流程图;
图8是图3对应实施例中步骤390的细节示意图;
图9是根据一示例性实施例示出的一种互扰服务的隔离装置的框图;
图10是图9对应实施例中干扰确定模块的细节框图;
图11是图9对应实施例中容器移植模块的细节框图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据本发明所涉及的实施环境的示意图。该实施环境为多个服务器110构成的云平台,多个服务器110之间通过有线或无线连接。多个服务器110中至少有一个服务器110为管理服务器。
服务器110的docker(应用容器引擎)可以虚拟出多个容器111,每个容器之间相互隔离没有接口,可以将彼此的生产环境和开发环境分开,互不影响。一个服务器110可以包括用于运行不同服务的多个容器111,从而实现不同服务的混布,提高服务器110资源的利用率。
容器111可以看成是轻量级虚拟机,部署容器111的服务器110即为宿主机,在同一台宿主机中可以运行不同服务的容器111,管理服务器通过采用本发明提供的互扰服务的隔离方法,可以隔离同一台宿主机中互相干扰的服务。
参见图2,图2是本发明实施例提供的一种服务器结构示意图。该服务器200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessing units,CPU)222(例如,一个或一个以上处理器)和存储器232,一个或一个以上存储应用程序242或数据244的存储介质230(例如一个或一个以上海量存储设备)。其中,存储器232和存储介质230可以是短暂存储或持久存储。存储在存储介质230的程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对服务器200中的一系列指令操作。更进一步地,中央处理器222可以设置为与存储介质230通信,在服务器200上执行存储介质230中的一系列指令操作。服务器200还可以包括一个或一个以上电源226,一个或一个以上有线或无线网络接口250,一个或一个以上输入输出接口258,和/或,一个或一个以上操作系统241,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。下述图3、图6-图8所示实施例中所述的由管理服务器所执行的步骤可以基于该图2所示的服务器结构。
本领域普通技术人员可以理解实现下述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
图3是根据一示例性实施例示出的互扰服务的隔离方法流程图。该互扰服务的隔离方法的适用范围和执行主体,例如,该方法用于图1所示实施环境的管理服务器,所述服务部署在宿主机的容器中。如图3所示,该方法可以由管理服务器执行,可以包括以下步骤。
在步骤310中,采集所述宿主机中每一容器的负载数据。
首先需要解释的是,服务是指一种应用程序,例如即时通信软件程序,而互扰服务是指两种应用程序消耗资源相同,例如两种聊天工具所消耗的资源就可能相同。如果将这两种服务部署在一起,则无法实现资源消耗互补,提高资源利用率。容器是轻量级的应用级别虚拟化,可以让我们在一个资源隔离的进程中运行应用及其依赖项。运行应用程序所必需的组件都将打包成一个镜像并可以复用。执行镜像时,它运行在一个隔离环境中,并且不会共享宿主机的内存和CPU(中央处理器),换句话说,不同容器之间已实现了内存和CPU的隔离,在内存和CPU的使用上已不会互相干扰。但是容器仍共享宿主机操作系统的一些基础库。
Docker(应用容器引擎)是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到上述可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。Docker在容器内捆绑了应用程序的关键组件,一个应用程序的多个组件可以捆绑在多个容器中,多个容器可以分散部署至多台宿主机。宿主机是指安装了上述容器的服务器110,每个宿主机中可能存在多个容器。
其中,负载数据可以包括内存负荷率、网络负载率、io(输入输出)负载情况、cpi(平均执行周期数)、CPU使用率等信息。管理服务器控制每台宿主机上的DC Node(dockernode,应用容器引擎节点)通过Cgroup(资源管理机制)采集当前宿主机上每一容器的负载数据。当出现负载数据波动较大时,实时将负载数据上报给管理服务器的trigger(触发器),通过管理服务器的trigger对负载数据进行分析。
在步骤330中,根据所述容器的负载数据,确定所述宿主机中被干扰的目标容器。
其中,目标容器是指宿主机中被干扰的容器。具体的,管理服务器的trigger对实时上报的容器负载数据进行分析,当该容器的负载数据波动较大时,可以认为该容器受到了干扰,即该容器就是宿主机中被干扰的目标容器。
具体的,判断负载数据是否波动较大,可以凭借历史负载数据,计算出所有历史负载数据的均值,并且计算每个历史负载数据与均值的平均差距,在当前容器的负载数据与该均值的差距远远超过上述平均差距时,可以认为该容器受到了干扰。通常,在容器的负载数据与均值的差距大于两倍平均差距时可以认为容器受到了干扰。
由于docker容器已实现了CPU、内存的隔离,由此在判断宿主机中的容器是否被干扰时,可以以cpi数据为主要依据,将其他负载数据作为辅助参考数据,在cpi数据波动较大时,认为该cpi数据所属的容器受到了干扰,该受到干扰的容器就是目标容器。
在步骤350中,在所述目标容器所在宿主机中查找与所述目标容器相关的干扰容器。
需要解释的是,由于目标容器受到干扰,因此可以认为在目标容器所在宿主机中,至少存在一个较强的干扰源对目标容器造成了干扰。其中,干扰容器是指与目标容器处于同一台宿主机中,因与目标容器资源消耗相同,所以对目标容器造成干扰的干扰源(即其他容器)。其中,与目标容器相关的干扰容器是指对目标容器造成干扰的容器。
具体的,可以每个容器的负载数据为依据,计算任意两个容器之间负载数据的相关性,从而可以在目标容器所在宿主机中查找到负载数据与目标容器的负载数据相关性最高的容器,该容器可以认为是目标容器的干扰容器,该目标容器与其干扰容器处于同一宿主机内时会互相干扰。
在一种示例性实施例中,上述步骤350具体包括:
根据所述目标容器的CPU使用率以及平均执行周期数,通过相关系数计算,在所述目标容器所在宿主机中查找与所述目标容器相关的干扰容器。
其中,容器的CPU使用率是指容器所运行的程序占用容器CPU资源的比例。比如A进程占用10ms,然后B进程占用30ms,然后空闲60ms,再又是A进程占10ms,B进程占30ms,空闲60ms;如果在一段时间内都是如此,那么这段时间内的CPU使用率为40%。cpi是指容器运行指定程序时,每条计算机指令执行所需的时钟周期数,即平均执行周期数。需要解释的是,指定程序是指由该容器运行的指定服务的部分程序。
具体的,可以利用相关系数计算公式,计算目标容器(CPU使用率和平均执行周期数)与同一宿主机中其他容器(CPU使用率和平均执行周期数)的相关系数,将同一宿主机中与目标容器相关性最高的容器作为目标容器的干扰容器。
举例来说,利用相关系数计算公式X可以是目标容器的CPU使用率或cpi数据,Y可以是干扰容器的CPU使用率或cpi数据,COV(X,Y)表示变量X和Y的协方差。DX和DY代表方差。相关系数的计算可以依据每个容器的CPU使用率和cpi数据。首先可以通过上述公式计算目标容器的CPU使用率和其他容器的CPU使用率的相关系数,然后计算目标容器的cpi数据和其他容器的cpi数据的相关系数,通过对这两个相关系数加权相加,得到目标容器与所在宿主机中其他容器之间的整体相关度。进而可以从目标容器所在宿主机中找出与目标容器整体相关度最高的容器,该容器即为作为目标容器的干扰容器。
在步骤370中,为所述目标容器和干扰容器中的迁移容器生成用于标识与对方互扰的标签信息。
需要说明的是,由于目标容器和干扰容器互扰,因此需要将目标容器和干扰容器中的其中一个容器移植到其他宿主机,以避免目标容器与干扰容器处于同一宿主机中而互相干扰。理论上来说,如果宿主机中存在目标容器与干扰容器互相干扰,只需迁移走其中的任意一个即可实现互扰服务的隔离。
迁移容器是目标容器和干扰容器之一,是指需要移植到其他宿主机上的容器。在一种示例性实施例中,可以将干扰容器作为迁移容器,为干扰容器生成用于标识与目标容器互扰的标签信息。进一步的,为目标容器生成与干扰容器互扰的标签信息。在另一种示例性实施例中,可以将目标容器作为迁移容器,为目标容器生成用于标识与干扰容器互扰的标签信息。进一步的,为干扰容器生成与目标容器互扰的标签信息。
举例来说,假设干扰容器为A,目标容器为B,可以将目标容器B作为迁移容器,为目标容器B生成标签B和禁止标签A,并且还可以为干扰容器A生成标签A和禁止标签B,对容器的具体配置可以如下表1所示。通过配置标签的方式,以容器为粒度,完成互扰服务之间的互斥定义。进而在后续进行容器部署时,可以防止互扰的容器部署在同一台宿主机中。
表1标签配置方式
容器 | 许可标签 | 禁止标签 |
干扰容器A | labelA | labelB |
目标容器B | labelB | labelA |
在此需要补充说明的是,通过寻找与目标容器相关性最高的容器,作为与目标容器互扰的容器,此时可能找到与目标容器相关性较高的若干容器,难以准确区分与目标容器相关性最高的容器,而此时由于目标容器已存在负载数据波动大,受到干扰的现象存在。因此,在目标容器和干扰容器之间选择迁移容器时,优先选择目标容器作为迁移容器。
在步骤390中,将所述迁移容器移植到与所述标签信息匹配的宿主机。
其中,迁移容器的移植是指将迁移容器以及迁移容器内的服务组件整体迁移至其他宿主机;换句话说从一台服务器迁移到另一台服务器。
需要说明的是,云平台提前存储了每个服务对应的镜像,该镜像包括三层,第一层是操作系统、第二层是程序运行需要的一些环境,第三层是服务的可执行二进制文件,在容器迁移时,根据迁移容器的镜像,在目标宿主机创建一个新的容器,删除原来宿主机中的容器。需要解释的是,目标宿主机是相对迁移容器原所在宿主机而言的,是迁移容器移植后所在的宿主机。
需要解释的是,与标签信息匹配的宿主机是指根据迁移容器的标签信息,从所有宿主机中筛选出的符合标签信息指示的宿主机。具体的,根据某一宿主机当前已部署的容器的标签信息,可以确定该宿主机的标签属性。例如,当宿主机P1已经部署了容器A时,则宿主机P1就会暂时拥有了标签A(宿主机的标签属性)。当存在迁移容器B时,假设迁移容器B的标签信息包括标签B以及禁止标签A,则宿主机P1不是与迁移容器B的标签信息匹配的宿主机(因迁移容器禁止标签A而宿主机拥有标签A),迁移容器不会部署至宿主机P1。相反的,当容器A从宿主机P1下线后,宿主机P1不再拥有标签A,则宿主机P1是与迁移容器B的标签信息匹配的宿主机,迁移容器B可以部署至宿主机P1上。
当目标容器为迁移容器时,通过将目标容器移植到与其标签信息匹配的宿主机,从而实现了目标容器原所在宿主机中,目标容器与其干扰容器的隔离,即解决了宿主机中存量数据的干扰隔离问题。另外,通过将目标容器移植到与其标签信息匹配的宿主机,解决了宿主机中增量数据的干扰隔离问题。
现有技术中为了提高资源利用率,将资源互补的服务部署在一起,但是在服务混布时也可能将资源消耗相同的服务部署在一起,现有通过人员配置的方式,在业务出现异常时,为互相干扰的服务分别指定一批机器,完成互扰服务的隔离。这种单纯依靠人工配置的方式,如果用户配置有误,则无法起到互扰服务的隔离。另外,干扰服务的大部分发现时机在业务出现异常时,在业务出现异常后才进行干扰服务的隔离,影响了服务的正常运行,降低了业务的稳定性。
相对现有技术,本发明以服务的容器为粒度,通过迁移走互相干扰的容器,从而实现宿主机中干扰服务的隔离,通过将迁移容器移植到与其标签信息匹配的宿主机,进一步保证了宿主机中新增加的容器不会与其已部署容器之间存在干扰,充分保证干扰服务的隔离。
图4为本发明一示例性实施例提供的互扰服务的隔离方法的应用场景图。如图4所示,该应用场景至少包括管理服务器40、第一宿主机41、第二宿主机42、第三宿主机43……,其中,第一宿主机41中部署了容器A、容器B以及应用容器引擎节点1(DCNode1),第二宿主机42中部署了容器C、容器D以及应用容器引擎节点2(DCNode2),第三宿主机43中部署了容器E、容器F以及应用容器引擎节点3(DCNode3),以此类推。管理服务器40包括干扰分析模块、服务配置模块。
具体的,DCNode通过Cgroup机制,采集容器的负载数据(内存、网络、io、cpi等信息),当出现cpi高波动时,将负载数据实时上报给管理服务器40的干扰分析模块。干扰分析模块综合分析容器的负载数据以及历史数据(存储在容器负载DB数据库),分析出宿主机上互相干扰的容器。之后,服务配置模块为互相干扰的容器进行互扰标签的配置。干扰分析模块的调度器根据服务配置模块为迁移容器(互相干扰容器中的其中一个)配置的标签信息,筛选出可部署宿主机,然后向该可部署宿主机上的DCNode发送部署命令,完成迁移容器在该宿主机上的部署,从而实现了互扰容器的隔离。
假设容器A和容器B互扰,将容器A作为迁移容器部署到其他宿主机上。如图5所示,调度器根据服务配置模块获取容器A的标签信息,删选后获取可部署的机器列表,然后向该机器列表中的其中一台宿主机的DCNode发送部署命令,从而完成容器A在该宿主机上的部署。DCNode除了可以采集到容器的负载数据,还可以对容器进行启动、停止、扩容和删除,由此,通过DCNode可以实现容器A在新宿主机上的部署和原宿主机上的删除操作。
需要说明的是,假设存在多台与迁移容器的标签信息匹配的宿主机,即可部署机器列表中存在多台机器,则可以从中优先选择一台负载最小的宿主机,尽可能实现多台宿主机之间的负载均衡。
在一种示例性实施例中,步骤330中的负载数据包括平均执行周期数,如图6所示,步骤330具体包括:
在步骤331中,根据所述容器的平均执行周期数,在所述平均执行周期数的波动大于波动限值时,判断与所述容器属于同一服务的其他容器是否稳定。
其中,cpi(平均执行周期数)是指容器运行指定程序时,每条计算机指令执行所需的时钟周期数。需要解释的是,指定程序是指由该容器运行的指定服务的部分程序。Cpi数据的采集以容器为粒度,可以每1分钟采集10秒数据,连续30个点即30分钟的数据作为一组数据。
容器的cpi数据的波动可以通过计算容器的cpi数据与平均值之间的差距得到。例如连续5个cpi数值与平均值之间的差距都大于波动限值,可以认为该容器受到了干扰。而平均值和波动限值均可根据历史的cpi数据计算得到。
其中,波动限值可以是预设数值也可以是根据历史cpi数据得到的波动限值。在一种示例性实施例中,可以根据容器的历史cpi数据,每天更新该容器的cpi均值和波动值。波动限值可以是2倍波动值。Cpi的波动可以认为是采集的cpi数据相对均值的差距。
均值M=(X1+X2+…+Xn)÷n (1)
波动值Range=[(X1-M)2+(X2-M)2+...+(Xn-M)2]÷n (2)
其中,X1、X2、…、Xn等为容器不同时间点的cpi值,n为该容器的cpi值个数。
具体的,分析容器当前一组cpi数据,当出现5个以上(包括5个)时间点的cpi值(X)相比波动均值(M),超过两倍波动值(Range),即(X-M)>2Range,则认为该容器疑似被干扰。此时,可以通过进一步判断与该容器所属同一服务的其他容器是否稳定。其中,同一服务下的其他容器是否稳定也可以通过判断其他容器的cpi数据是否处于稳定状态。例如,当其他容器的cpi数据波动小于对应的波动限值时,可以认为其他容器处于稳定状态。
在步骤332中,若所述其他容器处于稳定状态,则确定所述容器属于被干扰的目标容器。
具体的,若存在某一容器的cpi数据波动较大,且与该容器属于同一服务的其他容器的cpi数据趋于稳定,则可以认为该容器被干扰,属于被干扰的目标容器,该容器所在宿主机上具有较强的干扰源(即存在干扰容器)。需要解释的是,通常同一时间同一服务下只有一个容器可能被干扰,由此通过判断同一服务下其他容器是否稳定,可以确定当前容器是否确实被干扰。
举例来说,假设同一服务存在容器A、B、C、D,容器A的cpi数据波动较大,疑似被干扰,由于通常同一时间同一服务下只有一个容器可能被干扰,此时可以通过查看容器B、C、D的cpi数据波动情况,如果B、C、D的cpi数据波动不大,则可以认为是容器A受到了干扰才导致其负载数据波动较大。如果此时容器B、C、D的cpi数据波动也较大,则可能此时用户进行数据操作从而引起服务整体较大的负载数据波动,而并非容器A受到了干扰。
进一步的,如图7所示,上述步骤331具体包括:
在步骤701中,根据所述容器的平均执行周期数,在所述平均执行周期数的波动大于根据所述容器的历史平均执行周期数生成的波动限值时,确定与所述容器属于同一服务且所在宿主机机型相同的其他容器;
其中,容器的历史平均执行周期数是相对当前一组cpi数据而言的,在当前一组cpi数据之前采集的cpi数据。具体的,根据历史cpi数据通过上述公式(1)和公式(2)可以计算出当前容器的cpi波动均值和波动值,波动限值可以是2倍波动值,cpi的波动可以认为是采集的容器cpi数据相对均值的差距。分析容器当前一组cpi数据,当出现5个以上(包括5个)时间点的cpi值相比波动均值,超过两倍波动值,即(X-M)>2Range,则认为该容器疑似被干扰。
当该容器疑似被干扰时,可以通过判断与该容器属于同一服务且与该容器所在宿主机机型相同的其他容器是否稳定。在同一服务的同一机型上的其他容器处于稳定状态时,可以该疑似被干扰的容器确实被干扰。
换句话说,进一步通过控制变量的方式确定被干扰的目标容器。假设同一服务存在容器A、B、C、D,容器A的cpi数据波动较大,疑似被干扰。如果容器B、C、D部署在与容器A型号不同的机器中,可能因为宿主机型号的不同,即宿主机性能的不同,影响容器的稳定性,由此容器B、C、D是否稳定,并不能准确代表容器A是否受到干扰的依据。由此,本发明通过查找与疑似干扰容器属于同一服务也宿主机机型相同的容器,基于这些容器的稳定性,再确定上述疑似干扰的容器是否确实被干扰了。
在步骤702中,根据所述其他容器的负载数据,确定所述其他容器是否稳定。
其中,其他容器的负载数据可以包括网络、cpi、CPU使用率等,在其他容器的负载数据波动不大时,可以认为其他容器处于稳定状态。在其他容器的负载数据波动较大时,可以认为其他容器处于不稳定状态。通常,可以通过判断其他容器cpi数据的波动是否大于对应容器的波动限值,以此确定其他容器是否稳定。其他容器负载数据是否稳定的判断方式,可以是参照上文提出的,当容器出现连续5个以上cpi值与波动均值的差距大于2倍波动值时,认为该容器不稳定。反之,则可以认为是稳定的。
在一种示例性实施例中,如图8所示,上述步骤390具体包括:
在步骤391中,根据除所述迁移容器所在宿主机外其他宿主机所携带的标签属性,筛选出标签属性与所述标签信息匹配的可部署宿主机。
其中,标签属性用于表征宿主机的特征,包括固有特征和部署特征。固有特征是宿主机的固有性质,不随部署容器的改变而改变,例如宿主机的型号;部署特征与宿主机中所部属的容器有关,假设当前宿主机部署了容器A,则当前宿主机的标签属性携带了标签A。当容器A从当前宿主机上删除时,则当前宿主机不再拥有标签A。
需要解释的是,筛选出标签属性与标签信息匹配的可部署宿主机是指从迁移容器所在宿主机外的其他宿主机中,筛选出标签属性与迁移容器标签信息所指示的要求符合的宿主机。在一种实施例中,当容器是选择者时,可以要求被部署的机器有(PRE)或者不能有(FORBID)哪些标签,当容器有多个标签时,选择逻辑为与(And),即要求被部署的机器必须同时满足所有标签的要求。当机器是选择者时,可以要求拥有某些标签的容器被部署到该机器上,即机器归属于(BELONG)某些容器。当机器下有多个标签时,选择逻辑为或(OR),容器只要拥有任何一个标签即可成功部署。
具体的,假设存在5台宿主机,依次编号为001-005,迁移容器位于宿主机001,则根据宿主机002-005的标签属性,以及迁移容器的标签信息(例如标签A),可以从剩余4台宿主机(编号002-005)中筛选出不存在“禁止标签A”的宿主机,该筛选出的宿主机就是迁移容器移植后可部署的宿主机。
在步骤392中,通过调度器将所述迁移容器移植至所述可部署宿主机。
具体的,在确定迁移容器可部署的宿主机后,管理服务器通过自身部署的调度器向该宿主机上的DCNode发送部署命令,从而完成该迁移容器在该宿主机上的部署。
进一步的,将迁移容器移植到与所述标签信息匹配的宿主机之后,所述方法还包括:
根据所述宿主机当前所部署的服务,为所述宿主机生成与所部署服务相匹配的标签属性。
其中,生成与所部署服务相匹配的标签属性是指在迁移容器移植后,根据宿主机当前所部署容器的标签信息,重新为宿主机生成标签属性。标签属性的内容可以表征所部署服务的属性。
需要解释的是,宿主机的标签属性随着宿主机中所部署容器的改变而改变,当迁移容器从一台宿主机移植到另一台宿主机后,为进行区分,此处称为原宿主机和新宿主机。原宿主机因迁移容器的删除,不再拥有迁移容器的标签信息。假设迁移容器的标签信息包括标签A,则原宿主机的标签属性不再拥有标签A。新宿主机由于部署了从原宿主机移植过来的迁移容器,则新宿主机的标签属性携带了标签A。
也就是说,在迁移容器完成移植后,根据原宿主机当前剩余部署的容器,为原宿主机重新生成与所部署容器的标签信息相匹配的标签属性;根据新宿主机当前部署容器的标签信息,为新宿主机重新生成与所部署容器的标签信息相匹配的标签属性,以备其他容器需要移植到当前宿主机上时,可以根据当前宿主机的标签属性,确定该宿主机中是否存在与自身互扰的容器,从而避免再次将互扰的容器部署在一起。
下述为本发明装置实施例,可以用于执行本发明上述管理服务器执行的互扰服务的隔离方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明互扰服务的隔离方法实施例。
图9是根据一示例性实施例示出的一种互扰服务的隔离装置的框图,所述服务部署在宿主机的容器中。该互扰服务的隔离装置可以用于图1所示实施环境的管理服务器中,执行图3、图6-图8任一所示的互扰服务的隔离方法的全部或者部分步骤。如图9所示,该装置包括但不限于:数据采集模块910、干扰确定模块930、容器查找模块950、标签生成模块970以及容器移植模块990。
数据采集模块910,用于采集所述宿主机中每一容器的负载数据;
干扰确定模块930,用于根据所述容器的负载数据,确定所述宿主机中被干扰的目标容器;
容器查找模块950,用于在所述目标容器所在宿主机中查找与所述目标容器相关的干扰容器;
标签生成模块970,用于为所述目标容器和干扰容器中的迁移容器生成用于标识与对方互扰的标签信息;
容器移植模块990,用于将所述迁移容器移植到与所述标签信息匹配的宿主机。
上述装置中各个模块的功能和作用的实现过程具体详见上述互扰服务的隔离方法中对应步骤的实现过程,在此不再赘述。
数据采集模块910比如可以是图2中的某一个物理结构有线或无线网络接口250。
干扰确定模块930、容器查找模块950、标签生成模块970以及容器移植模块990也可以是功能模块,用于执行上述互扰服务的隔离方法中的对应步骤。可以理解,这些模块可以通过硬件、软件、或二者结合来实现。当以硬件方式实现时,这些模块可以实施为一个或多个硬件模块,例如一个或多个专用集成电路。当以软件方式实现时,这些模块可以实施为在一个或多个处理器上执行的一个或多个计算机程序,例如图2的中央处理器222所执行的存储在存储器232中的程序。
在一种示例性实施例中,上述负载数据包括平均执行周期数,如图10所示,所述干扰确定模块930包括但不限于:
稳定判断单元931,用于根据所述容器的平均执行周期数,在所述平均执行周期数的波动大于波动限值时,判断与所述容器属于同一服务的其他容器是否稳定;
干扰确定单元932,用于在所述其他容器处于稳定状态时,确定所述容器属于被干扰的目标容器。
可选的,所述稳定判断单元931包括但不限于:
容器确定子单元,用于根据所述容器的平均执行周期数,在所述平均执行周期数的波动大于根据所述容器的历史平均执行周期数生成的波动限值时,确定与所述容器属于同一服务且所在宿主机机型相同的其他容器;
稳定确定子单元,用于根据所述其他容器的负载数据,确定所述其他容器是否稳定。
在一种示例性实施例中,所述容器查找模块950包括但不限于:
相关计算单元,用于根据所述目标容器的CPU使用率以及平均执行周期数,通过相关系数计算,在所述目标容器所在宿主机中查找与所述目标容器相关的干扰容器。
在一种示例性实施例中,所述标签生成模块970包括但不限于:
目标标签生成单元,用于将所述目标容器作为迁移容器,为所述目标容器生成用于标识与所述干扰容器互扰的标签信息。
在一种示例性实施例中,如图11所示,所述容器移植模块990包括但不限于:
部署确定单元991,用于根据除所述迁移容器所在宿主机外其他宿主机所携带的标签属性,筛选出标签属性与所述标签信息匹配的可部署宿主机;
容器移植单元992,用于通过调度器将所述迁移容器移植至所述可部署宿主机。
进一步的,本发明提供的互扰服务的隔离装置还包括但不限于:
标签属性生成模块,用于根据所述宿主机当前所部署的服务,为所述宿主机生成与所部署服务相匹配的标签属性。
可选的,本发明还提供一种电子设备,该电子设备可以用于图1所示实施环境的管理服务器中,执行图3、图6-图8任一所示的互扰服务的隔离方法的全部或者部分步骤。所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述示例性实施例所述的互扰服务的隔离方法。
该实施例中电子设备的处理器执行操作的具体方式已经在有关该互扰服务的隔离方法的实施例中执行了详细描述,此处将不做详细阐述说明。
在示例性实施例中,还提供了一种存储介质,该存储介质为计算机可读存储介质,例如可以为包括指令的临时性和非临时性计算机可读存储介质。该存储介质存储有计算机程序,该计算机程序可由服务器200的中央处理器222执行以完成上述互扰服务的隔离方法。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (15)
1.一种互扰服务的隔离方法,其特征在于,所述服务部署在宿主机的容器中,包括:
采集所述宿主机中每一容器的负载数据;
根据所述容器的负载数据,确定所述宿主机中被干扰的目标容器;
在所述目标容器所在宿主机中查找与所述目标容器相关的干扰容器;
为所述目标容器和干扰容器中的迁移容器生成用于标识与对方互扰的标签信息;
将所述迁移容器移植到与所述标签信息匹配的宿主机。
2.根据权利要求1所述的方法,其特征在于,所述负载数据包括平均执行周期数,所述根据所述容器的负载数据,确定所述宿主机中被干扰的目标容器,包括:
根据所述容器的平均执行周期数,在所述平均执行周期数的波动大于波动限值时,判断与所述容器属于同一服务的其他容器是否稳定;
若所述其他容器处于稳定状态,则确定所述容器属于被干扰的目标容器。
3.根据权利要求2所述的方法,其特征在于,所述根据所述容器的平均执行周期数,在所述平均执行周期数的波动大于波动限值时,判断与所述容器属于同一服务的其他容器是否稳定,包括:
根据所述容器的平均执行周期数,在所述平均执行周期数的波动大于根据所述容器的历史平均执行周期数生成的波动限值时,确定与所述容器属于同一服务且所在宿主机机型相同的其他容器;
根据所述其他容器的负载数据,确定所述其他容器是否稳定。
4.根据权利要求1所述的方法,其特征在于,所述在所述目标容器所在宿主机中查找与所述目标容器相关的干扰容器,包括:
根据所述目标容器的CPU使用率以及平均执行周期数,通过相关系数计算,在所述目标容器所在宿主机中查找与所述目标容器相关的干扰容器。
5.根据权利要求1所述的方法,其特征在于,所述为所述目标容器和干扰容器中的迁移容器生成用于标识与对方互扰的标签信息,包括:
将所述目标容器作为迁移容器,为所述目标容器生成用于标识与所述干扰容器互扰的标签信息。
6.根据权利要求1所述的方法,其特征在于,所述将所述迁移容器移植到与所述标签信息匹配的宿主机,包括:
根据除所述迁移容器所在宿主机外其他宿主机所携带的标签属性,筛选出标签属性与所述标签信息匹配的可部署宿主机;
通过调度器将所述迁移容器移植至所述可部署宿主机。
7.根据权利要求1所述的方法,其特征在于,所述将所述迁移容器移植到与所述标签信息匹配的宿主机之后,所述方法还包括:
根据所述宿主机当前所部署的服务,为所述宿主机生成与所部署服务相匹配的标签属性。
8.一种互扰服务的隔离装置,其特征在于,所述服务部署在宿主机的容器中,包括:
数据采集模块,用于采集所述宿主机中每一容器的负载数据;
干扰确定模块,用于根据所述容器的负载数据,确定所述宿主机中被干扰的目标容器;
容器查找模块,用于在所述目标容器所在宿主机中查找与所述目标容器相关的干扰容器;
标签生成模块,用于为所述目标容器和干扰容器中的迁移容器生成用于标识与对方互扰的标签信息;
容器移植模块,用于将所述迁移容器移植到与所述标签信息匹配的宿主机。
9.根据权利要求8所述的装置,其特征在于,所述负载数据包括平均执行周期数,所述干扰确定模块包括:
稳定判断单元,用于根据所述容器的平均执行周期数,在所述平均执行周期数的波动大于波动限值时,判断与所述容器属于同一服务的其他容器是否稳定;
干扰确定单元,用于在所述其他容器处于稳定状态时,确定所述容器属于被干扰的目标容器。
10.根据权利要求9所述的装置,其特征在于,所述稳定判断单元包括:
容器确定子单元,用于根据所述容器的平均执行周期数,在所述平均执行周期数的波动大于根据所述容器的历史平均执行周期数生成的波动限值时,确定与所述容器属于同一服务且所在宿主机机型相同的其他容器;
稳定确定子单元,用于根据所述其他容器的负载数据,确定所述其他容器是否稳定。
11.根据权利要求8所述的装置,其特征在于,所述容器查找模块包括:
相关计算单元,用于根据所述目标容器的CPU使用率以及平均执行周期数,通过相关系数计算,在所述目标容器所在宿主机中查找与所述目标容器相关的干扰容器。
12.根据权利要求8所述的装置,其特征在于,所述标签生成模块包括:
目标标签生成单元,用于将所述目标容器作为迁移容器,为所述目标容器生成用于标识与所述干扰容器互扰的标签信息。
13.根据权利要求8所述的装置,其特征在于,所述容器移植模块包括:
部署确定单元,用于根据除所述迁移容器所在宿主机外其他宿主机所携带的标签属性,筛选出标签属性与所述标签信息匹配的可部署宿主机;
容器移植单元,用于通过调度器将所述迁移容器移植至所述可部署宿主机。
14.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-7任意一项所述的互扰服务的隔离方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序可由处理器执行完成权利要求1-7任意一项所述的互扰服务的隔离方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810284065.1A CN110196751B (zh) | 2018-04-02 | 2018-04-02 | 互扰服务的隔离方法及装置、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810284065.1A CN110196751B (zh) | 2018-04-02 | 2018-04-02 | 互扰服务的隔离方法及装置、电子设备、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110196751A true CN110196751A (zh) | 2019-09-03 |
CN110196751B CN110196751B (zh) | 2023-03-28 |
Family
ID=67751307
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810284065.1A Active CN110196751B (zh) | 2018-04-02 | 2018-04-02 | 互扰服务的隔离方法及装置、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110196751B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888741A (zh) * | 2019-11-27 | 2020-03-17 | 新华三大数据技术有限公司 | 应用容器的资源调度方法、装置、服务器及存储介质 |
CN114443311A (zh) * | 2022-04-07 | 2022-05-06 | 北京天维信通科技有限公司 | 一种第三方服务配置方法、装置及电子设备 |
CN117369950A (zh) * | 2023-12-04 | 2024-01-09 | 上海凯翔信息科技有限公司 | 一种docker容器的配置系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103620552A (zh) * | 2011-06-29 | 2014-03-05 | 惠普发展公司,有限责任合伙企业 | 采用动态操作系统容器的应用迁移 |
US20170010911A1 (en) * | 2015-07-06 | 2017-01-12 | Purdue Research Foundation | Integrated configuration engine for interference mitigation in cloud computing |
US20170147383A1 (en) * | 2015-11-22 | 2017-05-25 | Strato Scale Ltd. | Identification of cross-interference between workloads in compute-node clusters |
CN107239323A (zh) * | 2017-08-03 | 2017-10-10 | 郑州云海信息技术有限公司 | 一种容器热迁移的方法及系统 |
-
2018
- 2018-04-02 CN CN201810284065.1A patent/CN110196751B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103620552A (zh) * | 2011-06-29 | 2014-03-05 | 惠普发展公司,有限责任合伙企业 | 采用动态操作系统容器的应用迁移 |
US20170010911A1 (en) * | 2015-07-06 | 2017-01-12 | Purdue Research Foundation | Integrated configuration engine for interference mitigation in cloud computing |
US20170147383A1 (en) * | 2015-11-22 | 2017-05-25 | Strato Scale Ltd. | Identification of cross-interference between workloads in compute-node clusters |
CN107239323A (zh) * | 2017-08-03 | 2017-10-10 | 郑州云海信息技术有限公司 | 一种容器热迁移的方法及系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888741A (zh) * | 2019-11-27 | 2020-03-17 | 新华三大数据技术有限公司 | 应用容器的资源调度方法、装置、服务器及存储介质 |
CN114443311A (zh) * | 2022-04-07 | 2022-05-06 | 北京天维信通科技有限公司 | 一种第三方服务配置方法、装置及电子设备 |
CN114443311B (zh) * | 2022-04-07 | 2022-08-05 | 北京天维信通科技有限公司 | 一种第三方服务配置方法、装置及电子设备 |
CN117369950A (zh) * | 2023-12-04 | 2024-01-09 | 上海凯翔信息科技有限公司 | 一种docker容器的配置系统 |
CN117369950B (zh) * | 2023-12-04 | 2024-02-20 | 上海凯翔信息科技有限公司 | 一种docker容器的配置系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110196751B (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2697965C (en) | Method and system for evaluating virtualized environments | |
CN112181764B (zh) | Kubernetes资源数据的监视方法及装置 | |
US9047131B2 (en) | Hardware resource allocation and provisioning for composite applications | |
CN112437915A (zh) | 云平台上监测多个集群和应用程序的方法 | |
CN104050042B (zh) | Etl作业的资源分配方法及装置 | |
CN106874084B (zh) | 一种分布式工作流调度的方法、装置及计算机设备 | |
JP5352890B2 (ja) | 計算機システムの運用管理方法、計算機システム及びプログラムを記憶する計算機読み取り可能な媒体 | |
US20140136711A1 (en) | Pre-provisioning resources for composite applications | |
CN110196751A (zh) | 互扰服务的隔离方法及装置、电子设备、存储介质 | |
WO2016209324A1 (en) | Controlling application deployment based on lifecycle stage | |
CN111343219B (zh) | 计算服务云平台 | |
CN109634855A (zh) | 一种基于云计算的自动化测试环境智能匹配方法 | |
CN112085535A (zh) | 资源计量计费方法、装置、集群及存储介质 | |
CN109995871A (zh) | 一种Pod调度方法及装置 | |
CN108009004B (zh) | 基于Docker的业务应用可用度测量监控的实现方法 | |
CN109150964A (zh) | 一种可迁移的数据管理方法及服务迁移方法 | |
CN115964176B (zh) | 云计算集群调度方法、电子设备和存储介质 | |
CN112580816A (zh) | 机器学习训练资源管理 | |
CN113157476B (zh) | 虚拟云环境中显卡故障的处理方法及装置 | |
CN114816272B (zh) | Kubernetes环境下的磁盘管理系统 | |
CN105740054A (zh) | 一种虚拟机管理方法及装置 | |
CN108574719A (zh) | 一种云主机创建方法及装置 | |
Keller et al. | Best practices for deploying a CMDB in large-scale environments | |
WO2021096346A1 (en) | A computer-implemented system for management of container logs and its method thereof | |
CN114157569A (zh) | 集群系统及其构建方法和构建装置 |
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 |