CN113672373A - 一种线程绑定的方法、装置及电子设备 - Google Patents

一种线程绑定的方法、装置及电子设备 Download PDF

Info

Publication number
CN113672373A
CN113672373A CN202111004253.2A CN202111004253A CN113672373A CN 113672373 A CN113672373 A CN 113672373A CN 202111004253 A CN202111004253 A CN 202111004253A CN 113672373 A CN113672373 A CN 113672373A
Authority
CN
China
Prior art keywords
cpus
threads
cpu
thread
binding
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
Application number
CN202111004253.2A
Other languages
English (en)
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.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua Technology Co 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 Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202111004253.2A priority Critical patent/CN113672373A/zh
Publication of CN113672373A publication Critical patent/CN113672373A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

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中筛选并隔离出N个CPU,将所有线程按照占据CPU使用率由大到小的顺序进行排序,筛选出前N个线程,将所述前N个线程中未绑定CPU的线程与所N个CPU中的未绑定线程的CPU进行绑定。通过上述方法,筛选出相同数量的CPU以及线程,根据预设的周期,循环获取***中CPU占用率最高的前N个线程并检查所述N个CPU与所述N个线程的绑定状态,确保所述N个CPU与所述CPU占用率高的N个线程能够进行一对一的绑定,从而实现CPU与线程的双向绑定,使线程在CPU上可以高效执行,提高线程的执行效率以及CPU处理线程的效率。

Description

一种线程绑定的方法、装置及电子设备
技术领域
本申请涉及数据存储技术领域,尤其涉及一种线程绑定的方法、装置及电子设备。
背景技术
在linux操作***中,每个CPU都有自己的运行队列,处于就绪态的线程共享某个CPU,这些线程在一个CPU周期内轮番获得调度,CPU根据线程拥有的优先级决定分配给每个线程的运行时间,线程优先级越高,在一个调度周期内可占有CPU运行的时间就越多,CPU在由一个线程调度到下一个线程时,需要执行线程上下文切换,过多的线程切换将导致频繁的上下文切换,使CPU浪费在业务无关的上下文切换过程中,影响CPU效率;
目前,采用的是一种实现多队列网卡绑定CPU的方法,一个CPU可以运行多个线程,CPU运行队列中的多个线程仍然可以轮番运行,网卡收包线程频繁被其它线程打断,导致CPU对网卡收包线程的处理效率低。
另外,采用的是一种数据压缩的方法,预先将CPU核心和压缩事务线程进行绑定,没有根据***实际的业务情况动态绑定其它CPU占用率高的业务线程,当压缩事物线程工作结束之后,仍旧绑定当前CPU,所以当前CPU将被闲置,此时CPU占用率高的线程无法绑定到当前CPU上,导致CPU对线程的处理效率较低。
发明内容
本申请提供了一种线程绑定的方法、装置及电子设备,通过CPU与线程的双向绑定的方法,使CPU占用率高的线程动态绑定并独占CPU,确保当前CPU占用率高的线程都能绑定到对应的CPU上,实现线程在CPU上的高效执行,从而提高线程的执行效率以及CPU处理线程的效率。
第一方面,本申请提供了一种线程绑定的方法,所述方法包括:
按照预设规则在所有CPU中筛选并隔离出N个CPU,其中,所述CPU为多个独立的CPU或单个独立CPU内部集成多个核模拟成的多个CPU;
将所有线程按照占据CPU使用率由大到小的顺序进行排序,筛选出前N个线程;
将所述前N个线程中未绑定CPU的线程与所N个CPU中的未绑定线程的CPU进行绑定。
本申请通过筛选出相同数量的CPU以及线程,检查所述N个CPU与N个线程的绑定状态,使CPU占用率高的线程都能以一对一的方式绑定到CPU上,确保所述N个CPU与所述N个线程能够进行一对一的绑定,从而实现CPU与线程的双向绑定,使线程在CPU上可以高效执行,提高线程的执行效率以及CPU处理线程的效率。
在一种可能的设计中,按照预设规则在所有CPU中筛选并隔离出N个CPU,其中,所述CPU为多个独立的CPU或单个独立CPU内部集成多个核模拟成的多个CPU,包括:
所述预设规则为根据输入CPU的序号与预设CPU序号进行匹配,筛选出与所述预设CPU序号的一致的N个CPU;
或者在所有CPU中筛选出处于空闲状态的N个CPU;
或者根据线程对CPU占用率的排序超过预设值的数量,筛选出N个CPU;
将筛选出的N个CPU从操作***的线程调度器中移除,隔离出N个CPU。
在一种可能的设计中,将所述前N个线程中未绑定CPU的线程与所述N个CPU中的未绑定线程的CPU进行绑定,包括:
根据预设的周期,循环获取***中CPU占用率最高的前N个线程并检查所述N个CPU与所述N个线程的绑定状态;
若所述N个CPU中的CPU有绑定的线程,则按照预设规则对所述CPU进行绑定;
若所述N个CPU中的CPU无绑定的线程,则将所述前N个线程中未绑定CPU的线程与所述CPU进行绑定。
在一种可能的设计中,所述按照预设规则对所述CPU进行绑定,包括:
判定绑定的线程是否为所述前N个线程中的线程;
若是,则维持所述CPU与所述线程的绑定状态;
若否,则将所述CPU绑定的线程进行解绑。
第二方面,本申请提供了一种线程绑定的装置,所述装置包括:
筛选模块,用于按照预设规则在所有CPU中筛选并隔离出N个CPU,其中,所述CPU为多个独立的CPU或单个独立CPU内部集成多个核模拟成的多个CPU;
排序模块,用于将所有线程按照占据CPU使用率由大到小的顺序进行排序,筛选出前N个线程;
绑定模块,用于将所述前N个线程中未绑定CPU的线程与所N个CPU中的未绑定线程的CPU进行绑定。
在一种可能的设计中,所述筛选模块,具体用于所述预设规则为根据输入CPU的序号与预设CPU序号进行匹配,筛选出与所述预设CPU序号的一致的N个CPU;或者在所有CPU中筛选出处于空闲状态的N个CPU;或者根据线程对CPU占用率的排序超过预设值的数量,筛选出N个CPU;将筛选出的N个CPU从操作***的线程调度器中移除,隔离出N个CPU。
在一种可能的设计中,所述绑定模块,具体用于根据预设的周期,循环获取***中CPU占用率最高的前N个线程并检查所述N个CPU与所述N个线程的绑定状态;若所述N个CPU中的CPU有绑定的线程,则按照预设规则对所述CPU进行绑定;若所述N个CPU中的CPU无绑定的线程,则将所述前N个线程中未绑定CPU的线程与所述CPU进行绑定。
在一种可能的设计中,所述绑定模块,还用于判定绑定的线程是否为所述前N个线程中的线程;若是,则维持所述CPU与所述线程的绑定状态;若否,则将所述CPU绑定的线程进行解绑。
第三方面,本申请提供了一种电子设备,包括:
存储器,用于存放计算机程序;
处理器,用于执行所述存储器上所存放的计算机程序时,实现上述的一种线程绑定的方法步骤。
第四方面,一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的一种线程绑定的方法步骤。
上述第一方面至第四方面中的各个方面以及各个方面可能达到的技术效果请参照上述针对第一方面或第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
图1为本申请提供的一种线程绑定的方法步骤的流程图;
图2为本申请提供的一种线程绑定的装置的结构示意图;
图3为本申请提供的一种电子设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或***实施例中。需要说明的是,在本申请的描述中“多个”理解为“至少两个”。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。A与B连接,可以表示:A与B直接连接和A与B通过C连接这两种情况。另外,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
下面结合附图,对本申请实施例进行详细描述。
目前,一个CPU绑定多个线程,CPU轮番运行多个线程,线程运行频繁被线程切换打断,影响线程的执行速度,导致CPU对线程的处理效率低,或者是一个CPU绑定一个线程,当线程工作结束之后,仍旧绑定当前CPU,所以当前CPU被闲置,此时其它CPU占用率高的线程无法绑定到当前CPU上,导致CPU对线程的处理效率低,所以,线程的执行效率低以及CPU对线程的处理效率低成为要解决的问题。
为了解决上述问题,本申请实施例提供了一种线程绑定的方法,用以实现CPU与线程的双向绑定,提升线程的执行效率以及提高CPU对线程的处理效率。其中,本申请实施例所述方法和装置基于同一技术构思,由于方法及装置所解决问题的原理相似,因此装置与方法的实施例可以相互参见,重复之处不再赘述。
参照图1,本申请提供了一种线程绑定的方法,该方法可以提升线程的执行效率以及CPU对线程的处理效率,该方法的实现流程如下:
步骤S1:按照预设规则在所有CPU中筛选并隔离出N个CPU。
在执行线程绑定之前,首先需要筛选并隔离出可以用于绑定线程的CPU,在本申请实施例中可以通过如下的方式进行CPU的筛选,其中,所述CPU为多个独立的CPU或单个独立CPU内部集成多个核模拟成的多个CPU:
方式一:在该方式中按照CPU序号对CPU进行筛选,也就是根据输入CPU的序号与预设CPU的序号进行匹配,若匹配出一致的N个序号,则筛选出需要的N个CPU,其中,所述预设CPU的序号由***自动对所有CPU从0开始进行排序。
比如:预设的CPU序号为{0、1、2、3、4、5、6、7},输入的CPU序号为{2、3、5},将{2、3、5}与{0、1、2、3、4、5、6、7}进行比对,比对一致的结果为{2、3、5},筛选出序号为2、3、5对应的CPU。
通过上述方式,按照CPU的序号对CPU进行筛选,可以快速筛选出需要的CPU,可以在短时间内达到筛选出需要的CPU的目的。
方式二:在该方式中按照闲置状态的CPU的数量,确定筛选出CPU的数量N的值。
读取CPU的当前状态,确定处于闲置状态的CPU数量;
读取并记录筛选出的处于闲置状态的CPU的序号。
比如:读取当前CPU的状态,处于闲置状态的CPU有5个,则确定筛选出CPU的数量为5,读取并记录当前筛选出的CPU的序号。
通过上述方式,按照CPU的闲置状态筛选CPU,可以筛选出闲置状态的CPU,避免了CPU资源的浪费。
方式三:在该方式中根据线程对CPU占用率的排序超过预设值的数量,确定筛选出CPU的数量N的值;
统计出所有线程的CPU占用率,按照由大到小的顺序对CPU占用率进行排序,得到排序结果;
统计排序结果中超过预设值占用率的数量,将统计出的数量作为筛选出CPU的数量。
比如:CPU占用率由大到小的排序为45%、32%、23%、12%、8%、7%、6%、5%、4%、3%……,对应的线程排序为a、b、c、d、e、f、g、h、i、j……,预设值为30%,CPU占用率超过30%的线程有两个为:a、b,确定筛选出CPU的数量N的值为2。
通过上述方式,筛选出CPU占用率高的线程绑定的CPU,确定需要隔离的CPU的数量N,将序号最靠后的N个CPU筛选出来,有利于根据具体***的业务负载情况筛选隔离出更恰当数量的CPU。
由于需要经过操作***的***调用将线程绑定到隔离出的N个CPU上,隔离的N个CPU上才能够运行线程,因此通过上述三种方式筛选出N个CPU,将N个CPU的序号参数输入到操作***中,待操作***下次启动过程中,将输入序号对应的CPU从线程调度器中移除,从而达到将N个CPU隔离的目的,以便于实现CPU与线程的双向绑定。
步骤S2:将所有线程按照占据CPU使用率由大到小进行排序,筛选出前N个线程。
为了保证CPU占用率较高的线程能够被优先绑定或者优先处理,因此对所有线程的CPU占用率从大到小进行排序,筛选出前N个值对应的线程。
比如:当N为8时,***有8个CPU或者为8核CPU,根据CPU占用率的值对所有线程进行排序,所有线程当前CPU占用率的值从高到低进行排序依次为:23%、12%、9%、8.5%、8%、7%、6%、5%、4%……,对应的线程依次为:a、b、c、d、e、f、g、h、i……,筛选出当前CPU占用率在前8位的线程为:a、b、c、d、e、f、g、h。
通过上述方式,将CPU占用率高的N个线程筛选出来,有利于所述CPU占用率高的N个线程与所述N个CPU进行一对一的绑定。
步骤S3:将所述前N个线程中未绑定CPU的线程与所述N个CPU中的未绑定线程的CPU进行绑定。
以预设周期为单位,循环获取***中CPU占用率最高的前N个线程并检查所述N个CPU与所述N个线程的绑定状态。
若所述N个CPU中的CPU有绑定的线程,则当前所述CPU处于绑定状态;提取当前与所述CPU绑定的线程,在所述N个线程中读取是否有一致的线程;若无,则对当前所述CPU与所述线程进行解绑,将所述N个线程中未绑定的线程与所述CPU进行绑定;若有,则保留当前与所述CPU绑定的线程。
若所述N个CPU中的CPU无绑定的线程,则当前所述CPU处于未绑定状态;将所述N个线程中处于未绑定状态的线程绑定到所述CPU上。
比如:按照预设周期对线程的CPU占用率重新进行排序,预设周期时间为5min,确定出当前的N个线程,检查所述N个CPU中的CPU与所述N个线程的绑定状态。
如果检测为绑定状态,则对所述CPU绑定的线程进行判断是否为所述N个线程中的线程,若是,则维持所述CPU与所述线程的绑定状态;若否,则将所述CPU绑定的线程进行解绑。
在一种可能的设计中,在将所述CPU绑定的线程进行解绑之后,为了实现所述CPU与所述线程的双向绑定,需要将所述N个线程中处于未绑定状态的线程绑定到当前所述CPU上。
如果检测为未绑定状态,则将所述N个线程中处于未绑定状态的线程绑定到当前所述CPU上。
通过上述方式,定期循环检查N个CPU与N个线程的绑定状态,使CPU占用率高的线程可以绑定到CPU上并独占CPU,使线程在CPU上可以高效执行。
本申请通过上述描述的方法,定期循环检查所述N个CPU与所述N个线程的绑定状态,确认与所述N个CPU中的CPU绑定的是所述N个线程中的线程,所述CPU的数量与所述线程的数量相等确保了所述CPU与所述线程的一对一绑定,实现所述CPU与所述线程的双向绑定,使线程在CPU上可以高效执行,提升线程的执行效率以及CPU处理线程的效率。
基于同一发明构思,本申请实施例中还提供了一种线程绑定的装置,该线程绑定的装置用于实现了一种线程绑定方法的功能,参照图2,所述装置包括:
筛选模块201,用于按照预设规则在所有CPU中筛选并隔离出N个CPU;
排序模块202,用于将所有线程按照占据CPU使用率由大到小的顺序进行排序,筛选出前N个线程;
绑定模块203,用于将所述前N个线程中未绑定CPU的线程与所N个CPU中的未绑定线程的CPU进行绑定。
在一种可能的设计中,所述筛选模块201,具体用于所述预设规则为根据输入CPU的序号与预设CPU序号进行匹配,筛选出与所述预设CPU序号的一致的N个CPU;或者在所有CPU中筛选出处于空闲状态的N个CPU;或者根据线程对CPU占用率的排序超过预设值的数量,筛选出N个CPU;将筛选出的N个CPU从操作***的线程调度器中移除,隔离出N个CPU。
在一种可能的设计中,所述绑定模块203,具体用于根据预设的周期,循环获取***中CPU占用率最高的前N个线程并检查所述N个CPU与所述N个线程的绑定状态,若所述N个CPU中的CPU有绑定的线程,则按照预设规则对所述CPU进行绑定,若所述N个CPU中的CPU无绑定的线程,则将所述前N个线程中未绑定CPU的线程与所述CPU进行绑定。
在一种可能的设计中,所述绑定模块203,还用于判定绑定的线程是否为所述前N个线程中的线程,若是,则维持所述CPU与所述线程的绑定状态,若否,则将所述CPU绑定的线程进行解绑。
基于同一发明构思,本申请实施例中还提供了一种电子设备,所述电子设备可以实现前述一种线程绑定的装置的功能,参考图3,所述电子设备包括:
至少一个处理器301,以及与至少一个处理器301连接的存储器302,本申请实施例中不限定处理器301与存储器302之间的具体连接介质,图3中是以处理器301和存储器302之间通过总线300连接为例。总线300在图3中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线300可以分为地址总线、数据总线、控制总线等,为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。或者,处理器301也可以称为控制器,对于名称不做限制。
在本申请实施例中,存储器302存储有可被至少一个处理器301执行的指令,至少一个处理器301通过执行存储器302存储的指令,可以执行前文论述的一种线程绑定的方法。处理器301可以实现图2所示的装置中各个模块的功能。
其中,处理器301是该装置的控制中心,可以利用各种接口和线路连接整个该控制设备的各个部分,通过运行或执行存储在存储器302内的指令以及调用存储在存储器302内的数据,该装置的各种功能和处理数据,从而对该装置进行整体监控。
在一种可能的设计中,处理器301可包括一个或多个处理单元,处理器301可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器301中。在一些实施例中,处理器301和存储器302可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器301可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的一种线程绑定方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器302作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器302可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器302是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器302还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
通过对处理器301进行设计编程,可以将前述实施例中介绍的一种线程绑定方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行图1所示的实施例的一种线程绑定的步骤。如何对处理器301进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
基于同一发明构思,本申请实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行前文论述的一种线程绑定方法。
在一些可能的实施方式中,本申请提供一种线程绑定的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在装置上运行时,程序代码用于使该控制设备执行本说明书上述描述的根据本申请各种示例性实施方式的一种线程绑定方法中的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

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.一种线程绑定的装置,其特征在于,所述装置包括:
筛选模块,用于按照预设规则在所有CPU中筛选并隔离出N个CPU;
排序模块,用于将所有线程按照占据CPU使用率由大到小的顺序进行排序,筛选出前N个线程;
绑定模块,用于将所述前N个线程中未绑定CPU的线程与所N个CPU中的未绑定线程的CPU进行绑定。
6.如权利要求5所述的装置,其特征在于,所述筛选模块,具体用于所述预设规则为根据输入CPU的序号与预设CPU序号进行匹配,筛选出与所述预设CPU序号的一致的N个CPU,或者在所有CPU中筛选出处于空闲状态的N个CPU,或者根据线程对CPU占用率的排序超过预设值的数量,筛选出N个CPU。
7.如权利要求5所述的装置,其特征在于,所述绑定模块,具体用于根据预设的周期,循环检查所述N个CPU与所述N个线程的绑定状态,若所述N个CPU中的CPU有绑定的线程,则按照预设规则对所述CPU进行绑定,若所述N个CPU中的CPU无绑定的线程,则将所述前N个线程中未绑定CPU的线程与所述CPU进行绑定。
8.如权利要求5所述的装置,其特征在于,所述绑定模块,还用于判定绑定的线程是否为所述前N个线程中的线程,若是,则维持所述CPU与所述线程的绑定状态,若否,则将所述CPU绑定的线程进行解绑。
9.一种电子设备,其特征在于,包括:
存储器,用于存放计算机程序;
处理器,用于执行所述存储器上所存放的计算机程序时,实现权利要求1-4任一项所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一项所述的方法步骤。
CN202111004253.2A 2021-08-30 2021-08-30 一种线程绑定的方法、装置及电子设备 Pending CN113672373A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111004253.2A CN113672373A (zh) 2021-08-30 2021-08-30 一种线程绑定的方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111004253.2A CN113672373A (zh) 2021-08-30 2021-08-30 一种线程绑定的方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN113672373A true CN113672373A (zh) 2021-11-19

Family

ID=78547375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111004253.2A Pending CN113672373A (zh) 2021-08-30 2021-08-30 一种线程绑定的方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN113672373A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116755805A (zh) * 2023-08-18 2023-09-15 北京融为科技有限公司 应用于c++的资源优化方法及装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103530197A (zh) * 2013-10-29 2014-01-22 浙江宇视科技有限公司 一种检测及解决Linux***死锁的方法
CN104460934A (zh) * 2013-09-13 2015-03-25 华为终端有限公司 多cpu调度方法及装置
CN104504006A (zh) * 2014-12-11 2015-04-08 厦门市美亚柏科信息股份有限公司 对新闻客户端的数据采集及解析的方法及***
CN107479976A (zh) * 2017-08-14 2017-12-15 郑州云海信息技术有限公司 一种多程序实例同时运行下cpu资源分配方法及装置
CN108958944A (zh) * 2018-07-26 2018-12-07 郑州云海信息技术有限公司 一种多核处理***及其任务分配方法
CN110362402A (zh) * 2019-06-25 2019-10-22 苏州浪潮智能科技有限公司 一种负载均衡方法、装置、设备及可读存储介质
CN111274015A (zh) * 2016-08-31 2020-06-12 华为技术有限公司 一种配置方法、装置和数据处理服务器
CN112231102A (zh) * 2020-10-16 2021-01-15 苏州浪潮智能科技有限公司 一种提升存储***性能的方法、装置、设备、产品
CN112835720A (zh) * 2021-02-26 2021-05-25 杭州迪普科技股份有限公司 一种arp老化线程管理方法、装置及电子设备

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104460934A (zh) * 2013-09-13 2015-03-25 华为终端有限公司 多cpu调度方法及装置
CN103530197A (zh) * 2013-10-29 2014-01-22 浙江宇视科技有限公司 一种检测及解决Linux***死锁的方法
CN104504006A (zh) * 2014-12-11 2015-04-08 厦门市美亚柏科信息股份有限公司 对新闻客户端的数据采集及解析的方法及***
CN111274015A (zh) * 2016-08-31 2020-06-12 华为技术有限公司 一种配置方法、装置和数据处理服务器
CN107479976A (zh) * 2017-08-14 2017-12-15 郑州云海信息技术有限公司 一种多程序实例同时运行下cpu资源分配方法及装置
CN108958944A (zh) * 2018-07-26 2018-12-07 郑州云海信息技术有限公司 一种多核处理***及其任务分配方法
CN110362402A (zh) * 2019-06-25 2019-10-22 苏州浪潮智能科技有限公司 一种负载均衡方法、装置、设备及可读存储介质
CN112231102A (zh) * 2020-10-16 2021-01-15 苏州浪潮智能科技有限公司 一种提升存储***性能的方法、装置、设备、产品
CN112835720A (zh) * 2021-02-26 2021-05-25 杭州迪普科技股份有限公司 一种arp老化线程管理方法、装置及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116755805A (zh) * 2023-08-18 2023-09-15 北京融为科技有限公司 应用于c++的资源优化方法及装置
CN116755805B (zh) * 2023-08-18 2024-02-02 北京融为科技有限公司 应用于c++的资源优化方法及装置

Similar Documents

Publication Publication Date Title
EP2701074B1 (en) Method, device, and system for performing scheduling in multi-processor core system
CN106713396B (zh) 服务器调度方法和***
CN104035818A (zh) 多任务调度的方法及装置
CN102117197B (zh) 高性能通用信号处理器指令分配装置
CN107656813A (zh) 一种负载调度的方法、装置及终端
CN109213594A (zh) 资源抢占的方法、装置、设备和计算机存储介质
CN104793996A (zh) 一种并行计算设备的任务调度方法及任务调度装置
CN111142938A (zh) 一种异构芯片的任务处理方法、任务处理装置及电子设备
CN111639044A (zh) 一种支持中断优先级轮询仲裁派发的方法和装置
CN111651595A (zh) 一种异常日志处理方法及装置
CN113672373A (zh) 一种线程绑定的方法、装置及电子设备
CN110221914B (zh) 文件处理方法及装置
CN115242598A (zh) 一种云操作***部署方法及装置
CN101937465B (zh) 分布式文件***及其中的上层文件***的访问方法
CN111124791A (zh) 一种***测试方法及装置
CN110597627A (zh) 基于虚拟fpga的数据库运算加速装置及加速方法
CN114529413A (zh) 一种区块链交易的处理方法、区块链节点及电子设备
CN111259045B (zh) 一种数据处理方法、装置、服务器及介质
CN115904671B (zh) 一种边缘计算环境下的任务调度方法、装置、设备及介质
CN109933415A (zh) 数据的处理方法、装置、设备及介质
CN111831408A (zh) 异步任务处理方法、装置、电子设备及介质
CN101873257B (zh) 一种接收报文的方法及***
CN111625358B (zh) 一种资源分配方法、装置、电子设备及存储介质
CN110825528B (zh) 资源管理方法、装置及设备
CN114546652A (zh) 一种参数预估方法、装置及电子设备

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