CN115065597A - 一种容器资源配置方法、装置、介质和设备 - Google Patents

一种容器资源配置方法、装置、介质和设备 Download PDF

Info

Publication number
CN115065597A
CN115065597A CN202210671428.3A CN202210671428A CN115065597A CN 115065597 A CN115065597 A CN 115065597A CN 202210671428 A CN202210671428 A CN 202210671428A CN 115065597 A CN115065597 A CN 115065597A
Authority
CN
China
Prior art keywords
resource
use condition
container
data
determining
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
Application number
CN202210671428.3A
Other languages
English (en)
Other versions
CN115065597B (zh
Inventor
李婷
梁天健
陈以松
熊杰
肖锋
刘冬寅
施驰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN202210671428.3A priority Critical patent/CN115065597B/zh
Priority claimed from CN202210671428.3A external-priority patent/CN115065597B/zh
Publication of CN115065597A publication Critical patent/CN115065597A/zh
Application granted granted Critical
Publication of CN115065597B publication Critical patent/CN115065597B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及云计算技术领域,尤其涉及一种容器资源配置方法、装置、介质和设备。其中方法包括:针对云平台中的任一容器,获取容器在配置时刻之前的设定时长内的历史运行数据;对历史运行数据按照采样频率进行采样,得到容器的样本数据;针对容器中的任一资源,通过不同的异常检测模型从样本数据中确定出资源对应的正常使用状况;根据资源对应的正常使用状况,确定在配置时刻针对资源的更新配置数据。这种获取更新配置数据的方式,由于有历史运行数据的决策支持,并从样本数据中确定出资源对应的正常使用状况,更加精准地对计算资源进行了分配。

Description

一种容器资源配置方法、装置、介质和设备
技术领域
本申请涉及云计算技术领域,尤其涉及一种容器资源配置方法、装置、介质和设备。
背景技术
云计算是指利用通信网络,通过虚拟化方式来共享计算资源的一种新型计算模式。云计算的核心思想是通过网络统一管理和调度计算资源,满足用户通过网络随时获取计算资源的需求。这些计算资源包括存储资源、网络资源、中央处理器(centralprocessing unit,CPU)资源等。
云计算一般通过云平台来实现,而现有对云平台进行计算资源管理主要是基于容器管理技术(如kubernetes,K8S)实现的。K8S的主要作用是针对各个容器,对其中的计算资源实现部署、规划、更新和维护等。但是云平台的管理人员通过K8S对计算资源进行管理时主要是根据每个容器的参数,按照管理人员的经验为每个容器分配计算资源。但是对于一些计算资源有限的云平台来讲,这种计算资源分配方式不够精细,容易造成计算资源浪费,或者计算资源不足的情况。
基于此,目前亟需一种容器资源配置方法,用于提高计算资源分配的精准度。
发明内容
本申请提供一种容器资源配置方法,用于提高计算资源分配的精准度。
第一方面,本申请提供一种容器资源配置方法,所述方法包括:针对云平台中的任一容器,获取所述容器在配置时刻之前的设定时长内的历史运行数据;对所述历史运行数据按照采样频率进行采样,得到所述容器的样本数据;其中,所述历史运行数据是通过监控系统在各采集时刻采集得到的所述容器中各资源的资源使用状况;针对所述容器中的任一资源,通过不同的异常检测模型从所述样本数据中确定出所述资源对应的正常使用状况;根据所述资源对应的正常使用状况,确定在所述配置时刻针对所述资源的更新配置数据。
通过上述方式,对云平台中的每一个容器进行资源配置,通过按照特定的采样频率对历史运行数据进行采样,可以得到反应容器实际使用资源数量的样本数据。而对于云平台而言,它的历史运行数据是可以通过监控系统实时记录的,所以采集各个容器的历史运行数据比较容易。按照特定的采样频率获取到特定的样本数据之后,把异常的样本数据排除,其余的数据可以反映资源对应的正常使用状况,由此就可以准确的确定在配置时刻对某种资源的更新配置数据。这种获取更新配置数据的方式,由于有历史运行数据的决策支持,更加精准的对计算资源进行了分配。
一种可能的实现方式中,通过不同的异常检测模型从所述样本数据中确定所述资源对应的正常使用状况,包括:针对任一异常检测模型,通过所述异常检测模型从所述样本数据中确定出所述资源的可疑使用状况;将经不同的异常检测模型均确定为可疑使用状况的资源使用状况,确定为所述资源的异常使用状况;将所述样本数据中除所述资源的异常使用状况的资源使用状况,确定为所述资源对应的正常使用状况。
在上述方式中使用多种异常检测模型,从样本数据中获取正常使用情况,主要是为了排除样本数据中的异常数据,因为异常数据会对最终更新配置数据的确定产生较大的影响,导致更新配置数据确定不准确只使用多个异常检测模型,确定资源对应的正常使用状况,再确定更新配置数据,使得更新配置数据的确定更加准确。此外,多个模型都确定样本数据为资源的可疑使用状况时,就把样本数据作为资源的异常使用状况。有效的提高了异常使用状况判断得准确性。
一种可能的实现方式中,通过所述异常检测模型从所述样本数据中确定出所述资源的可疑使用状况,包括:从所述样本数据中获取所述资源的各资源使用状况;将所述资源的各资源使用状况按照设定顺序排列;确定位于第一设定位置的资源使用状况Q1和位于第二设定位置的资源使用状况Q2;根据如下公式确定参考值U:U=Q2+K*(Q2-Q1),其中K为调节因子;将所述资源的各资源使用状况中大于所述参考值U,确定为所述资源的可疑使用状况。
上述方式中的异常检测模型计算较为简单,可以简单快速的确定出样本数据中的资源的可以使用状况。
一种可能的实现方式中,通过所述异常检测模型从所述样本数据中确定出所述资源的可疑使用状况,包括:将所述样本数据中所述资源的各资源使用状况,作为所述资源的各样本点;对各样本点进行孤立森林模型训练,得到多个孤立树;确定所述各样本点在所述多个孤立树中的平均高度;根据所述平均高度确定所述样本点中所述资源的可疑使用状况。
在上述方式中,通过构建孤立森林模型的方式,确定每个样本数据在每棵树中的高度,进而确定在所有数中的平均高度,可以有效的筛选出偏离较大的样本数据,为资源的可以使用状况的确定,增加可靠性。
一种可能的实现方式中,确定在所述配置时刻针对所述资源的更新配置数据之后,还包括:判断所述资源的当前配置数据与所述更新配置数据的差值是否大于设定阈值,若是,则生成告警信息。
在上述方式中,可以自动根据更新配置数据生成告警信息,筛选出当前配置数据和更新配置数据的差异,如果差异过大就进行告警,及时对当前配置数据进行调整。
一种可能的实现方式中,生成告警信息之后,还包括:若连续M个配置时刻均生成告警信息,则将所述资源的当前配置数据更新为所述更新配置数据。
在上述方式中,若连续M个配置时刻均生成了告警信息,则说明当前配置数据不合理,必须更新为新的配置数据,在此过程中既可以是系统自动执行,也可以将告警信息发送给管理员,让管理员更新配置数据。
一种可能的实现方式中,通过由如下公式确定所述采样频率:
Figure BDA0003693330330000041
其中fw为采样频率,f0是预先设定的采样频率,t0为采样时段的开始时间,tn为所述采样时段的结束时间,ti为采样时刻,所述采样时段是对所述设定时长进行划分得到的。
由于越接近当前时刻的历史运行数据,越能反映当前时刻的实际运行情况,所以按照上述方式得到的采样频率,要靠近当前时刻,采样频率越大,这样可以有效的提高更新配置数据的准确性。
第二方面,一种容器资源配置装置,所述装置包括:获取模块,用于针对云平台中的任一容器,获取所述容器在配置时刻之前的设定时长内的历史运行数据;采样模块,用于对所述历史运行数据按照采样频率进行采样,得到所述容器的样本数据;其中,所述历史运行数据是通过监控系统在各采集时刻采集得到的所述容器中各资源的资源使用状况;确定模块,用于针对所述容器中的任一资源,通过不同的异常检测模型从所述样本数据中确定出所述资源对应的正常使用状况;所述确定模块,还用于根据所述资源对应的正常使用状况,确定在所述配置时刻针对所述资源的更新配置数据。
一种可能的实现方式中,所述确定模块,还用于针对任一异常检测模型,通过所述异常检测模型从所述样本数据中确定出所述资源的可疑使用状况;将经不同的异常检测模型均确定为可疑使用状况的资源使用状况,确定为所述资源的异常使用状况;将所述样本数据中除所述资源的异常使用状况的资源使用状况,确定为所述资源对应的正常使用状况。
一种可能的实现方式中,一种异常检测模型,用于从所述样本数据中获取所述资源的各资源使用状况;将所述资源的各资源使用状况按照设定顺序排列;确定位于第一设定位置的资源使用状况Q1和位于第二设定位置的资源使用状况Q2;根据如下公式确定参考值U:U=Q2+K*(Q2-Q1),其中K为调节因子;将所述资源的各资源使用状况中大于所述参考值U,确定为所述资源的可疑使用状况。
一种可能的实现方式中,另一种异常检测模型,用于将所述样本数据中所述资源的各资源使用状况,作为所述资源的各样本点;对各样本点进行孤立森林模型训练,得到多个孤立树;确定所述各样本点在所述多个孤立树中的平均高度;根据所述平均高度确定所述样本点中所述资源的可疑使用状况。
一种可能的实现方式中,所述装置还包括告警模块,告警模块用于判断所述资源的当前配置数据与所述更新配置数据的差值是否大于设定阈值,若是,则生成告警信息。
一种可能的实现方式中,所述告警模块还用于,若连续M个配置时刻均生成告警信息,则将所述资源的当前配置数据更新为所述更新配置数据。
一种可能的实现方式中,所述采样模块具体用于,通过由如下公式确定所述采样频率:
Figure BDA0003693330330000051
其中fw为采样频率,f0是预先设定的采样频率,t0为采样时段的开始时间,tn为所述采样时段的结束时间,ti为采样时刻,所述采样时段是对所述设定时长进行划分得到的。
第三方面,本申请提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序被运行时,执行上述第一方面中任一项方法。
第四方面,本申请提供一种计算设备,包括:存储器,用于存储程序指令;处理器,用于调用存储器中存储的程序指令,按照获得的程序执行上述第一方面中任一项设计中的方法。
第五方面,本申请提供一种计算机程序产品,当计算机程序产品在处理器上运行时,实现如上述第一方面中任一项设计中的方法。
上述第二方面至第五方面的有益效果,具体可参照上述第一方面任一项设计可达到的有益效果,此处不再一一赘述。
附图说明
图1示例性示出本申请实施例提供的一种应用场景示意图;
图2示例性示出本申请实施例提供的一种容器资源配置方法的流程示意图;
图3示例性示出本申请实施例提供的一种确定出资源的可疑使用状况的流程示意图;
图4示例性示出本申请实施例提供的又一种确定出资源的可疑使用状况的流程示意图;
图5示例性地示出本申请实施例提供的一种孤立树示意图;
图6示例性地示出本申请时实施例提供的一种容器资源配置装置示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1示例性示出本申请实施例提供的一种应用场景示意图。如图1所示,应用场景中包括云平台、管理员、用户、网络。其中,云平台是一种基于硬件资源和软件资源的服务,当用户需要某种应用时,用户通过网络向云平台发出请求,云平台根据用户的请求进行计算,并将计算结果呈现在用户的屏幕上。云计算分布式的资源向用户隐藏了实现细节,并最终以整体的形式呈现给用户。一个云平台可以同时为多个用户服务,如图1所示的用户1、用户2……用户X。云平台可以大致分为以下三类:以数据存储为主的存储型云平台、以数据处理为主的计算型云平台、计算和数据存储处理兼顾的综合云平台。云平台的服务类型包括:软件即服务、平台即服务、附加服务。软件即服务的应用完全运行在云平台中。软件即服务面向用户,提供稳定的在线应用软件。用户购买软件的使用权只需接入网络接口接入如图1所示的网络便可访问应用软件。平台即服务的含义是,一个云平台为应用的开发提供云端的服务。例如,一个新的应用服务的开发者在云平台上进行研发,云平台直接的使用者是开发人员而不是普通用户,它为开发者提供了稳定的开发环境。附加服务是每一个安装在本地的应用程序本身就可以给用户提供有用的功能,而一个应用有时候可以通过访问云平台中的特殊的应用服务来加强功能。因为这些服务只对特定的应用起作用,所以它们可以被看成一种附加服务。
本实施例中的云平台可以是企业内部的私有云平台,如电信集团的私有容器云平台,这是一种平台即服务(platform as a service,PAAS)类型的云平台,用户1、用户2……用户X即企业内部的研发人员,通过网络登录这个云平台进行应用的开发和调试。对于这种企业私有的云平台来讲,云平台的硬件资源是有限的,例如,服务器的数量在长时间内是固定的,云平台的计算资源是有限的。因此对于有限的计算资源需要更加精细化的进行管理。
云平台中的各个容器是一种开源的应用容器引擎,用户可以打包的应用服务到一个可移植的容器中,然后发布到任何流行的操作系统中,也可以实现虚拟化。但是,容器不同于虚拟机。虚拟机在本质上是对现实中计算机的仿真,它会像真实的计算机一样执行程序。使用虚拟机管理程序可以将虚拟机运行于物理机上。虚拟机管理程序可以在主机运行,也可以在“裸机”上运行。虚拟机管理程序本身会在物理计算机上运行,称为“主机”。主机为虚拟机提供资源,包括内存和CPU。这些资源在虚拟机之间被划分并且可以根据需要进行分配。所以如果一个虚拟机上运行了资源占用更大的应用程序,相较于其它运行在同一个主机的虚拟机可以给其分配更多的资源。而容器通过抽象“用户空间”来提供操作系统级别的虚拟化,容器和虚拟机之间的一个重要区别在于容器和其它容器共享主机系统的内核。容器打包的是用户空间,虚拟机打包的是物理机的内核或虚拟硬件。如图1所示的云平台,资源池中的各种资源是共享的,如内存资源、网络资源、CPU资源等,任何用户都可以使用这些资源,用户在云平台创建应用服务时,容器管理系统为这个应用服务创建用户空间,即容器,如图1中的容器101,即为应用服务111创建的容器。此外,在应用服务的版本更迭中,还可以创建其他容器为应用服务111工作,如图1中的容器102、容器103、容器104、容器105。
目前,对于资源进行管理主要依靠的是一种容器管理技术(kubernetes,K8S)。这是一个开源的,用于管理云平台中多个主机上的容器化的应用。通过部署容器方式实现每个容器之间的互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。由于容器与底层设施、机器文件系统是解耦的,所以它能在不同云平台或者不同版本的操作系统间进行迁移。通过K8S容器管理技术,将每个应用打包成一个容器镜像,每个应用服务(server,SVR)与容器(container,C)之间可以是一对一的关系,也可以是一对多的关系,例如,如图1所示应用服务111对应的容器是容器101、容器102、容器103、容器104、容器105;应用服务112对应的容器是容器106、容器107、容器108、容器109、容器1010。每个应用服务与容器间成一对一关系会使容器有更大优势,使用容器可以在建立或运行阶段,为应用服务创建容器镜像,因为每个应用服务不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得容器能够从研发到测试、生产能提供一致环境。
K8S是根据容器的请求request参数进行最小资源分配的,即根据每个容器的计算资源请求数量进行计算资源的分配。对于企业内部的私有云来说,用户根据自己的经验值设定一个请求值,对计算资源进行申请。使用这种方式,由于没有计算资源申请量的限制,用户为了最大限度的满足自己的需求,往往将申请值设定的很高,很容易导致云平台的计算资源申请量超过平台的计算资源总量,导致应用服务在运行的过程中出现挂死的情况,并且也无法继续创建其他的应用服务。
因此,本申请提出一种容器资源配置方法,用于实现对计算资源的精细化分配,从而避免资源浪费,并确保应用服务能够获取足够的资源可以在容器中正常运行,避免出现挂死的现象。
图2示例性示出本申请实施例提供的一种容器资源配置方法的流程示意图,如图2所示,该方法包括:
步骤201,针对云平台中的任一容器,获取所述容器在配置时刻之前的设定时长内的历史运行数据。
需要说明的是,本实施例是以一个容器为例介绍容器资源配置方法,对于云平台中的其他容器,可以在配置时刻同时进行容器资源的配置,也可以按照一定的顺序,对各个容器串行执行容器资源的配置。
其中,配置时刻是一个配置周期中的任一时刻。在一个配置周期中,每个容器的资源使用情况时固定的,在配置时刻对容器进行计算资源配置的更新。进行的操作主要包括如下两种:
第一种:向容器分配新的资源。这是由于在上一个配置周期中,与容器对应的应用服务可能进行了版本更迭,在新的版本中需要使用更多的资源来处理业务,原有的资源虽然可以对业务进行处理,但是可能出现了卡顿,或者用户已经向资源池申请了更多的资源,来确保应用服务的正常运行,但是资源配置系统中的值没有更新。
第二种:回收容器的资源。这种情况中,可能是由于上一个配置周期中,与容器对应的应用服务实际使用的资源数量少于这个容器获得的资源数量,对于闲置的资源,要回收到资源池中,可以供其他应用服务使用。
配置周期、配置时刻和设定时长可以依据经验值来设置。例如,对于企业的私有云平台,可以将配置周期设置为一天,配置时刻设置为每天的24点,设定时长是30天。那么,在配置时刻获取的即为过去30天的运行数据。
步骤202,对所述历史运行数据按照采样频率进行采样,得到所述容器的样本数据;其中,所述历史运行数据是通过监控系统在各采集时刻采集得到的所述容器中各资源的资源使用状况。
可选的,通过监控系统使用普罗米修斯Prometheus监控方案对各个容器的运行数据进行采集。Prometheus监控方案具备对K8S资源的指标采集和配置的自动化处理能力,是一种对时序数据检索、存储和聚类等高效的处理方法。采用Prometheus实时采集每个容器的资源使用情况,并将数据以时序形式存入时序数据库中。时间序列数据是按照时间顺序记录系统、设备状态变化的数据。Prometheus是一种多维度数据模型,由指标名称和键/值对标识的时间序列数据。它作为一个时间序列数据库,其采集的数据会以文件的形式存储在本地中。对这些数据进行查询时,可提供的查询语言较多,此外,它并不依赖分布式存储,服务器节点是自治的。表一示例性示出本申请实施例提供的一种时间序列数据:
表一
Figure BDA0003693330330000101
表一展示的是图1中的容器111从2022年3月22日00:00:00到2022年4月22日23:59:59的运行数据,如表一所示,例如在2022年3月22日00:00:01容器111对于CPU的占用率是20%,内存占用是4G,网络带宽是200bps;……;在2022年4月22日23:59:59容器111对于CPU的占用率是10%,内存占用是8G,网络带宽是1400bps。
获取到上述历史运行数据之后,由于上述运行数据的数量非常多,对全部的数据进行处理需要占用较多的时间,且并不是全部的历史运行数据都可以反映配置时刻实际运行需要的资源数量,因此,需要对上述运行数据进行样本的提取。从这些历史数据中选取最能够反映配置时刻实际运行需要的资源数量,作为样本数据。
在采样之前,需要确定采样频率,一般来讲,越接近配置时刻,采样频率越高。
示例性地,通过由如下公式确定所述采样频率:
Figure BDA0003693330330000111
其中fw为采样频率,f0是预先设定的采样频率,t0为采样时段的开始时间,tn为采样时段的结束时间,ti为采样时刻,采样时段是对设定时长进行划分得到的。
例如,设定时长为2020-01-25 16:00:00到2020-02-25 16:00:00之间的30天,每五分钟划分为一个采样时段。第一个采样时段即为2020-01-25 16:00:00至2020-02-2516:00:00,以分钟为单位,确定上述采样时段的开始时间t0为一年中第26332320分钟,结束时间为一年中第26376960分钟,对应的ti为采样时刻也换算成一年中第多少分钟,按照上述公式进行计算,就可以得到每分钟的采样频率,即这一分钟采样多少次。
步骤203,针对所述容器中的任一资源,通过不同的异常检测模型从样本数据中确定出资源对应的正常使用状况。
对于在步骤202中获得的样本数据,有一些异常的数据值,这些异常的数据值会对配置时刻的实际使用情况的预测产生较大的影响。产生这些异常数据可能是由于监控系统在对数据进行采集时产生了偏差,还可能是由于在进行采样的过程中产生错误,因此,在步骤203中,需要使用异常检测模型将异常数据剔除或者修正,根据其余的数据确定一个容器正常使用资源的状况。
步骤204,根据所述资源对应的正常使用状况,确定在所述配置时刻针对所述资源的更新配置数据。
资源对应的正常使用状况反映的是历史数据中容器真实使用的资源状况,根据容器真实使用的资源状况确定资源的更新配置数据,可以使资源的更新配置数据更加准确。
在上述步骤203中,针对任一异常检测模型,通过异常检测模型从样本数据中确定出资源的可疑使用状况;将经不同的异常检测模型均确定为可疑使用状况的资源使用状况,确定为资源的异常使用状况;将样本数据中除资源的异常使用状况的资源使用状况,确定为资源对应的正常使用状况。下面介绍两种异常检测模型。
异常检测模型一:
通过所述异常检测模型一从所述样本数据中确定出资源的可疑使用状况,可以通过如图3所示的步骤进行。图3示例性示出本申请实施例提供的一种确定出资源的可疑使用状况的流程示意图,如图3所示该流程包括:
步骤301,从样本数据中获取资源的各资源使用状况。
本步骤中,以CPU资源为例进行说明,其他个资源可以参照CPU资源。
假设,本步骤中获取的到CPU资源使用情况如下:
{0.3,2.2,0.2,0.1,0.2,0.4,0.5,0.8,0.6,0.7,0.3},例如,0.3即表示CPU的占用率是30%。
步骤302,将资源的各资源使用状况按照设定顺序排列。
示例性地,设定顺序为大小顺序,将上述获取到的CPU资源按照从小到大的顺序进行排序,得到如下数列:
{0.1,0.2,0.2,0.3,0.3,0.4,0.5,0.6,0.7,0.8,2.2}
步骤303,确定位于第一设定位置的资源使用状况Q1和位于第二设定位置的资源使用状况Q2;根据如下公式确定参考值U:U=Q2+K*(Q2-Q1),其中K为调节因子。
示例性地,将第一设定位置设置为数列中四分之一的位置,将第二设定位置设置为数列中四分之三的位置。那么第一设定位置通过如下公式确定:
N1=1+(n+1)*0.25
第二设定位置通过如下公式确定:
N2=1+(n+1)*0.75
其中,N1为第一设定位置,N2为第二设定位置,n为数列中数据的总个数。继续以上述步骤302中的数列为例,数列中数据的总个数为11,那么n=11,由此,计算得到N1=3,N2=9,也就是说,第一设定位置为数列中第三个数据所在的位置,第二设定位置为数列中第九个数据所在的位置,由此,Q1=0.2,Q3=0.7。假设此时调节因子取1.5,那么计算可以得到参考值U=1.45。
步骤304,将资源的各资源使用状况中大于参考值U,确定为资源的可疑使用状况。
仍以上述步骤302中的数列为例,参考值大于1.45的数据为2.2,因此,就将2.2确定为资源的可疑使用状况。
应理解,上述是以一维的数列进行举例,异常检测模型一还可以在多维的数据中检测资源的可疑使用状况,处理方式参照上述步骤301~304进行。
异常检测模型二:
通过所述异常检测模型二从所述样本数据中确定出资源的可疑使用状况,可以通过如图4所示的步骤进行。图4示例性示出本申请实施例提供的又一种确定出资源的可疑使用状况的流程示意图,如图4所示该流程包括:
步骤401,将样本数据中资源的各资源使用状况,作为资源的各样本点;
步骤402,对各样本点进行孤立森林模型训练,得到多个孤立树;
步骤403,确定各样本点在多个孤立树中的平均高度;
步骤404,根据平均高度确定样本点中所述资源的可疑使用状况。
示例性地,仍以上述步骤302中的数列中的数据为例,在其中随机选取一个数据作为孤立树的根节点,或者,随机在上述数据中的最大值和最小值之间选取一个数据作为孤立树的根节点。图5示例性示出本申请实施例提供的一种孤立树示意图,如图5所示,从上述样本数据中选择0.5作为根节点501,将比0.5小的数据放在根节点501的左侧空间,将比0.5大的数据放在根节点501的右侧空间;在树的第二层节点中,在左侧空间所有的数据中随机产生一个切割点,切割点位于左侧空间所有数据的最大值和最小值之间。如图5所示,在第二层的子节点502处产生的切割点为0.35,将比0.35小的数据放在子节点502的左侧空间,将比0.35大的数据放在节点502的右侧空间;其他的子节点按照上述方式逐一进行划分直到每个子节点处只有一个数据,大小相同的数据放在一个子节点中。
在上述步骤402中,将不同的样本点作为根节点,可以得到多个不同的孤立树,形成孤立森林。
在上述步骤403中,确定各样本点在各个孤立树的高度h(xi)之后,可以将各个高度进行归一化处理。例如,对各个高度进行缩放,将其处理为位于[0,1]这个区间中的数据。
在上述步骤404中,可以使用如下公式确定各样本点是否是资源的可疑使用状况:
Figure BDA0003693330330000141
Figure BDA0003693330330000142
H(x)=ln x+0.5772156649
……(3)
其中,S(x,n)是异常分数值,h(x)为各样本点在多个孤立树中的平均高度,n为样本点的总个数。当S越趋近于1,表示资源的使用状况越可疑。为S设定一个阈值,将大于此阈值的样本点确定为资源的可疑使用状况。
假设根据上述步骤判断出样本点2.2为资源的可疑使用状况,由于使用异常检测模型一,也判断出样本点2.2为资源的可疑使用状况,因此,就把2.2这个样本数据确定为资源的异常使用状况,将2.2以外的数据确定为资源对应的正常使用状况。
在上述步骤204中,可以将资源对应的正常使用状况中的数据的最大值作为配置时刻针对所述资源的更新配置数据。优选地,将这个最大值膨胀m倍作为资源的更新配置数据,通过这种方式,为容器分配的资源有一定的余量,可以保证与容器对应的应用服务有足够的资源,避免出现卡顿的情况。
示例性地,仍以上述步骤302中的数据为例,资源对应的正常使用状况中的数据的最大值为0.8,将0.8膨胀1.5倍,将1.2作为资源的更新配置数据。
一种可能的实现方式,确定在配置时刻资源的更新配置数据之后,还包括:
判断资源的当前配置数据与更新配置数据的差值是否大于设定阈值,若是,则生成告警信息。当前配置数据与更新配置数据的差值大于设定阈值,主要包括如下两种情况:
情况一:当前配置数据值-更新配置数据值>50%×更新配置数据值;在这种情况中,当前配置数据值大于更新配置数据值,并且超过了更新配置数据值的50%,此时,发出A1类别的告警。
情况二:更新配置数据值-当前配置数据值>50%×更新配置数据值;在这种情况中,更新配置数据值大于当前配置数据值,并且超过了更新配置数据值的50%。此时,发出A2类别的告警。
若连续M个配置时刻均生成告警信息,系统则将资源的当前配置数据更新为更新配置数据。优选地,配置时刻可以是一个配置周期中的任一时刻,若连续3个配置周期都生成了告警信息,就对当前配置数据进行更新,更新为更新配置数据。
一种可能的实现方式中,可以根据各个容器的告警信息生成告警清单,并发送给管理员,根据管理员的指示确定是否更新更新配置数据。
示例性地,将告警清单生成邮件发送给管理员,若管理员针对一个容器回复0000,就不更新这个容器的配置数据;若管理员针对一个容器回复1000,就更新这个容器的配置数据。
进一步地,如果管理员连续N次回复0000,系统直接将资源的当前配置数据更新为更新配置数据。
通过上述方式,可以及时对不合理的当前配置数据值进行更新,实现对容器中多余的资源的回收,或者,为资源不足的容器进行资源的分配。
基于相同的技术构思,本申请实施例还提供了一种容器资源配置装置。图6示例性地示出本申请实施例提供的一种容器资源配置装置示意图,该装置可以执行前述的容器资源配置方法,如图6所示,该装置包括:获取模块601,用于针对云平台中的任一容器,获取所述容器在配置时刻之前的设定时长内的历史运行数据;采样模块602,用于对所述历史运行数据按照采样频率进行采样,得到所述容器的样本数据;其中,所述历史运行数据是通过监控系统在各采集时刻采集得到的所述容器中各资源的资源使用状况;确定模块603,用于针对所述容器中的任一资源,通过不同的异常检测模型从所述样本数据中确定出所述资源对应的正常使用状况;所述确定模块603,还用于根据所述资源对应的正常使用状况,确定在所述配置时刻针对所述资源的更新配置数据。
一种可能的实现方式中,所述确定模块603,还用于针对任一异常检测模型,通过所述异常检测模型从所述样本数据中确定出所述资源的可疑使用状况;将经不同的异常检测模型均确定为可疑使用状况的资源使用状况,确定为所述资源的异常使用状况;将所述样本数据中除所述资源的异常使用状况的资源使用状况,确定为所述资源对应的正常使用状况。
一种可能的实现方式中,一种异常检测模型,用于从所述样本数据中获取所述资源的各资源使用状况;将所述资源的各资源使用状况按照设定顺序排列;确定位于第一设定位置的资源使用状况Q1和位于第二设定位置的资源使用状况Q2;根据如下公式确定参考值U:U=Q2+K*(Q2-Q1),其中K为调节因子;将所述资源的各资源使用状况中大于所述参考值U,确定为所述资源的可疑使用状况。
一种可能的实现方式中,另一种异常检测模型,用于将所述样本数据中所述资源的各资源使用状况,作为所述资源的各样本点;对各样本点进行孤立森林模型训练,得到多个孤立树;确定所述各样本点在所述多个孤立树中的平均高度;根据所述平均高度确定所述样本点中所述资源的可疑使用状况。
一种可能的实现方式中,所述装置还包括告警模块,告警模块用于判断所述资源的当前配置数据与所述更新配置数据的差值是否大于设定阈值,若是,则生成告警信息。
一种可能的实现方式中,所述告警模块还用于,若连续M个配置时刻均生成告警信息,则将所述资源的当前配置数据更新为所述更新配置数据。
一种可能的实现方式中,所述采样模块602具体用于,通过由如下公式确定所述采样频率:
Figure BDA0003693330330000171
其中fw为采样频率,f0是预先设定的采样频率,t0为采样时段的开始时间,tn为所述采样时段的结束时间,ti为采样时刻,所述采样时段是对所述设定时长进行划分得到的。
基于相同的技术构思,本发明实施例还提供了一种计算设备,包括:存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如图2、图3和图4所示意的方法。
基于相同的技术构思,本发明实施例还提供了一种计算机可读存储介质,当所述计算机程序产品在处理器上运行时,实现如图2、图3和图4所示意的方法。
基于相同的技术构思,本发明实施例还提供了一种计算机程序产品,当所述计算机程序产品在处理器上运行时,实现如图2、图3和图4所示意的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种容器资源配置方法,其特征在于,所述方法包括:
针对云平台中的任一容器,获取所述容器在配置时刻之前的设定时长内的历史运行数据;对所述历史运行数据按照采样频率进行采样,得到所述容器的样本数据;其中,所述历史运行数据是通过监控系统在各采集时刻采集得到的所述容器中各资源的资源使用状况;
针对所述容器中的任一资源,通过不同的异常检测模型从所述样本数据中确定出所述资源对应的正常使用状况;根据所述资源对应的正常使用状况,确定在所述配置时刻针对所述资源的更新配置数据。
2.如权利要求1所述的方法,其特征在于,
通过不同的异常检测模型从所述样本数据中确定所述资源对应的正常使用状况,包括:
针对任一异常检测模型,通过所述异常检测模型从所述样本数据中确定出所述资源的可疑使用状况;
将经不同的异常检测模型均确定为可疑使用状况的资源使用状况,确定为所述资源的异常使用状况;
将所述样本数据中除所述资源的异常使用状况的资源使用状况,确定为所述资源对应的正常使用状况。
3.如权利要求2所述的方法,其特征在于,通过所述异常检测模型从所述样本数据中确定出所述资源的可疑使用状况,包括:
从所述样本数据中获取所述资源的各资源使用状况;
将所述资源的各资源使用状况按照设定顺序排列;
确定位于第一设定位置的资源使用状况Q1和位于第二设定位置的资源使用状况Q2;根据如下公式确定参考值U:
U=Q2+K*(Q2-Q1),其中K为调节因子;
将所述资源的各资源使用状况中大于所述参考值U,确定为所述资源的可疑使用状况。
4.如权利要求2所述的方法,其特征在于,通过所述异常检测模型从所述样本数据中确定出所述资源的可疑使用状况,包括:
将所述样本数据中所述资源的各资源使用状况,作为所述资源的各样本点;
对各样本点进行孤立森林模型训练,得到多个孤立树;
确定所述各样本点在所述多个孤立树中的平均高度;
根据所述平均高度确定所述各样本点中所述资源的可疑使用状况。
5.如权利要求1所述的方法,其特征在于,确定在所述配置时刻针对所述资源的更新配置数据之后,还包括:
判断所述资源的当前配置数据与所述更新配置数据的差值是否大于设定阈值,若是,则生成告警信息。
6.如权利要求5所述的方法,其特征在于,生成告警信息之后,还包括:
若连续M个配置时刻均生成告警信息,则将所述资源的当前配置数据更新为所述更新配置数据。
7.如权利要求1-6任一项所述的方法,其特征在于,通过由如下公式确定所述采样频率:
Figure FDA0003693330320000021
其中fw为采样频率,f0是预先设定的采样频率,t0为采样时段的开始时间,tn为所述采样时段的结束时间,ti为采样时刻,所述采样时段是对所述设定时长进行划分得到的。
8.一种容器资源配置装置,其特征在于,所述装置包括:
获取模块,用于针对云平台中的任一容器,获取所述容器在配置时刻之前的设定时长内的历史运行数据;
采样模块,用于对所述历史运行数据按照采样频率进行采样,得到所述容器的样本数据;其中,所述历史运行数据是通过监控系统在各采集时刻采集得到的所述容器中各资源的资源使用状况;
确定模块,用于针对所述容器中的任一资源,通过不同的异常检测模型从所述样本数据中确定出所述资源对应的正常使用状况;
所述确定模块,还用于根据所述资源对应的正常使用状况,确定在所述配置时刻针对所述资源的更新配置数据。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被运行时,执行如权利要求1至7中任一项所述的方法。
10.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如权利要求1至7任一项权利要求所述的方法。
CN202210671428.3A 2022-06-14 一种容器资源配置方法、装置、介质和设备 Active CN115065597B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210671428.3A CN115065597B (zh) 2022-06-14 一种容器资源配置方法、装置、介质和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210671428.3A CN115065597B (zh) 2022-06-14 一种容器资源配置方法、装置、介质和设备

Publications (2)

Publication Number Publication Date
CN115065597A true CN115065597A (zh) 2022-09-16
CN115065597B CN115065597B (zh) 2024-06-07

Family

ID=

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117411811A (zh) * 2023-12-15 2024-01-16 山西思极科技有限公司 一种电力通信设备的故障智能监测方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109828825A (zh) * 2019-01-07 2019-05-31 平安科技(深圳)有限公司 异常数据检测方法、装置、计算机设备及存储介质
CN109859029A (zh) * 2019-01-04 2019-06-07 深圳壹账通智能科技有限公司 异常申请检测方法、装置、计算机设备以及存储介质
US20190227847A1 (en) * 2018-01-22 2019-07-25 Vmware, Inc. Resource claim optimization for containers
CN110830289A (zh) * 2019-10-21 2020-02-21 华中科技大学 一种容器异常监测方法及监测系统
CN113657461A (zh) * 2021-07-28 2021-11-16 北京宝兰德软件股份有限公司 基于文本分类的日志异常检测方法、系统、设备及介质
CN114327963A (zh) * 2020-09-30 2022-04-12 华为云计算技术有限公司 一种异常检测方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190227847A1 (en) * 2018-01-22 2019-07-25 Vmware, Inc. Resource claim optimization for containers
CN109859029A (zh) * 2019-01-04 2019-06-07 深圳壹账通智能科技有限公司 异常申请检测方法、装置、计算机设备以及存储介质
CN109828825A (zh) * 2019-01-07 2019-05-31 平安科技(深圳)有限公司 异常数据检测方法、装置、计算机设备及存储介质
CN110830289A (zh) * 2019-10-21 2020-02-21 华中科技大学 一种容器异常监测方法及监测系统
CN114327963A (zh) * 2020-09-30 2022-04-12 华为云计算技术有限公司 一种异常检测方法及装置
CN113657461A (zh) * 2021-07-28 2021-11-16 北京宝兰德软件股份有限公司 基于文本分类的日志异常检测方法、系统、设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117411811A (zh) * 2023-12-15 2024-01-16 山西思极科技有限公司 一种电力通信设备的故障智能监测方法
CN117411811B (zh) * 2023-12-15 2024-02-23 山西思极科技有限公司 一种电力通信设备的故障智能监测方法

Similar Documents

Publication Publication Date Title
AU2019200046B2 (en) Utilizing artificial intelligence to test cloud applications
US11392843B2 (en) Utilizing a machine learning model to predict a quantity of cloud resources to allocate to a customer
US11172022B2 (en) Migrating cloud resources
US10402746B2 (en) Computing instance launch time
US10148757B2 (en) Migrating cloud resources
CN103380423B (zh) 用于私人云计算的系统和方法
CN110245023B (zh) 分布式调度方法及装置、电子设备以及计算机存储介质
AU2021205017B2 (en) Processing data utilizing a corpus
US11720825B2 (en) Framework for multi-tenant data science experiments at-scale
WO2016040699A1 (en) Computing instance launch time
US10983873B1 (en) Prioritizing electronic backup
US10891129B1 (en) Decentralized development operations blockchain system
US20230018975A1 (en) Monolith database to distributed database transformation
US20210263718A1 (en) Generating predictive metrics for virtualized deployments
US20200082004A1 (en) Automatic detection of database criticality
US10469329B1 (en) Computing service capacity management
Yao et al. Probabilistic consistency guarantee in partial quorum-based data store
CN111090401B (zh) 存储设备性能预测方法及装置
KR20170033303A (ko) 호스팅된 분석계를 위한 동적 n-차원 큐브
US20190158362A1 (en) Instance usage facilitating system
CN115065597A (zh) 一种容器资源配置方法、装置、介质和设备
CN115065597B (zh) 一种容器资源配置方法、装置、介质和设备
CN114430824B (zh) 用于完整性监测的突变事件检测
CN115221008A (zh) 一种基于微服务模式的调度系统监控方法、设备及介质
WO2021096346A1 (en) A computer-implemented system for management of container logs and its method thereof

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