一种CPU带宽管理方法、装置、实现设备及存储介质与流程

文档序号:24784721发布日期:2021-04-23 09:47阅读:47来源:国知局
一种CPU带宽管理方法、装置、实现设备及存储介质与流程
一种cpu带宽管理方法、装置、实现设备及存储介质
技术领域
1.本发明涉及计算机资源管理领域,尤其是cpu带宽管理。


背景技术:

2.在很多情况下,对于某些需要一直占用cpu资源并且优先级又高的线程,往往采用绑定cpu核并给该cpu核设置排他隔离模式,虽然当今服务器cpu可达几十个cpu核,但是如果存在多个虚拟机的话,每个虚拟机分配到的cpu核资源就不是那么可观了。
3.目前,为了防止cpu占用率高的高优先级线程饿死其他线程,往往采用cpu核绑定特定线程的方式,这样也能保证其他线程不会漂移到这个核上。不过此种处理方式存在如下缺陷:
4.1、绑定方式等于给特定线程一个cpu核,让整个系统可分配的cpu核少了一个;
5.2、如果此种特定线程数量较多,比如几十个线程都需要,超过了现有cpu核数的最大值,那么此方法还是会导致某些线程无cpu核资源可使用。
6.当然也有给线程设置cpu带宽的方式,但如果只是单纯的限制cpu带宽,则无法充分的调动cpu带宽的能力。


技术实现要素:

7.本发明提出了一种cpu带宽管理的方法、装置、实现设备及计算机存储介质,解决了cpu带宽分配中会出现的cpu核数不够、cpu带宽无法充分得到利用的问题。
8.本发明实施例提供了一种cpu带宽管理的方法,包括:确定第一线程,控制组cgroup为所述第一线程分配第一预设带宽占比;检测所述第一线程所在的cpu核中除第一线程以外的线程带宽占比与所述第一预设带宽占比之和;当所述和超过预警值时,所述cgroup为所述第一线程重新分配第二预设带宽占比;所述第二预设带宽占比小于所述第一预设带宽占比。
9.进一步地,检测所述第一线程所在的cpu核中除第一线程以外的线程带宽占比与所述第一预设带宽占比之和:所述检测定时进行。
10.进一步地,在检测所述第一线程所在的cpu核中除第一线程以外的线程带宽占比与所述第一预设带宽占比之和后,还包括:当所述和小于所述预警值时,所述cgroup为所述第一线程重新分配第三预设带宽占比;所述第三预设带宽占比大于所述第一预设带宽占比。
11.进一步地,在控制组cgroup为所述第一线程分配第一预设带宽占比前,包括:通过脚本将所述第一线程加入所述cgroup中,或,通过封装函数编写成的可执行程序将所述第一线程加入所述cgroup中。
12.进一步地,确定第一线程,包括:通过线程名称或线程id确定所述第一线程。
13.进一步地,包括:所述第一预设带宽占比为80%。
14.进一步地,包括:所述预警值为95%。
15.本发明实施例还提供了一种cpu带宽管理的装置,包括:分配模块,用于确定第一线程,控制组cgroup为所述第一线程分配第一预设带宽占比;检测模块,用于检测所述第一线程所在的cpu核中除第一线程以外的线程带宽占比与所述第一预设带宽占比之和;控制模块,用于当所述和超过预警值时,所述cgroup为所述第一线程重新分配第二预设带宽占比;所述第二预设带宽占比小于所述第一预设带宽占比。
16.本发明实施例还提供了一种cpu带宽管理方法的实现设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现所述cpu带宽管理方法的实现方法。
17.本发明实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行所述cpu带宽管理的实现方法。
18.本发明通过cgroup来管理线程的带宽占用,根据实时的cpu带宽占用情况,调整目标线程的可用带宽,最大程度上的利用了cpu带宽,同时也不会带来可用cpu核较少、某些线程无带宽可用的问题。
附图说明
19.此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
20.图1是根据本发明实施例的cpu带宽管理方法的流程图;
21.图2是根据本发明实施例的cpu带宽管理装置的示意图。
具体实施方式
22.在本实施例中提供了一种cpu带宽管理方法,图1是根据本发明实施例的cpu带宽管理方法的示意图,如图1所示,该流程包括如下步骤:
23.步骤s101,确定第一线程,控制组cgroup为所述第一线程分配第一预设带宽占比;
24.在步骤s101中,可以直接在linux环境下起一个脚本,传入一个指定的线程,其中,该指定的线程一般是一个cpu带宽占用高的线程,当然该指定的线程也可以人为指定。所述脚本为指定的线程创建一个新的控制组cgroup,并且把该指定的线程加入到新建的控制组cgroup里。cgroup为所述指定线程分配一定的预设带宽,其中,这里的预设带宽是指定线程在某个cpu核中所占的带宽,一般情况下,为了尽可能提高cpu带宽利用率,这里的预设带宽可以设的尽可能高,其中预设带宽优选值为80%。
25.指定线程可以通过线程的名称或者线程的id来确定。
26.步骤s102,检测所述第一线程所在的cpu核中除第一线程以外的线程带宽占比与所述第一预设带宽占比之和;
27.在步骤s102中,所述脚本监控指定线程所在cpu核的带宽占用情况,其中,带宽占用情况指指定线程所占用的带宽加上除指定线程以外的线程占用的带宽。所述的监控可以根据需要定时进行,如果需要尽可能的提高cpu带宽利用率,可以考虑将定时设的尽可能短。
28.步骤s103,当所述和超过预警值时,所述cgroup为所述第一线程重新分配第二预设带宽占比,其中,所述第二预设带宽占比小于所述第一预设带宽占比。
29.在步骤s103中,当指定线程的预设带宽加上除指定线程外的线程所占用的带宽超过预警值时,调整指定线程的预设带宽。所述预警值是指,当带宽占用超过该值时,该cpu核的带宽不足以再供其他线程使用,可能会导致其他任务无法调度,其中,预警值的优选值为95%。调整后的预设带宽小于第一预设带宽。
30.当指定线程的预设带宽加上除指定线程外的线程所占用的带宽小于预警值时,调整指定线程的预设带宽大于第一预设带宽。
31.本发明的实施例通过实时监控cpu带宽占用情况,并对线程所占用带宽进行实时调整,达到了充分利用cpu带宽且不会带来cpu可用核减少、某些线程无带宽可用的问题。
32.在本发明实施例中还提供了一种cpu带宽的管理装置,图2是根据本发明实施例的cpu带宽管理装置的示意图,包括如下装置:
33.分配模块,用于确定第一线程,控制组cgroup为所述第一线程分配第一预设带宽占比;检测模块,用于检测所述第一线程所在的cpu核中除第一线程以外的线程带宽占比与所述第一预设带宽占比之和;控制模块,用于当所述和超过预警值时,所述cgroup为所述第一线程重新分配第二预设带宽占比,其中,所述第二预设带宽占比小于所述第一预设带宽占比。
34.在本发明实施例中还提供了一种cpu带宽管理方法的实现设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如所述cpu带宽管理方法的实现方法。
35.在本发明实施例中还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行所述cpu带宽管理的实现方法。
36.在本发明可选实施例中提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行链路质量检测的实现方法。
37.在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
38.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息
递送介质。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1