CN116149846A - 一种应用性能优化方法、装置、电子设备及存储介质 - Google Patents
一种应用性能优化方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116149846A CN116149846A CN202211548824.3A CN202211548824A CN116149846A CN 116149846 A CN116149846 A CN 116149846A CN 202211548824 A CN202211548824 A CN 202211548824A CN 116149846 A CN116149846 A CN 116149846A
- Authority
- CN
- China
- Prior art keywords
- application
- cpu
- index data
- abnormal
- cores
- 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.)
- Pending
Links
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种应用性能优化方法、装置、电子设备及存储介质,属于云计算技术领域。该应用性能优化方法应用于混部集群,该方法包括:获取指标数据;基于各应用的第一指标数据,检测各所述应用是否受到干扰;若存在受到干扰的异常应用,则基于第二指标数据,从CPU共享池中为所述异常应用分配CPU核;根据为所述异常应用分配的所述CPU核,对所述异常应用的控制群组Cgroup文件进行更新。本发明通过各应用以及系统内核的指标数据对应用受到的干扰进行实时监测和实时解决,动态地调整应用所分配的CPU核,极大程度上保障了混部集群应用稳定性,提高应用性能和提高整机的利用率,解决了混部集群中因为CPU核抢占导致的应用性能受到干扰的问题。
Description
技术领域
本发明属于云计算技术领域,更具体地,涉及一种应用性能优化方法、装置、电子设备及存储介质。
背景技术
目前的混部集群中应用主要以微服务化的形式在容器中部署。容器化的应用以两种不同的CPU使用模式来部署到服务器上,一种是将应用绑定到固定CPU核上的CPU set模式,在该模式下应用所能使用的CPU核是预先分配好的且由该应用独占不可被其他应用抢占;另一种模式是共享CPU共享池中所有CPU核的CPU share模式,在该模式下所有的应用都共享同一批没被CPU set模式的应用独占的CPU核。
随着云计算的迅速发展,越来越多的应用从CPU set模式转为CPU share模式,但是CPU share模式下应用在同一个CPU共享池里共享CPU核,必然会出现应用抢占CPU核这一问题,这就导致应用运行过程中势必会产生严重的干扰,进而使得调度开销剧增,操作系统把大量时间用在CPU核上线程的换入换出,而真正被应用使用的CPU时间片却没有多少,从而导致应用性能受到严重影响。
可见,现有技术中存在混部集群中因为CPU核抢占导致应用性能受到干扰的问题。
发明内容
针对相关技术的缺陷,本发明提供一种应用性能优化方法、装置、电子设备及存储介质,旨在解决相关技术中存在的混部集群中因为CPU核抢占导致应用性能受到干扰的问题。
所述技术方案如下:
根据本申请的一个方面,一种应用性能优化方法,应用于混部集群,所述方法包括:获取指标数据,所述指标数据包括各应用在当前时间段内运行过程中的第一指标数据、以及与系统内核相关的第二指标数据;基于各应用的所述第一指标数据,检测各所述应用是否受到干扰;若存在受到干扰的异常应用,则基于所述第二指标数据,从CPU共享池中为所述异常应用分配CPU核;根据为所述异常应用分配的所述CPU核,对所述异常应用的控制群组Cgroup文件进行更新。
根据本申请的一个方面,一种应用性能优化装置,部署于混部集群,所述装置包括:获取模块,用于获取指标数据,所述指标数据包括各应用在当前时间段内运行过程中的第一指标数据、以及与系统内核相关的第二指标数据;干扰检测模块,用于基于各应用的所述第一指标数据,检测各所述应用是否受到干扰;资源分配模块,用于若存在受到干扰的异常应用,则基于所述第二指标数据,从CPU共享池中为所述异常应用分配CPU核;文件更新模块,用于根据为所述异常应用分配的所述CPU核,对所述异常应用的控制群组Cgroup文件进行更新。
根据本申请的一个方面,一种电子设备,包括:至少一个处理器、至少一个存储器、以及至少一条通信总线,其中,存储器上存储有计算机程序,处理器通过通信总线读取存储器中的计算机程序;计算机程序被处理器执行时实现如上所述的应用性能优化方法。
根据本申请的一个方面,一种存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上所述的应用性能优化方法。
根据本申请的一个方面,一种计算机程序产品,计算机程序产品包括计算机程序,计算机程序存储在存储介质中,计算机设备的处理器从存储介质读取计算机程序,处理器执行计算机程序,使得计算机设备执行时实现如上所述的应用性能优化方法。
本申请提供的技术方案带来的有益效果是:
在上述技术方案中,获取混部集群上关于各应用和系统内核的各种指标数据,基于其中各应用的指标数据,检测各应用是否受到干扰;当存在受到干扰的异常应用,则基于指标数据中有关系统内核的指标数据,动态地调整应用所分配的CPU核,以保障应用性能。本发明基于各应用的指标数据对应用受到的干扰进行实时监测和实时解决,以及基于系统内核相关的指标数据而实现的CPU资源动态调整,极大程度上保障了混部集群应用的稳定性,提高应用性能和提高整机的利用率,解决了混部集群中因为CPU核抢占导致应用性能受到干扰的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1是本申请实施例提供的一种应用性能优化方法的实施环境的示意图;
图2是本申请实施例提供的一种应用性能优化方法的流程图;
图3是图2对应实施例中步骤240在一个实施例的流程图;
图4是图2对应实施例中步骤240在另一个实施例的流程图;
图5是一应用场景中一种应用性能优化方法的具体实现示意图;
图6是根据一示例性实施例示出的一种应用性能优化装置的框图;
图7是根据一示例性实施例示出的一种服务器的硬件结构图;
图8是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
下面是对本申请涉及的几个名词进行的介绍和解释:
CPU核,通常认为是分配给应用使用的逻辑核,不同的逻辑核可以来自于同一个物理核,还可能来自于不同的物理核。
Socket,指CPU插槽,就是用于安装CPU的插座。往往CPU资源包括来自多个Socket的CPU核,应用绑定的CPU核应当尽量属于同一Socket,跨Socket会浪费性能资源。
控制群组Cgroup,即control groups,是Linux内核的一个功能,用来限制、控制与分离一个进程组的资源(如CPU、内存、磁盘输入输出等)。CPU sharepool,也认为是CPU共享池,其中的所有CPU核都可以被所有的进程所调用。
CPU share模式,指的是各应用可以共享CPU共享池中的所有CPU核。
CPU set模式,指的是应用能使用的CPU核是预先分配好的且由该应用独占不可被其他应用抢占。该模式下的应用大多属于一些优先级比较高的在线业务。
混部集群,一种把集群混合起来,将不同类型的任务调度到相同的物理资源上,通过调度、资源隔离等控制手段,在保障SLO的基础上,提高资源利用率,极大降低成本的技术。混部意味着要把各种不同业务特性、优先级、资源使用模型的负载混合在同一台机器上运行,必然伴随资源抢占等问题。
如前所述,相关技术中混部集群中各应用之间往往伴随资源抢占而引起的干扰问题。
通常,为了解决混部集群中各应用之间的干扰都是从优化应用部署的角度入手,通过不断地改良调度部署算法来达到节约部署成本,进而减少应用干扰的目的。这些方法虽然在一定程度上改善了应用部署成本难以控制、以及预防一些性能干扰等问题,但是随着应用规模的急剧升高,服务器上的应用密度越来越大,单纯的改善调度部署方式已经很难预防应用之间的干扰,而且应用本身“千人千面”,应用特性之间差异很大,很难用一种机制或算法涵盖所有的情况。
由上可知,相关技术中仍存在应用进行CPU核抢占导致性能受到干扰的局限性。
为此,本申请提供的应用性能优化方法,能够动态调整CPU资源进而有效地提升应用性能,相应地,该应用性能优化方法适用于应用性能优化装置,该应用性能优化装置可部署于电子设备,该电子设备可以是配置冯诺依曼体系结构的计算机设备,例如,该计算机设备可以是台式电脑、笔记本电脑、服务器等等。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
请参阅图1,其示出了本申请提供的一种应用性能优化方法所涉及的实施环境的示意图。该实施环境包括监控组件101、触发器组件102、CPU调度分配组件103、调谐组件104、以及管控组件105。
监控组件101从应用和系统内核收集指标数据,并且将指标数据发送至触发器组件102和CPU调度分配组件103,指标数据包括各应用在当前时间段内运行过程中的第一指标数据、以及与系统内核相关的第二指标数据。
触发器组件102基于各应用的第一指标数据,检测各应用是否受到干扰,并且将检测结果发送调谐组件104。
其中,第一指标数据是指应用在当前时间段内运行过程中相关的指标数据,例如可以是请求的响应延迟、端到端时延、任务完成时间等。
CPU调度分配组件103根据监控组件101所收集到的与系统内核相关的第二指标数据来计算得到CPU账本。
其中,第二指标数据可以包括CPU核空闲情况、每个socket中CPU核的位置、哪些CPU核在同一个物理核等。CPU账本是指被划分为不同层级的CPU核。该划分规则可是CPU核是否位于同一个socket,还可以是CPU核是否位于同一个物理核,或者CPU核所在的物理核中是否存在被独占的CPU核,又或者各CPU核的空闲程度中的一种或者多种,此处并未加以限定。
若触发器组件102发送的检测结果为存在受到干扰的异常应用,则调谐组件104根据从CPU调度分配组件103得到的CPU账本,从CPU共享池中为异常应用分配CPU核,得到CPU分配策略,并将CPU分配策略发送给管控组件105。
管控组件105收到调谐组件104发送的CPU分配策略后,检测CPU分配策略是否正确,若正确,则遍历每个需要调整CPU资源的异常应用,找到该异常应用的Cgroup文件,通过修改Cgroup文件中异常应用所绑定的CPU核为目标值,实现异常应用与CPU分配策略所指示的CPU核的绑定,即调整了异常应用的CPU资源,进而优化了异常应用的性能,从而使得该异常应用恢复正常。
请参阅图2,本申请实施例提供了一种应用性能优化方法,该方法应用于混部集群。
在下述方法实施例中,为了便于描述,以该方法各步骤的执行主体为混部集群中的服务器为例进行说明,但是并非对此构成具体限定。
如图2所示,该方法可以包括以下步骤:
步骤200,获取指标数据。
其中,指标数据包括各应用在当前时间段内运行过程中的第一指标数据、以及与系统内核相关的第二指标数据。
其中,第一指标数据是指应用在当前时间段内运行过程中相关的指标数据,例如可以是请求的响应延迟、端到端时延、任务完成时间等。
第二指标数据是指与系统内核相关的指标数据,例如可以是应用在CPU核上的调度延迟、应用的CPI(平均指令执行所需周期数)、CPU每个核使用率、每个socket中CPU核的位置、哪些CPU核在同一个物理核等。
关于指标数据的获取,在一个可能的实现方式,是通过部署在混部集群中的监控组件对应用的运行过程和/或系统内核实时监测和采集得到的。
步骤220,基于各应用的第一指标数据,检测各应用是否受到干扰。
在一个可能的实现方式,应用是否受到干扰是通过检测应用是否存在性能波动确定的,即,若应用存在性能波动,则确定应用受到干扰。
具体地,步骤220可以包括以下步骤:获取各应用在历史时间段内运行过程中的历史指标数据,通过将各应用的第一指标数据和各应用在历史时间段内运行过程中的历史指标数据进行对比分析,分别得到各应用的性能波动数据,然后根据性能波动数据,判断各应用是否受到干扰,以此完成对各应用是否受到干扰的检测。
其中,历史指标数据是各应用在历史时间段内运行过程中相关的指标数据,例如可以是请求的响应延迟、端到端时延、任务完成时间等。
在一个可能的实现方式,性能波动数据可以是计算第一指标数据与某个历史指标数据之差获得的。
在一个可能的实现方式,性能波动数据可以是比较第一指标数据与某个历史时间段内的所有历史指标数据的均值得到的。
步骤240,若存在受到干扰的异常应用,则基于第二指标数据,从CPU共享池中为异常应用分配CPU核。
其中,应用受到干扰则视为异常应用,由于CPU共享池中的CPU核由各应用共享,为了避免CPU核抢占,在为异常应用分配CPU核之前,便需要基于第二指标数据从CPU共享池中选出特定数量和位置的CPU核,然后分配给异常应用,从而实现动态调整该异常应用的CPU资源。
例如,基于第二指标数据,为异常应用分配CPU共享池中空闲程度最高的CPU核。
步骤260,根据为异常应用分配的CPU核,对异常应用的控制群组Cgroup文件进行更新。
控制群组Cgroup(control groups)是Linux内核的一个功能,用来限制、控制与分离一个进程组的资源(如CPU、内存、磁盘输入输出等)。更新Cgroup文件,就可以将应用绑定的CPU核进行更新。
在一示例性实施例中,步骤260之后,该方法还可以包括以下步骤:
步骤261,在异常应用的Cgroup文件完成更新后,基于异常应用在当前时间段内运行过程中的第一指标数据,检测异常应用是否恢复正常。
也就是说,继续获取异常应用在完成Cgroup文件更新后的运行过程中的第一指标数据,通过将异常应用的第一指标数据和异常应用在历史时间段内运行过程中的历史指标数据进行对比分析,得到该异常应用在完成Cgroup文件更新后的性能波动数据,然后根据该性能波动数据所指示的该异常应用在完成Cgroup文件更新后的性能波动,判断该异常应用在完成Cgroup文件更新后是否恢复正常。
若该异常应用在完成Cgroup文件更新后恢复正常,则执行步骤262;反之,若该异常应用在完成Cgroup文件更新后仍处于异常,则返回执行步骤240,继续为该异常应用调整CPU资源,直至该异常应用恢复正常。
步骤262,若检测到异常应用恢复正常,则将异常应用分配到的CPU核恢复至CPU共享池。
通过再次修改异常应用的Cgroup文件,设置与异常应用绑定的CPU核的数量和位置,便能够将该异常应用异常时所分配到的CPU核恢复至CPU共享池。
在上述过程中,通过各应用的指标数据对应用干扰进行实时监测和实时解决,以及基于系统内核相关的指标数据而实现的CPU资源动态调整,极大程度上保障了混部集群应用稳定性,提高应用性能和提高整机的利用率,解决了混部集群中因为CPU核抢占导致的应用性能受到干扰的问题。
请参阅图3,在一示例性实施例中,步骤240可以包括以下步骤:
步骤241,若异常应用支持CPU share模式,则根据系统的第二指标数据,将CPU共享池中的CPU核划分为若干个空闲层级。
其中,同一个空闲层级中的CPU核的分配优先级相同。在此说明的是,空闲层级越高,分配优先级越低,表示该空闲层级中的CPU核越难被分配。
在一个可能的实现方式,将同一个socket中的CPU核划分到同一个空闲层级。为了防止给应用分配CPU的时候出现跨socket的情况,同一个socket中的CPU核尽量划分到同一个空闲层级。此种方式下,可以有效地减少跨socket运行CPU而消耗的多余性能,进一步有利于提升应用性能。
在一个可能的实现方式,将同一个物理核中的CPU核划分到同一个空闲层级。
在一个可能的实现方式,基于系统的第二指标数据,确定CPU核的空闲程度,将空闲程度在相同设定范围内的CPU核划分为同一个空闲层级。其中,空闲程度可以根据每个CPU核使用率得到,每个CPU核使用率是从与系统内核相关的第二指标数据中获得的。举例来说,空闲程度在10%至20%之间的CPU核划分为一个空闲层级,空闲程度在20%至30%之间的CPU核划分为另一个空闲层级。
在一个可能的实现方式,若CPU核所在的物理核中存在被独占的CPU资源,则CPU核的空闲层级高于其他CPU核的空闲层级。其中,所述其他CPU核是指所在物理核中不存在被独占的CPU核。此种方式下,可以有效地避免对独占逻辑核的支持CPU set模式的应用产生干扰,从而进一步有利于提升应用性能。
步骤242,根据异常应用需要的CPU核数量以及CPU核的空闲层级,从CPU共享池中选取同一个空闲层级的CPU核,得到CPU分配策略。
其中,CPU分配策略用于指示能够分配给所述异常应用的CPU核。
继续参阅图4,在一示例性实施例中,步骤240还可以包括以下步骤:
步骤243,基于CPU分配策略指示的能够分配给异常应用的CPU核,检测所述CPU分配策略是否正确。
若检测到CPU分配策略正确,则执行步骤260。
反之,若检测到CPU分配策略不正确,例如,能够分配给异常应用的CPU核已经被支持CPU set模式的其他应用独占,则执行步骤244。
步骤244,若检测到所述CPU分配策略错误,则重新为所述异常应用分配CPU共享池中的CPU核。
通过上述实施例的配合,将CPU共享池中的CPU核划分为若干个空闲层级以方便给异常应用分配。划分的过程中把同一个socket中的CPU核划分到同一个空闲层级中,可以有效地减少跨socket运行CPU而消耗的多余性能,进一步有利于提升应用性能。检测分配策略的正确与否,以防某些CPU核在本时刻被CPUset型应用独占从而导致分配失败。
图5是一应用场景中一种应用性能优化方法的具体实现示意图。该应用场景中,初始状态下的应用分配到的CPU核为CPU共享池,混部集群中的服务器收集应用在当前时间段内运行过程中的第一指标数据,进而再判断应用的第一指标数据是否异常,若异常,则调整应用分配的CPU核;反之则继续收集应用的数据指标并且判断是否异常。
调整应用分配的CPU核之后,继续收集应用的第一指标数据并且判断是否正常,若正常则应用回到初始状态,即将应用分配到的CPU核恢复至CPU共享池;反之则继续调整应用分配的CPU核。
在本应用场景中,通过各应用的指标数据对应用受到的干扰进行实时监测和实时解决,动态地调整应用所分配的CPU核,极大程度上保障了混部集群应用稳定性,提高应用性能和提高整机的利用率,解决了混部集群中因为CPU核抢占导致应用性能受到干扰的问题。
下述为本申请装置实施例,可以用于执行本申请所涉及的应用性能优化方法。对于本申请装置实施例中未披露的细节,请参照本申请所涉及的应用性能优化方法的方法实施例。
请参阅图6,本申请实施例中提供了一种应用性能优化装置900,部署于混部集群,该装置900包括但不限于:获取模块910、干扰检测模块930、资源分配模块950、以及文件更新模块970。
其中,获取模块910,用于获取指标数据,指标数据包括各应用在当前时间段内运行过程中的第一指标数据、以及与系统内核相关的第二指标数据。
干扰检测模块930,用于基于各应用的所述第一指标数据,检测各所述应用是否受到干扰。
资源分配模块950,用于若存在受到干扰的异常应用,则基于所述第二指标数据,从CPU共享池中为所述异常应用分配CPU核。
文件更新模块970,用于根据为所述异常应用分配的所述CPU核,对所述异常应用的控制群组Cgroup文件进行更新。
需要说明的是,上述实施例所提供的应用性能优化装置在进行应用性能优化时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即应用性能优化装置的内部结构将划分为不同的功能模块,以完成以上描述的全部或者部分功能。
另外,上述实施例所提供的应用性能优化装置与应用性能优化方法的实施例属于同一构思,其中各个模块执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
请参阅图7,其示出了根据一示例性实施例示出的一种服务器的结构示意。
需要说明的是,该服务器只是一个适配于本申请的示例,不能认为是提供了对本申请的使用范围的任何限制。该服务器也不能解释为需要依赖于或者必须具有图7示出的示例性的服务器2000中的一个或者多个组件。
服务器2000的硬件结构可因配置或者性能的不同而产生较大的差异,如图7所示,服务器2000包括:电源210、接口230、至少一存储器250、以及至少一中央处理器(CPU,Central Processing Units)270。
具体地,电源210用于为服务器2000上的各硬件设备提供工作电压。
接口230包括至少一有线或无线网络接口231,用于与外部设备交互。
当然,在其余本申请适配的示例中,接口230还可以进一步包括至少一串并转换接口233、至少一输入输出接口235以及至少一USB接口237等,如图7所示,在此并非对此构成具体限定。
存储器250作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统251、应用程序253及数据255等,存储方式可以是短暂存储或者永久存储。
其中,操作系统251用于管理与控制服务器2000上的各硬件设备以及应用程序253,以实现中央处理器270对存储器250中海量数据255的运算与处理,其可以是WindowsServerTM、Mac OS XTM、UnixTM、LinuxTM、FreeBSDTM等。
应用程序253是基于操作系统251之上完成至少一项特定工作的计算机程序,其可以包括至少一模块(图7未示出),每个模块都可以分别包含有对服务器2000的计算机程序。例如,应用性能优化装置可视为部署于服务器2000的应用程序253。
数据255可以是存储于磁盘中的照片、图片等,还可以是指标数据等,存储于存储器250中。
中央处理器270可以包括一个或多个以上的处理器,并设置为通过至少一通信总线与存储器250通信,以读取存储器250中存储的计算机程序,进而实现对存储器250中海量数据255的运算与处理。例如,通过中央处理器270读取存储器250中存储的一系列计算机程序的形式来完成应用性能优化方法。
此外,通过硬件电路或者硬件电路结合软件也能同样实现本申请,因此,实现本申请并不限于任何特定硬件电路、软件以及两者的组合。
请参阅图8,本申请实施例中提供了一种电子设备4000,该电子设备4000可以包括混部集群中的服务器。
在图8中,该电子设备4000包括至少一个处理器4001、至少一条通信总线4002以及至少一个存储器4003。其中,处理器4001和存储器4003相连,如通过通信总线4002相连。
可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
通信总线4002可包括一通路,在上述组件之间传送信息。通信总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。通信总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003上存储有计算机程序,处理器4001通过通信总线4002读取存储器4003中存储的计算机程序。
该计算机程序被处理器4001执行时实现上述各实施例中的应用性能优化方法。
此外,本申请实施例中提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述各实施例中的应用性能优化方法。
本申请实施例中提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在存储介质中。计算机设备的处理器从存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行上述各实施例中的应用性能优化方法。
与相关技术相比,本发明基于各应用的指标数据对应用受到的干扰进行实时监测和实时解决,以及基于系统内核相关的指标数据而实现的CPU资源动态调整,极大程度上保障了混部集群应用的稳定性,提高应用性能和提高整机的利用率,杜绝混部服务器中由于应用对CPU核的抢占所产生的干扰,解决了混部集群中因为CPU核抢占导致应用性能受到干扰的问题。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种应用性能优化方法,其特征在于,应用于混部集群,所述方法包括:
获取指标数据,所述指标数据包括各应用在当前时间段内运行过程中的第一指标数据、以及与系统内核相关的第二指标数据;
基于各应用的所述第一指标数据,检测各所述应用是否受到干扰;
若存在受到干扰的异常应用,则基于所述第二指标数据,从CPU共享池中为所述异常应用分配CPU核;
根据为所述异常应用分配的所述CPU核,对所述异常应用的控制群组Cgroup文件进行更新。
2.如权利要求1所述的方法,其特征在于,所述根据为所述异常应用分配的所述CPU核,对所述异常应用的控制群组Cgroup文件进行更新之后,所述方法还包括:
在所述异常应用的Cgroup文件完成更新后,基于所述异常应用在当前时间段内运行过程中的第一指标数据,检测所述异常应用是否恢复正常;
若为是,则将所述异常应用分配到的CPU核恢复至CPU共享池。
3.如权利要求1所述的方法,其特征在于,所述基于各应用的所述第一指标数据,检测各所述应用是否受到干扰,包括:
获取各所述应用在历史时间段内运行过程中的历史指标数据;
根据各所述应用的第一指标数据与历史指标数据,分别计算各所述应用的性能波动数据;
若所述应用的性能波动数据指示所述应用存在性能波动,则检测到所述应用为受到干扰的异常应用。
4.如权利要求1所述的方法,其特征在于,所述基于所述第二指标数据,从CPU共享池中为所述异常应用分配CPU核,包括:
若所述异常应用支持CPU share模式,则根据系统的第二指标数据,将CPU共享池中的CPU核划分为若干个空闲层级;同一个空闲层级中的CPU核的分配优先级相同;
根据所述异常应用需要的CPU核数量以及CPU核的空闲层级,从所述CPU共享池中选取CPU核,得到CPU分配策略;所述CPU分配策略用于指示能够分配给所述异常应用的CPU核。
5.如权利要求4所述的方法,其特征在于,所述基于所述第二指标数据,从CPU共享池中为所述异常应用分配CPU核,还包括:
基于所述CPU分配策略指示的能够分配给所述异常应用的CPU核,检测所述CPU分配策略是否正确;
若能够分配给所述异常应用的CPU核已经被支持CPU set模式的其他应用独占,则检测到所述CPU分配策略错误,重新为所述异常应用分配CPU共享池中的CPU核。
6.如权利要求4所述的方法,其特征在于,所述根据系统的第二指标数据,将CPU共享池中CPU核划分为若干个空闲层级,包括:
将同一个socket中的CPU核划分到同一个空闲层级;或
将同一个物理核中的CPU核划分到同一个空闲层级;或
基于系统的第二指标数据,确定CPU核的空闲程度,将所确定空闲程度在相同设定范围内的CPU核划分为同一个空闲层级;或
若CPU核所在的物理核中存在被独占的CPU核,则所述CPU核的空闲层级高于其他CPU核的空闲层级;所述其他CPU核是指所在物理核中不存在被独占的CPU核。
7.如权利要求1至6任一项所述的方法,其特征在于,所述根据为所述异常应用分配的CPU核,对所述异常应用的Cgroup文件进行更新,包括:
确定与所述异常应用对应的Cgroup位置,并根据所确定的Cgroup位置,查找到所述异常应用的Cgroup文件;
在所述异常应用的Cgroup文件中,将为所述异常应用分配的CPU核与所述异常应用绑定。
8.一种应用性能优化装置,其特征在于,部署于混部集群,所述装置包括:
获取模块,用于获取指标数据,所述指标数据包括各应用在当前时间段内运行过程中的第一指标数据、以及与系统内核相关的第二指标数据;
干扰检测模块,用于基于各应用的所述第一指标数据,检测各所述应用是否受到干扰;
资源分配模块,用于若存在受到干扰的异常应用,则基于所述第二指标数据,从CPU共享池中为所述异常应用分配CPU核;
文件更新模块,用于根据为所述异常应用分配的所述CPU核,对所述异常应用的控制群组Cgroup文件进行更新。
9.一种电子设备,其特征在于,包括:至少一个处理器、至少一个存储器、以及至少一条通信总线,其中,
所述存储器上存储有计算机程序,所述处理器通过所述通信总线读取所述存储器中的所述计算机程序;
所述计算机程序被所述处理器执行时实现权利要求1至7中任一项所述的应用性能优化方法。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的应用性能优化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211548824.3A CN116149846A (zh) | 2022-12-05 | 2022-12-05 | 一种应用性能优化方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211548824.3A CN116149846A (zh) | 2022-12-05 | 2022-12-05 | 一种应用性能优化方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116149846A true CN116149846A (zh) | 2023-05-23 |
Family
ID=86339795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211548824.3A Pending CN116149846A (zh) | 2022-12-05 | 2022-12-05 | 一种应用性能优化方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116149846A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450485A (zh) * | 2023-06-09 | 2023-07-18 | 杭州谐云科技有限公司 | 一种应用性能干扰的检测方法和系统 |
CN117149441A (zh) * | 2023-10-27 | 2023-12-01 | 南京齐芯半导体有限公司 | 一种应用于IoT的任务调度优化方法 |
CN117170995A (zh) * | 2023-11-02 | 2023-12-05 | 中国科学院深圳先进技术研究院 | 基于性能指标的干扰异常检测方法、装置、设备及介质 |
CN117170995B (zh) * | 2023-11-02 | 2024-05-17 | 中国科学院深圳先进技术研究院 | 基于性能指标的干扰异常检测方法、装置、设备及介质 |
-
2022
- 2022-12-05 CN CN202211548824.3A patent/CN116149846A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450485A (zh) * | 2023-06-09 | 2023-07-18 | 杭州谐云科技有限公司 | 一种应用性能干扰的检测方法和系统 |
CN116450485B (zh) * | 2023-06-09 | 2023-11-10 | 杭州谐云科技有限公司 | 一种应用性能干扰的检测方法和系统 |
CN117149441A (zh) * | 2023-10-27 | 2023-12-01 | 南京齐芯半导体有限公司 | 一种应用于IoT的任务调度优化方法 |
CN117149441B (zh) * | 2023-10-27 | 2024-01-05 | 南京齐芯半导体有限公司 | 一种应用于IoT的任务调度优化方法 |
CN117170995A (zh) * | 2023-11-02 | 2023-12-05 | 中国科学院深圳先进技术研究院 | 基于性能指标的干扰异常检测方法、装置、设备及介质 |
CN117170995B (zh) * | 2023-11-02 | 2024-05-17 | 中国科学院深圳先进技术研究院 | 基于性能指标的干扰异常检测方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106776005B (zh) | 一种面向容器化应用的资源管理系统及方法 | |
CN116149846A (zh) | 一种应用性能优化方法、装置、电子设备及存储介质 | |
US8082400B1 (en) | Partitioning a memory pool among plural computing nodes | |
US7945913B2 (en) | Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system | |
US8104033B2 (en) | Managing virtual machines based on business priorty | |
US8782657B2 (en) | Dynamic creation and destruction of IO resources based on actual load and resource availability | |
CN104468803A (zh) | 一种虚拟数据中心资源映射方法和设备 | |
WO2015001850A1 (ja) | タスク割り当て判定装置、制御方法、及びプログラム | |
CN111104227B (zh) | 一种K8s平台的资源控制方法、装置及相关组件 | |
CN111737003A (zh) | Pod均衡调度方法、装置、主节点及存储介质 | |
CN109873714B (zh) | 云计算节点配置更新方法及终端设备 | |
WO2021136335A1 (zh) | 一种控制边缘节点的方法、节点及边缘计算系统 | |
CN110597659A (zh) | 备份处理方法及服务器 | |
CN104243531A (zh) | 一种数据处理的方法、装置及系统 | |
CN114625533A (zh) | 分布式任务调度方法、装置、电子设备及存储介质 | |
CN114185675A (zh) | 资源管理方法、装置、电子设备及存储介质 | |
CN107203256B (zh) | 一种网络功能虚拟化场景下的节能分配方法与装置 | |
US9317306B2 (en) | Computer device and memory management method thereof | |
CN111400241B (zh) | 数据重构方法和装置 | |
EP3761175B1 (en) | Method and apparatus for managing application program | |
CN103188159A (zh) | 硬件效能的管理方法及云端运算系统 | |
CN114281516A (zh) | 一种基于numa属性的资源分配方法及装置 | |
CN104239159A (zh) | 虚拟机维护系统及方法 | |
CN111352710A (zh) | 进程管理方法及装置、计算设备、存储介质 | |
CN112019368B (zh) | 一种vnf迁移方法、装置及存储介质 |
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 |