一种线程绑定的方法、装置及电子设备制造方法及图纸

技术编号:30911030 阅读:32 留言:0更新日期:2021-11-22 23:58
一种线程绑定的方法、装置及电子设备,该方法包括:按照预设规则在所有CPU中筛选并隔离出N个CPU,将所有线程按照占据CPU使用率由大到小的顺序进行排序,筛选出前N个线程,将所述前N个线程中未绑定CPU的线程与所N个CPU中的未绑定线程的CPU进行绑定。通过上述方法,筛选出相同数量的CPU以及线程,根据预设的周期,循环获取系统中CPU占用率最高的前N个线程并检查所述N个CPU与所述N个线程的绑定状态,确保所述N个CPU与所述CPU占用率高的N个线程能够进行一对一的绑定,从而实现CPU与线程的双向绑定,使线程在CPU上可以高效执行,提高线程的执行效率以及CPU处理线程的效率。的执行效率以及CPU处理线程的效率。的执行效率以及CPU处理线程的效率。

【技术实现步骤摘要】
一种线程绑定的方法、装置及电子设备


[0001]本申请涉及数据存储
,尤其涉及一种线程绑定的方法、装置及电子设备。

技术介绍

[0002]在linux操作系统中,每个CPU都有自己的运行队列,处于就绪态的线程共享某个CPU,这些线程在一个CPU周期内轮番获得调度,CPU根据线程拥有的优先级决定分配给每个线程的运行时间,线程优先级越高,在一个调度周期内可占有CPU运行的时间就越多,CPU在由一个线程调度到下一个线程时,需要执行线程上下文切换,过多的线程切换将导致频繁的上下文切换,使CPU浪费在业务无关的上下文切换过程中,影响CPU效率;
[0003]目前,采用的是一种实现多队列网卡绑定CPU的方法,一个CPU可以运行多个线程,CPU运行队列中的多个线程仍然可以轮番运行,网卡收包线程频繁被其它线程打断,导致CPU对网卡收包线程的处理效率低。
[0004]另外,采用的是一种数据压缩的方法,预先将CPU核心和压缩事务线程进行绑定,没有根据系统实际的业务情况动态绑定其它CPU占用率高的业务线程,当压缩事物线程工作结束之后,仍旧绑定当前CPU,所以当前CPU将被闲置,此时CPU占用率高的线程无法绑定到当前CPU上,导致CPU对线程的处理效率较低。

技术实现思路

[0005]本申请提供了一种线程绑定的方法、装置及电子设备,通过CPU与线程的双向绑定的方法,使CPU占用率高的线程动态绑定并独占CPU,确保当前CPU占用率高的线程都能绑定到对应的CPU上,实现线程在CPU上的高效执行,从而提高线程的执行效率以及CPU处理线程的效率。
[0006]第一方面,本申请提供了一种线程绑定的方法,所述方法包括:
[0007]按照预设规则在所有CPU中筛选并隔离出N个CPU,其中,所述CPU为多个独立的CPU或单个独立CPU内部集成多个核模拟成的多个CPU;
[0008]将所有线程按照占据CPU使用率由大到小的顺序进行排序,筛选出前N个线程;
[0009]将所述前N个线程中未绑定CPU的线程与所N个CPU中的未绑定线程的CPU进行绑定。
[0010]本申请通过筛选出相同数量的CPU以及线程,检查所述N个CPU与N个线程的绑定状态,使CPU占用率高的线程都能以一对一的方式绑定到CPU上,确保所述N个CPU与所述N个线程能够进行一对一的绑定,从而实现CPU与线程的双向绑定,使线程在CPU上可以高效执行,提高线程的执行效率以及CPU处理线程的效率。
[0011]在一种可能的设计中,按照预设规则在所有CPU中筛选并隔离出N个CPU,其中,所述CPU为多个独立的CPU或单个独立CPU内部集成多个核模拟成的多个CPU,包括:
[0012]所述预设规则为根据输入CPU的序号与预设CPU序号进行匹配,筛选出与所述预设CPU序号的一致的N个CPU;
[0013]或者在所有CPU中筛选出处于空闲状态的N个CPU;
[0014]或者根据线程对CPU占用率的排序超过预设值的数量,筛选出N个CPU;
[0015]将筛选出的N个CPU从操作系统的线程调度器中移除,隔离出N个CPU。
[0016]在一种可能的设计中,将所述前N个线程中未绑定CPU的线程与所述N个CPU中的未绑定线程的CPU进行绑定,包括:
[0017]根据预设的周期,循环获取系统中CPU占用率最高的前N个线程并检查所述N个CPU与所述N个线程的绑定状态;
[0018]若所述N个CPU中的CPU有绑定的线程,则按照预设规则对所述CPU进行绑定;
[0019]若所述N个CPU中的CPU无绑定的线程,则将所述前N个线程中未绑定CPU的线程与所述CPU进行绑定。
[0020]在一种可能的设计中,所述按照预设规则对所述CPU进行绑定,包括:
[0021]判定绑定的线程是否为所述前N个线程中的线程;
[0022]若是,则维持所述CPU与所述线程的绑定状态;
[0023]若否,则将所述CPU绑定的线程进行解绑。
[0024]第二方面,本申请提供了一种线程绑定的装置,所述装置包括:
[0025]筛选模块,用于按照预设规则在所有CPU中筛选并隔离出N个CPU,其中,所述CPU为多个独立的CPU或单个独立CPU内部集成多个核模拟成的多个CPU;
[0026]排序模块,用于将所有线程按照占据CPU使用率由大到小的顺序进行排序,筛选出前N个线程;
[0027]绑定模块,用于将所述前N个线程中未绑定CPU的线程与所N个CPU中的未绑定线程的CPU进行绑定。
[0028]在一种可能的设计中,所述筛选模块,具体用于所述预设规则为根据输入CPU的序号与预设CPU序号进行匹配,筛选出与所述预设CPU序号的一致的N个CPU;或者在所有CPU中筛选出处于空闲状态的N个CPU;或者根据线程对CPU占用率的排序超过预设值的数量,筛选出N个CPU;将筛选出的N个CPU从操作系统的线程调度器中移除,隔离出N个CPU。
[0029]在一种可能的设计中,所述绑定模块,具体用于根据预设的周期,循环获取系统中CPU占用率最高的前N个线程并检查所述N个CPU与所述N个线程的绑定状态;若所述N个CPU中的CPU有绑定的线程,则按照预设规则对所述CPU进行绑定;若所述N个CPU中的CPU无绑定的线程,则将所述前N个线程中未绑定CPU的线程与所述CPU进行绑定。
[0030]在一种可能的设计中,所述绑定模块,还用于判定绑定的线程是否为所述前N个线程中的线程;若是,则维持所述CPU与所述线程的绑定状态;若否,则将所述CPU绑定的线程进行解绑。
[0031]第三方面,本申请提供了一种电子设备,包括:
[0032]存储器,用于存放计算机程序;
[0033]处理器,用于执行所述存储器上所存放的计算机程序时,实现上述的一种线程绑定的方法步骤。
[0034]第四方面,一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的一种线程绑定的方法步骤。
[0035]上述第一方面至第四方面中的各个方面以及各个方面可能达到的技术效果请参
照上述针对第一方面或第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
[0036]图1为本申请提供的一种线程绑定的方法步骤的流程图;
[0037]图2为本申请提供的一种线程绑定的装置的结构示意图;
[0038]图3为本申请提供的一种电子设备的结构示意图。
具体实施方式
[0039]为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。需要说明的是,在本申请的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种线程绑定的方法,其特征在于,包括:按照预设规则在所有CPU中筛选并隔离出N个CPU,其中,所述CPU为多个独立的CPU或单个独立CPU内部集成多个核模拟成的多个CPU;将所有线程按照占据CPU使用率由大到小的顺序进行排序,筛选出前N个线程;将所述前N个线程中未绑定CPU的线程与所N个CPU中的未绑定线程的CPU进行绑定。2.如权利要求1所述的方法,其特征在于,所述按照预设规则在所有CPU中筛选并隔离出N个CPU,包括:所述预设规则为根据输入CPU的序号与预设CPU序号进行匹配,筛选出与所述预设CPU序号的一致的N个CPU;或者在所有CPU中筛选出处于空闲状态的N个CPU;或者根据线程对CPU占用率的排序超过预设值的数量,筛选出N个CPU;将筛选出的N个CPU从操作系统的线程调度器中移除,隔离出N个CPU。3.如权利要求1所述的方法,其特征在于,所述将所述前N个线程中未绑定CPU的线程与所述N个CPU中的未绑定线程的CPU进行绑定,包括:根据预设的周期,循环获取系统中CPU占用率最高的前N个线程并检查所述N个CPU与所述N个线程的绑定状态;若所述N个CPU中的CPU有绑定的线程,则按照预设规则对所述CPU进行绑定;若所述N个CPU中的CPU无绑定的线程,则将所述前N个线程中未绑定CPU的线程与所述CPU进行绑定。4.如权利要求3所述的方法,其特征在于,所述按照预设规则对所述CPU进行绑定,包括:判定绑定的线程是否为所述前N个线程中的线程;若是,则维持所述CPU与所述线程的绑定状态;若否,则将所述CPU绑定的线程进行解绑。5.一种线程绑定的装置,其特征在于,所述装置包括:筛选模...

【专利技术属性】
技术研发人员:滕开恩马东星魏齐良
申请(专利权)人:浙江大华技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1