一种分配LLC资源的方法及装置与流程

文档序号:14897430发布日期:2018-07-08 08:59阅读:291来源:国知局

本申请涉及计算机领域,尤其涉及一种分配最后一级高速缓存(英文全称:lastlevelcache,llc)资源的方法及装置。



背景技术:

在计算机系统中,为了提升程序运行性能,处理器通过高速缓存(cache)来提升中央处理器(英文全称:centralprocessingunit,cpu)访问内存的效率。图1示意了包含多个物理内核的cpu中部署cache的架构,该架构中,第一级cache和第二级cache各物理核相互独立,同一cpu上所有物理核共享llc资源。

由于同一cpu上所有物理核共享llc资源,运行在物理核上的应用程序通过竞争获取llc资源实现业务性能。当llc资源不足的时候,未竞争到llc资源的应用程序需要访问内存,导致应用程序的性能下降。当某些性能无需最优的应用程序,由于其业务复杂多变占用了大量llc资源,导致性能优先的程序占用的llc资源非常少,降低了计算机系统的总体性能。

当前,为了保证计算机系统的总体性能,由系统管理员人工向计算机上运行的应用程序分配llc资源。系统管理员先将计算机上运行的应用程序分组,再手动向每个应用程序组配置llc资源,各应用程序组间不会相互竞争llc资源。分配llc资源后,系统管理员观察计算机的总体性能,若没有达到最优,再不断尝试调整分配给各组的llc资源大小,通过多次调整直至管理员认为性能达到最优。

从上述分配llc资源的过程可知,计算机系统运行过程中,要求管理员长期监控,并人工手动调整llc资源分配以保证系统性能,导致分配llc资源耗时长、效率低且人工评估准确性不高。并且,该过程对系统管理员的技术能力要求很高,也将造成系统维护成本高。



技术实现要素:

本申请实施例提供一种分配llc资源的方法及装置,实现高效快速的自动分配llc资源,节约维护成本。

为达到上述目的,本申请采用如下技术方案:

第一方面,本申请提供一种分配llc资源的方法,该方法应用于分配llc资源的装置。该方法具体可以包括:获取分配llc资源的装置所在的主机中n个业务应用的llc丢失比,llc丢失比为业务应用访问主机中的llc资源未命中而访问内存的比例;将n个业务应用分为m个应用组;根据每个应用组中业务应用的llc丢失比总和占n个业务应用llc丢失比总和的比重,按比例向m个应用组分配主机中的llc资源,一个应用组的llc资源由其包括的所有业务应用共享。其中,n大于或等于2;m小于或等于n,且m小于或等于该主机的处理器支持的最大组数x,m大于或等于2,x大于或等于2。

通过本申请提供的分配llc资源的方法,由分配llc资源的装置根据应用组的llc丢失比总和在所有业务应用llc丢失比总和中的比重,按比例向每个业务组分配主机中的llc资源。由于llc丢失比总和高的应用组,其需要高比重的llc资源提升其访问内存的效率,而llc丢失比总和低的应用组不一定需要很大比例的llc资源,因此根据llc丢失比的比重分配的llc资源,适合各业务应用的业务需求,分配过程通过参考可量化的llc丢失比,准确度高。并且该过程由分配llc资源的装置自动进行,无需人工干预,不要求主机管理员的技术能力,降低了维护成本。

其中,主机中的业务应用,可以为软件类的应用程序,也可以为宿主机中的虚拟设备或者虚拟交换设备等。本申请对于应用的类型不进行具体限定。llc丢失比是指业务应用访问llc资源时,每秒钟丢失的次数。

具体的,一个应用组中可以包括至少一个业务应用,共享为其分配的llc资源。若应用组中只包括一个业务应用,该唯一的业务应用独占该业务组的llc资源。若应用组中包括两个以上的业务应用,各业务应用之间竞争该业务组的llc资源。

结合第一方面,在一种可能的实现方式中,根据每个应用组中业务应用的llc丢失比总和占n个业务应用llc丢失比总和的比重,按比例向m个应用组分配主机中的llc资源,相当于将主机中的llc资源按照上述比重分配,使得各业务组的llc资源的比值,与其llc丢失比总和的比值相同。以第一应用组为例,第一应用组为m个应用组中的任一个,向第一应用组分组的llc资源的大小为m1为第一应用组中所有业务应用的llc丢失比总和,mi为n个业务应用中第i个业务应用的llc丢失比,l为主机中llc资源的总大小。

结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,在按比例向m个应用组分配主机中的llc资源之后,本申请提供的分配llc的方法还可以包括:重新获取m个应用组的llc丢失比总和;根据重新获取的m个应用组的llc丢失比总和,判断m个应用组中是否存在微调应用组;若m个应用组中不存在微调应用组,结束微调;若m个应用组中存在j个微调应用组,将每个微调应用组分配的llc资源分别增加预设空间,将m个应用组中微调应用组之外的j个应用组分配的llc资源分别减少预设空间,之后再执行重新获取m个应用组的llc丢失比总和,直至结束微调。其中,j大于或等于1。微调应用组为重新获取的llc丢失比总和相比前一次获取的llc丢失比总和变大的应用组。通过监控应用组llc丢失比的变化,将llc丢失比恶化变大的应用组,通过微调分配更多的llc资源提高业务应用的性性能,并相应减少分配llc资源过多的应用组的llc资源,使得主机整体性能达到最优。

结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,在按比例向m个应用组分配主机中的llc资源之后,或者,在一次结束微调之后,本申请提供的分配llc的方法还可以包括:重新获取m个应用组的llc丢失比总和;根据重新获取m个应用组的llc丢失比总和,判断m个应用组中是否存在微调应用组;若m个应用组中不存在微调应用组,结束微调;若m个应用组中存在j个微调应用组,将每个微调应用组分配的llc资源分别增加预设空间,将m个应用组中微调应用组之外的应用组分配的llc资源减少,之后再执行重新获取m个应用组的llc丢失比总和,直至结束微调。其中,j大于或等于1。在该可能的实现方式中,微调应用组为重新获取的llc丢失比总和相比前一次获取的llc丢失比总和变大、且持续时长大于或等于预设时长的应用组。通过监控应用组llc丢失比的变化,将llc丢失比恶化变大的应用组,通过微调分配更多的llc资源提高业务应用的性性能,并相应减少分配llc资源过多的应用组的llc资源,使得主机整体性能达到最优。

可选的,将m个应用组中微调应用组之外的应用组分配的llc资源减少时,可以从m个应用组中微调应用组之外的j个应用组的llc资源中减少,也可以从m个应用组中微调应用组之外的其他数量个应用组的llc资源中减少,只要从m个应用组中微调应用组之外的应用组的llc资源中共减少j*l空间的llc资源即可,l为预设空间的大小。

结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,根据n与主机的处理器所支持的最大组数x的大小关系,将n个业务应用分为m个应用组的实现过程并不相同。若n大于x,提供一种将n个业务应用分为m个应用组,具体可以实现为:按照llc丢失比从高到低的顺序,将前x-1个业务应用各自分为x-1个应用组,将其余的n-x+1个业务应用作为一个应用组。此时,m等于x。通过将llc丢失比高的业务应用单独分组,避免其他业务应用与其竞争共享llc资源,提高了业务应用的性能。

结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,若n大于x,提供另一种将n个业务应用分为m个应用组,具体可以实现为:按照llc丢失比从高到低的顺序,每a个业务应用分为一个组,得到m个应用组;a大于或等于x/n的取整,取整包括向上取整或者向下取整。通过将n个业务应用平均分组的,保证每个应用组内的业务应用相当,保证llc资源分配的平衡性。

结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,若n大于x,提供另一种将n个业务应用分为m个应用组,具体可以实现为:按照业务应用的业务类型,将业务类型相同的业务应用分为一个组,得到m个应用组。将业务类型相同的业务应用分到一个应用组中,保证资源竞争的平衡性。

结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,若n小于或等于x,将n个业务应用分为m个应用组具体实现为:每个业务应用作为一个应用组,得到m个应用组,此时m等于n。这样一来,为每个业务应用独立的分配专用的llc资源,避免了其他业务应用的竞争,提高了业务应用的性能。

结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,n个业务应用包括主机中正在运行的业务应用,获取主机中n个业务应用的llc丢失比,具体可以实现为:获取主机中所有业务应用的资源占用率;获取资源占用率大于或等于预设阈值的n个正在运行的业务应用的llc丢失比。其中,预设阈值是预先设定的,判定业务应用是否正在运行的资源占用率的门限值。当业务应用的资源占用率大于或等于预设阈值,判定业务应用正在运行,否则判定业务应用没有运行。通过预设门限对业务应用进行过滤,避免向没有运行的业务应用分配llc资源,提高了llc资源的利用率。

其中,业务应用是从主机中的所有应用中去除非业务应用之后,其余的应用。

结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,资源占用率可以包括:cpu占用率,或者,内存占用率。当然,其他可以用于体现应用是否在运行的指标,也可以作为资源占用率,本申请对于资源占用率的类型不进行具体限定。

结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,在按比例向m个应用组分配主机的llc资源之后,本申请实施例提供的llc资源分配方法还可以包括:监控主机上的业务应用是否发生增减,若主机中的业务应用发生增减,重新执行上述第一方面中分配主机的llc资源的方法,重新分组并向每个应用组分配llc资源。在主机上的业务应用发生增减时,重新执行第一方面的方案,重新分配llc资源,达到上述第一方面的有益效果。

第二方面,本申请实施例提供了一种分配llc资源的装置,该装置可以实现上述方法示例的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。

结合第二方面,在一种可能的实现方式中,该分配llc资源的装置的结构中包括处理器和收发器,该处理器被配置为支持该分配llc资源的装置执行上述方法中相应的功能。该收发器用于支持该分配llc资源的装置与其他网元之间的通信。该分配llc资源的装置还可以包括存储器,该存储器用于与处理器耦合,其保存该分配llc资源的装置必要的程序指令和数据。

第三方面,本发明实施例提供了一种计算机存储介质,用于储存为上述方法示例的功能所用的计算机软件指令,其包含用于执行上述方面所设计的程序。

上述第二方面至第三方面提供的方案,用于实现上述第一方面提供的方法,因此可以与第一方面达到相同的有益效果,此处不再进行赘述。

附图说明

图1为现有技术提供的一种cpu中部署cache的结构示意图;

图1a为现有技术提供的一种cmt/cat框架示意图;

图2为本申请实施例提供的一种主机内部结构示意图;

图3为本申请实施例提供的一种分配llc资源的装置的结构示意图;

图4为本申请实施例提供的一种分配llc资源的方法的流程示意图;

图5为本申请实施例提供的另一种主机内部结构示意图;

图6为本申请实施例提供的另一种分配llc资源的方法的流程示意图;

图7为本申请实施例提供的另一种分配llc资源的装置的结构示意图;

图8为本申请实施例提供的再一种分配llc资源的装置的结构示意图;

图9为本申请实施例提供的又一种分配llc资源的装置的结构示意图。

具体实施方式

当前,处理器平台已经提供了高速缓存监控功能(英文全称:cachemonitoringtechnology,cmt)、高速缓存分配功能(英文全称:cachemonitoringallocation,cat)的硬件功能,由linux内核提供cmt、cat驱动给用户态的应用使用。用户态的cmt应用及cat应用使用内核提供的接口可以监控用户态的应用的性能参数以及向用户态的应用分配llc资源。如图1a所示,示意了cmt/cat的框架。

基于此,借助当前cmt/cat的框架,本发明的基本原理是:利用cat功能,根据cmt功能检测的应用程序的性能参数,向用户态应用分配适合业务需求的主机中的llc资源。

本申请实施例提供的分配llc资源的方法,应用于如图2所示的主机20的架构中,图2中示意了与本申请实施例相关的主机20的内部结构。如图2所示,主机20中包括硬件空间、操作系统内核空间及用户空间。硬件空间包括主机20中的llc201,用户空间中包括的至少两个用户态应用202、自适应cat应用203。

其中,操作系统内核层空间包括内核由内核提供cmt、cat驱动,操作系统内核层面与图1中相同,图2中不再进行体现及赘述。自适应cat应用203中包括cat功能及cmt功能。自适应cat应用203使用内核提供的接口可以监控主机中的至少两个用户态应用202的性能参数,并使用内核提供的接口向主机中的至少两个用户态的应用202分配llc201中的资源。

其中,主机20可以为虚拟化或者非虚拟机的计算机。例如,主机20可以为运行在服务器上支撑虚拟机(英文全称:virtualmachine,vm)的运行宿主机(host)。用户态应用202可以为虚拟机上部署的各种类型的vm、虚拟交换机(英文全称:virtualswitch,vs)等,也可以为计算机中的线程类业务。本申请实施例对于用户态应用的类型不进行具体限定。

在图2所示的架构中,本发申请实施例提供的分配llc资源的方法,应用在自适应cat应用203上,用于监控的主机中至少两个用户态应用202的性能参数,并向该至少两个用户态的应用202分配llc201中的资源。

图3示出的是与本发明各实施例相关的一种分配llc资源的装置30的结构示意图。分配llc资源的装置30可以为图2所示的架构中自适应cat应用203的部分或全部。

如图3所示,分配llc资源的装置30可以包括:处理器301、存储器302、通信总线303及通信接口304。

其中,存储器302,用于存储程序代码,并将该程序代码传输给该处理器301,以便处理器301执行程序代码实现分配llc资源的装置30的各种功能。存储器302可以是易失性存储器(volatilememory),例如随机存取存储器(英文全称:random-accessmemory,ram);或者非易失性存储器(英文全称:non-volatilememory),例如只读存储器(英文全称:read-onlymemory,rom),快闪存储器(英文全称:flashmemory),硬盘(英文全称:harddiskdrive,hdd)或固态硬盘(英文全称:solid-statedrive,ssd);或者上述种类的存储器的组合。

处理器301是分配llc资源的装置30的控制中心,可以是一个中央处理器(英文全称:centralprocessingunit,cpu),也可以是特定集成电路(英文全称:applicationspecificintegratedcircuit,asic),或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(英文全称:digitalsingnalprocessor,dsp),或,一个或者多个现场可编程门阵列(英文全称:fieldprogrammablegatearray,fpga)。处理器301可以通过运行或执行存储在存储器302内的程序代码,以及调用存储在存储器302内的数据,实现分配llc资源的装置30的各种功能。

通信总线303可以是工业标准体系结构(英文全称:industrystandardarchitecture,isa)总线、外部设备互连(英文全称:peripheralcomponent,pci)总线或扩展工业标准体系结构(英文全称:extendedindustrystandardarchitecture,eisa)总线等。该总线303可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信端口304是分配llc资源的装置30与其他功能单元进行通信的端口。通信端口304可以包括但不限于系统接口等。

下面结合附图,对本发明的实施例进行具体阐述。

一方面,本申请实施例提供一种分配llc资源的方法,该方法应用于分配llc资源的装置,该装置部署在如图2所示的主机架构中的自适应cat应用上,分配llc资源的装置可以为自适应cat应用的部分或全部。下述实施例中分配llc资源的装置所执行的操作,也可以为自适应cat应用执行的操作,本申请实施例对此不进行具体限定。

如图4所示,该方法可以包括:

s401、分配llc资源的装置获取该装置所在的主机中n个业务应用的llc丢失比。

其中,n大于或等于2。

具体的,llc丢失比为业务应用每秒钟访问主机中的llc资源未命中而访问内存的次数。示例性的,自适应cat应用中的cmt通过监控主机中的各个应用,记录了主机中所有应用的性能参数,该性能参数中包括llc丢失比。本申请实施例对于cmt获取llc丢失比的过程不进行赘述。分配llc资源的装置通过与自适应cat引用中部署的cmt模块的交互,获取主机中n个业务应用的llc丢失比。

需要说明的是,对于部署在自适应cat应用中的分配llc资源的装置,与部署在自适应cat应用中的cmt模块的交互方式,以及交互内容,本申请实施例对此均不进行具体限定。例如,两者之间可以采用请求上报的方式,也可以采用主动上报的方法或者其他。两者之间交互的内容,可以包括应用的所有性能参数,也可以仅包括llc丢失比,或者其他。两者之间可以采用通用接口进行交互,也可以采用专用接口进行交互。

具体的,主机中的应用包括业务应用及非业务应用,由于非业务应用的性能无需llc资源保证,因此,本申请实施例在分配llc资源时,处理对象仅是业务应用。分配llc资源的装置在执行s401时,先将非业务应用滤除,获取主机中n个业务应用的llc丢失率。

可选的,n个业务应用可以为该主机中的全部业务应用,或者,n个业务应用可以为该主机中正在运行的业务应用。当对n个业务应用的定义不同时,s401的具体实现方式并不相同,可以包括但不限于下述两种:

第一种实现方式、当n个业务应用为主机的全部业务应用时,s401具体可以实现为:分配llc资源的装置获取主机中滤除非业务应用之后的所有业务应用的llc丢失比,即完成s401的过程。

第二种实现方式、当n个业务应用为主机中正在运行的业务应用时,s401具体可以实现为下述步骤1和步骤2。

步骤1、分配llc资源的装置获取主机中所有业务应用的资源占用率。

可选的,资源占用率可以包括cpu占用率或者内存占用率等。

需要说明的是,资源占用率用于评估应用是否正在运行,凡是可以用来评估应用是否在运行的参数,均可以作为资源占用率,本申请对于资源占用率的类型不进行具体限定。

可选的,在步骤1中,分配llc资源的装置可以先获取主机中所有应用的资源占用率执行步骤2。

可选的,在步骤1中,分配llc资源的装置可以先获取主机中所有业务应用的标识,再从其中滤除非业务应用得到所有业务应用,再获取所有业务应用的资源占用率,接下来执行步骤2。

对于执行s401的具体过程,本申请实施例不进行具体限定。可以通过上述两种方式或者其他方式实现。

进一步的,分配llc资源的装置可以通过os的系统接口获取应用的资源占用率。

步骤2、分配llc资源的装置获取资源占用率大于或等于预设阈值的n个正在运行的业务应用的llc丢失比。

具体的,分配llc资源的装置通过与cmt应用的交互,或者应用的llc丢失比。

进一步的,通过配置预设阈值,将预设阈值作为判定业务应用是否运行的资源占用率门限。对于预设阈值的具体取值,可以根据实际需求设定,本申请实施例对出预设阈值的取值进行限定。可选的,预设阈值可以配置为100%。

示例性的,如图5所示,主机中部署了的业务应用包括:vs、vm1、vm2、业务应用程序(英文全称:application,app)1、业务app2、业务app3以及系统配置应用。分配llc资源的装置获取各个应用的cpu占用率分别为vs(200%)、vm1(1200%)、vm2(1000%)、业务app1(105%)、业务app2(100%)、业务app3(80%)、系统配置应用(100%)。由于系统配置应用为非业务应用,进行滤除。假设预设阈值配置为100%,则在图5所示的主机架构中,通过步骤1和步骤2得到的n=5个正在运行的业务应用为vs、vm1、vm2、业务app1、业务app2。

s402、分配llc资源的装置将n个业务应用分为m个应用组。

其中,m小于或等于n,且m小于或等于主机的处理器支持的最大组数x。m大于或等于2,x大于或等于2。

需要说明的是,主机的处理器支持的最大组数取决于处理器的性能,是处理器所支持的并行处理能力。

可选的,若处理器的并行处理能力强,n小于主机的处理器支持的最大组数x,在s402中,可以将n个业务应用中的每个业务应用作为一个独立的应用组,得到m个应用组,m则等于n。

可选的,当主机的处理器支持的最大组数x小于n时,在s402中将n个业务应用分为m个应用组的具体实现可以包括但不限于下述三种实现方式:

实现方式一、

按照llc丢失比从高到低的顺序,将前x-1个业务应用各自分为x-1个应用组,将其余的n-x+1个业务应用作为一个应用组,m等于x。

示例性的,以s401中的示例为基础,假设分配llc资源的装置在s401中获取到vs、vm1、vm2、业务app1、业务app2这5个业务应用的llc丢失比分别为30百万次每秒(英文全称:milliontimespersecond,m/s)、20m/s、10m/s、2m/s、3m/s,那么根据上述实现方式一,假设主机的处理器支持的最大组数x为4,将这5个业务应用分组4个应用组,分别为包括vs的应用组1、包括vm1的应用组2、包括vm2的应用组3、包括业务app1和业务app2的应用组4。

实现方式二、

按照llc丢失比从高到低的顺序,每a个业务应用分为一个组,得到m个应用组。其中,a大于或等于x/n的取整,该取整包括向上取整或者向下取整。

进一步可选的,a还可以为预设的值。当a为预设的值,在分组的过程中,最后不足a个的业务应用分为一个组。

实现方式三、将相同的业务类型的业务应用分为一个应用组。

当采用实现方式三进行分组时,分配llc资源的装置中预设了每个业务应用的业务类型。

需要说明的是,对于执行s402的具体过程,并不限于上述列举的集中方式。上述列举仅仅是通过示例的方式,对于s402的执行进行说明。

s403、分配llc资源的装置根据每个应用组中业务应用的llc丢失比总和占n个业务应用llc丢失比总和的比重,按比例向m个应用组分配主机中的llc资源。

其中,一个应用组的llc资源由其包括的所有业务应用共享。一个应用组中业务应用的llc丢失比总和,是指将该应用组中所有业务应用的丢失比相加。

示例性的,以s402中的示例为基础,由于vs、vm1、vm2、业务app1、业务app2这5个业务应用的llc丢失比分别为30m/s、20m/s、10m/s、2m/s、3m/s,分为4个应用组分别为包括vs的应用组1、包括vm1的应用组2、包括vm2的应用组3、包括业务app1和业务app2的应用组4;那么应用组1的llc丢失比总和为30m/s、应用组1的llc丢失比总和为20m/s、应用组3的llc丢失比总和为10m/s、应用组4的llc丢失比总和为5m/s。

具体的,根据每个应用组中业务应用的llc丢失比总和占n个业务应用llc丢失比总和的比重,按比例向m个应用组分配主机中的llc资源,相当于将主机中的llc资源按照上述比重分配,使得各业务组的llc资源的比值,与其llc丢失比总和的比值相同。

以第一应用组为例,第一应用组为m个应用组中的任一个,向第一应用组分组的llc资源的大小为m1为第一应用组中所有业务应用的llc丢失比总和,mi为n个业务应用中第i个业务应用的llc丢失比,l为主机中llc资源的总大小。

需要说明的是,在执行s403按比例分配的过程中,如果遇到不能整除的情况,可以进行四舍五入或者取整或者其他辅助操作,本申请实施例对此不进行具体限定。

示例性的,以上述示例为基础,假设主机中llc资源的总大小为39兆字节(英文全称:megabytes,mb),由于应用组1至应用组4的llc丢失比总和分别为:30m/s、20m/s、10m/s、5m/s,其相互比值为6:4:2:1,分配llc资源的装置分别向应用组1至应用组4分配的llc资源的大小为:18mb、12mb、6mb、3mb。

需要说明的是,本申请实施例中分配llc资源的装置向每个应用组分配的llc资源,可以是主机中llc中连续的资源,也可以为不连续的资源,本申请实施例对此不进行具体限定。

通过本申请提供的分配llc资源的方法,由分配llc资源的装置根据应用组的llc丢失比总和在所有业务应用llc丢失比总和中的比重,按比例向每个业务组分配主机中的llc资源。由于llc丢失比总和高的应用组,其需要高比重的llc资源提升其访问内存的效率,而llc丢失比总和低的应用组不一定需要很大比例的llc资源,因此根据llc丢失比的比重分配的llc资源,适合各业务应用的业务需求,分配过程通过参考可量化的llc丢失比,准确度高。并且该过程由分配llc资源的装置自动进行,无需人工干预,不要求主机管理员的技术能力,降低了维护成本。

进一步的,在执行s403之后,分配llc资源的装置,可以将向应用组分配的llc资源进行标记,用于业务应用的访问。或者,将向应用组分配的llc资源的标识反馈给业务应用,便于业务应用的访问。本申请实施例对此过程不进行具体限定。

进一步的,如图6所示,在s403中按比例向m个应用组分配主机中的llc资源之后,本申请实施例提供的分配llc资源的方法还可以包括s404至s406。

s404、分配llc资源的装置重新获取m个应用组的llc丢失比总和。

其中,在s404中先获取m个应用组中每个业务应用的llc丢失比,再分别将每个应用组中业务应用的llc丢失比相加,得到应用组的llc丢失比总和。

s405、分配llc资源的装置根据重新获取的m个应用组的llc丢失比总和,判断m个应用组中是否存在微调应用组。

其中,微调应用组,即是需要对其分配的llc资源的大小进行增加微调的应用组。对于微调应用组的定义,可以包括但不限于下述两种:

定义1:微调应用组为重新获取的llc丢失比总和相比前一次获取的llc丢失比总和变大的应用组。

定义2:微调应用组为重新获取的llc丢失比总和相比前一次获取的llc丢失比总和变大、且持续时长大于或等于预设时长的应用组。

其中,预设时长的取值,可以根据实际需求确定,本申请实施例对此不进行具体限定。

具体的,前一次获取的llc丢失比总和是指s404的前一次获取。根据执行s405的场景不同,前一次获取的llc丢失比总和的定义也不同,若s405是在s403之后进行的,则前一次获取的llc丢失比总和为s401中获取的。若s405是在执行过s404至s406的微调过程后执行,则前一次获取的llc丢失比总和为前一次执行s404至s406时s404中获取的。

需要说明的是,对于微调应用组的上述两种定义,可以根据实际需求选择任一种。当然,也可以在不同场景下,使用不同的微调应用组定义。

示例性的,当在执行完s401至s403之后,对s403分配的llc资源进行微调以使得主机的性能达到最优,微调应用组可以采用上述定义1。当在s403中分配完llc资源,主机运行一段时间后,由于业务应用其业务的变化而执行s404至s406进行微调以使得主机的性能达到最优,微调应用组可以采用上述定义2。当然,在实际应用中,可以根据实际需求选择微调应用组的定义,本申请实施例对此不进行具体限定。

可选的,若s405中判断m个应用组中不存在微调应用组,则当前主机性能最优,无需进行微调,结束微调。若s405中判断m个应用组中存在j个微调应用组,则执行s406进行微调。j大于或等于1。

示例性的,假设以s403中的示例为基础,在分别向应用组1至应用组4分配的llc资源的大小为:18mb、12mb、6mb、3mb之后,s404中重新获取到vs、vm1、vm2、业务app1、业务app2这5个业务应用的llc丢失比分别为2m/s、30m/s、1m/s、2m/s、3m/s。由此可以确定,应用组2的llc丢失比增大,应用组2为微调应用组。

s406、分配llc资源的装置将每个微调应用组分配的llc资源分别增加预设空间,将m个应用组中微调应用组之外的应用组分配的llc资源分别减少。

其中,预设空间的大小是进行微调的步进值,具体的取值可以根据实际需求配置,本申请实施例对此并不进行具体限定。当预设空间配置的越小,微调的精度越高,但是微调用时越长;当预设空间配置的越大,微调的精度越低,但是微调用时越短。

可选的,将m个应用组中微调应用组之外的应用组分配的llc资源减少时,可以从m个应用组中微调应用组之外的j个应用组的llc资源中减少,也可以从m个应用组中微调应用组之外的其他数量个应用组的llc资源中减少,只要从m个应用组中微调应用组之外的应用组的llc资源中共减少j*l空间的llc资源即可,l为预设空间的大小。

进一步的,在s406中,m个应用组中微调应用组之外减小llc资源空间的应用组,可以为m个应用组中微调应用组之外的任意应用组,也可以为m个应用组中微调应用组之外,且重新获取的llc丢失比之和相比前一次获取的llc丢失比之和减少值大于预设门限的应用组。

其中,预设门限用于判定应用程序是否分配了过多的llc资源。预设门限的取值可以根据实际需求确定,本申请实施例对此不进行具体限定。

当然,对m个应用组中微调应用组之外的j个应用组的选取方法,也可以有其他方式,本申请实施例对此不进行具体限定。

示例性的,以上述示例为基础,假设如s405中的示例,应用组2为微调应用组,预设空间为1mb,在s406中,可以将应用组2的llc资源组由之前的12mb微调为13mb,将业务app1的llc资源组由之前的6mb微调为5mb。

进一步的,在s406之后,可以再执行s404及s405,直至结束微调。

进一步的,在s403之后,或者在s404至s406的微调结束后,经过一段时间的主机运行,业务应用的业务性能会发生变化,分配llc资源的装置还可以定期的执行s404至s406的过程,通过微调校正由于业务波动导致的llc资源分配不均衡,优化主机性能。

进一步的,如图6所示,在s403中按比例向m个应用组分配主机的llc资源之后,本申请实施例提供的分配llc资源的方法还可以包括s407。

s407、分配llc资源的装置实时监测主机中业务应用是否发生增减。

需要说明的是,在s407中,分配llc资源的装置可以从操作系统的系统接口获取主机中的业务应用。

进一步的,当s407中分配llc资源的装置监测到主机中的业务应用发生增减,则重新执行本申请实施例的s401至s403描述的分配llc资源的方法,重新分配llc资源。若s407中分配llc资源的装置监测到主机中的业务应用未发生增减,则继续执行s407。

需要说明的是,s407与s404至s406的执行没有先后顺序,可以并行执行,也可以先后执行,本申请实施例对此不进行具体限定,图6中的示意也不是具体限定。

上述主要从分配llc资源的装置的工作过程的角度对本发明实施例提供的方案进行了介绍。可以理解的是,分配llc资源的装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

本发明实施例可以根据上述方法示例对分配llc资源的装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

在采用对应各个功能划分各个功能模块的情况下,图7示出了上述实施例中所涉及的分配llc资源的装置的一种可能的结构示意图,分配llc资源的装置70包括:获取单元701,分组单元702,分配单元703。获取单元701用于支持分配llc资源的装置70执行图4或图6中的过程s401,以及支持分配llc资源的装置70执行图6中的过程s404;分组单元702用于分配llc资源的装置70执行图4或图6中的过程s402;分配单元703用于分配llc资源的装置70执行图4或图6中的过程s403,以及支持分配llc资源的装置70执行图6中的过程s406。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。

进一步的,如图8所示,示出了上述实施例中所涉及的分配llc资源的装置的另一种可能的结构示意图,分配llc资源的装置70还可以包括:判断单元704及监测单元705。其中,判断单元704用于分配llc资源的装置70执行图6中的过程s405;监测单元705用于分配llc资源的装置70执行图6中的过程s407。

在采用集成的单元的情况下,图9示出了上述实施例中所涉及的分配llc资源的装置90的一种可能的结构示意图。分配llc资源的装置90可以包括:处理模块901、通信模块902。处理模块901用于对分配llc资源的装置90的动作进行控制管理,例如,处理模块901用于支持分配llc资源的装置90执行图4或图6中的过程s402和s403,处理模块901还用于通过通信模块902支持分配llc资源的装置90执行图4或图6中的过程s401或者图6中的过程s404、s407,处理模块901还用于支持分配llc资源的装置90执行图6中的过程s405、s406,和/或用于本文所描述的技术的其它过程。通信模块902用于支持分配llc资源的装置90与其他网络实体的通信。分配llc资源的装置90还可以包括存储模块903,用于存储分配llc资源的装置90的程序代码和数据。

其中,处理模块901可以为图3所示的分配llc资源的装置30的实体结构中的处理器301,可以是处理器或控制器,例如可以是cpu,通用处理器,dsp,asic,fpga或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信模块602可以是图3所示的分配llc资源的装30的实体结构中的通信接口304。可以是通信端口,或者可以是收发器、收发电路或通信接口等。存储模块903可以是图3所示的分配llc资源的装置30的实体结构中的存储器302。

当处理模块901为处理器,存储模块903为存储器,通信模块602为通信接口时,本发明实施例图9所涉及的分配llc资源的装置90可以为图3所示的分配llc资源的装置30。

结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于ram、闪存、rom、可擦除可编程只读存储器(erasableprogrammablerom,eprom)、电可擦可编程只读存储器(electricallyeprom,eeprom)、寄存器、硬盘、移动硬盘、只读光盘(cd-rom)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于asic中。另外,该asic可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1