CN115756825A - 一种中断负载均衡优化方法及装置 - Google Patents
一种中断负载均衡优化方法及装置 Download PDFInfo
- Publication number
- CN115756825A CN115756825A CN202211297425.4A CN202211297425A CN115756825A CN 115756825 A CN115756825 A CN 115756825A CN 202211297425 A CN202211297425 A CN 202211297425A CN 115756825 A CN115756825 A CN 115756825A
- Authority
- CN
- China
- Prior art keywords
- cpu
- affinity
- load
- interrupt
- physical
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000005457 optimization Methods 0.000 title claims abstract description 46
- 238000012544 monitoring process Methods 0.000 claims abstract description 57
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
Images
Classifications
-
- 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
- Multi Processors (AREA)
Abstract
本发明涉及中断负载领域,具体公开一种中断负载均衡优化方法及装置,根据服务器各部件的链路获取磁盘控制器的硬盘亲和性物理CPU列表;并通过内核获取原始CPU亲和核心列表中的各个CPU亲和核心所在的物理CPU,记为原始物理CPU;计算各个原始物理CPU的工作负载,若某个原始物理CPU的工作负载超过第一负载阈值,则将该原始物理CPU对应的CPU亲和核心从原始CPU亲和核心列表中删除,并从硬盘亲和性物理CPU列表中选择负载小于第一负载阈值且负载最小的物理CPU,从该物理CPU上选择CPU核心添加到原始CPU亲和核心列表中获得优化CPU亲和核心列表。本发明通过增加中断负载均衡监控服务对中断原有的CPU亲和核心进行调整,实现中断负载的均衡处理,减少CPU发生软锁的几率。
Description
技术领域
本发明涉及中断负载领域,具体涉及一种中断负载均衡优化方法及装置。
背景技术
服务器业务运行压力过大,比如常见的在对服务器磁盘进行压力测试的过程中,会经常出现在某个CPU上大量积压的任务得不到执行而导致软锁(soft lockup)的情况,系统日志中会出现soft lockup日志及相应的寄存器信息、Call Trace(函数调用跟踪)信息。
软锁就是内核线程或陷入内核态的用户进程占用CPU的时间过长,超过了允许的阈值,将CPU上的业务压力小时,发生软锁的几率大大降低。软锁问题的存在会影响客户业务的顺畅运行,降低业务运行的效率,严重的情况下会出现死机或宕机重启。
软锁问题在目前主流的Linux操作系统磁盘业务压力大的场景下,普遍存在(比如Redhat Enterprise Linux 7、Redhat Enterprise Linux 8、SUSE Linux EnterpriseServer、Unbuntu、Debian等)。现有技术中Linux内核中CPU死锁(软锁和硬锁)的检测机制已经比较完善,但Linux内核中的中断负载均衡机制实际执行效果不太理想,尤其是对于SATA控制器、sSATA控制器下的SATA、SAS盘,实际中断仍然集中在少数几个CPU核上,导致这几个CPU核过度繁忙,而其他CPU核心却可能因为空闲而进入节能状态,而过度繁忙的CPU核心出现软锁的几率大大增加。
图1是当前中断负载均衡原理示意图,当用户提交磁盘读写指令后(比如fio随机读的指令:fio--name=r_4k--filename=/dev/sdb--ioengine=libaio--numjobs=4--iodepth=128--rw=randread--blocksize=4k--time_based--runtime=600--direct=1),内核首先会检索磁盘或文件系统所在磁盘对应的磁盘控制器,之后获取内核给磁盘控制器分配的中断号列表。首先获取第一个中断号的CPU亲和性列表,往第一个CPU亲和核心上分配第一个fio读任务,然后往第一个中断号的第二个CPU亲和核心分配第二个fio读任务,若存在未分配的fio读任务,则依次往第一个中断号对应的CPU亲和核心上分配任务,直到第一个中断号对应的CPU亲和核心列表都遍历完。若存在未分配的fio读任务,则继续获取第二个中断号对应的CPU亲和性列表,根据第二个中断号CPU亲和顺序,依次往对应的CPU亲和核心上分配任务,直到所有任务都分配完成或第二个中断号CPU亲和性列表遍历完成。若仍然存在未完成分配的fio读任务,则依次类推,往磁盘控制器对应的其他中断号的CPU亲和核心上分配任务,直到所有的任务都完成分配。若遍历完所有中断号对应的所有CPU亲和核心后,仍有任务未得到分配,则中断号置为磁盘控制器对应的第一个中断号,按照同样的规则,依次遍历各个中断对应的CPU亲和核心列表分配任务,直到所有任务都完成分配。
当前Linux内核中的中断负载均衡机制,无法做到有效均衡负载的原因有如下几点:
(1)一个SATA、sSATA控制器下最多可以接15块磁盘,15个磁盘共用1个控制器对应的1个中断号,当对一个控制器下的所有磁盘同时进行压力测试或同时增大业务负载时,则所有的磁盘任务的CPU中断将非常集中。
(2)控制器中断号对应的CPU亲和性列表是由控制器驱动确定的,控制器驱动会根据控制器的物理位置,选择物理位置更近的CPU作为亲和CPU,比如连接PCH的SATA控制器的中断会选择CPU 0作为亲和CPU,CPU 0下的核心作为亲和CPU核心。CPU 0的核心在同一时刻,不只负责处理磁盘中断,还有很多其他任务运行在CPU 0的核心上。若此时负载过大,则发生软锁的几率增大。
(3)磁盘读写任务的数量是有限的,根据现有技术的中断分配原则,中断将更多的集中于前几个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工作负载的计算,具体包括:
向内核获取物理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亲和核心列表;
将优先级调整后的优化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亲和核心列表,其中添加到原始CPU亲和核心列表的CPU核心与删除的CPU亲和核心数量相同;
CPU核心负载监控模块:对优化CPU亲和核心列表中的所有CPU亲和核心按照负载大小进行排序,负载小的CPU亲和核心排名靠前,负载大的CPU亲和核心排名靠后,获得优先级调整后的优化CPU亲和核心列表;将优先级调整后的优化CPU亲和核心列表中的工作负载超过第二负载阈值的CPU亲和核心删除,得到最终的优化CPU亲和核心列表;
CPU亲和性刷新模块:将最终的优化CPU亲和核心列表发送给中断负载任务,进行磁盘读写任务分配;
CPU亲和性实时监控调整模块:在中断负载任务执行过程中,定时对各个中断号对应的CPU亲和核心列表进行优化;
中断负载均衡结束模块:若中断负载均衡监控服务中无待处理的任务,且所有任务已结束,则暂停中断负载均衡监控服务,清空中断负载均衡监控服务占用的内存空间。
本发明提供的一种中断负载均衡优化方法及装置,相对于现有技术,具有以下有益效果:通过增加中断负载均衡监控服务,监控驱动分配的中断号对应的CPU亲和核心所在的物理CPU的负载,将负载超过“阈值1”的物理CPU上的CPU亲和核心从CPU亲和核心列表中删除,并通过监控硬件亲和性物理CPU及其他物理CPU上的负载情况,从负载低于第一负载阈值且负载最小的物理CPU上选择CPU核心补齐到CPU亲和核心列表获得优化CPU亲和核心列表,进行任务的分配,达到CPU中断负载均衡的目的,极大的减少CPU发生软锁的几率。
附图说明
为了更清楚的说明本申请实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是当前中断负载均衡原理示意图。
图2是本发明实施例提供的一种中断负载均衡优化方法架构示意图。
图3是本发明实施例提供的一种中断负载均衡优化方法流程示意图。
图4是本发明实施例提供的一种中断负载均衡优化方法流程示意图。
图5是本发明实施例提供的一种中断负载均衡优化装置结构示意框图。
具体实施方式
以下对本发明涉及的部分术语进行解释。
CPU亲和性列表:是设备驱动定义的中断号对应的CPU核心列表,当设备发生读写访问任务时,内核会优先往这些在CPU亲和性列表中的CPU上分配任务。
fio一种磁盘压力测试工具,能够对磁盘进行读写任务的加压测试,并同时并发多个fio读写进程同时进程磁盘读写任务。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图2是本发明实施例提供的一种中断负载均衡优化方法架构示意图,该方法在用户提交磁盘读写指令时唤醒中断负载均衡监控服务,通过中断负载均衡监控服务,监控CPU及CPU上核心的负载情况,对中断原有的CPU亲和核心进行调整,反馈新的CPU亲和列表,实现中断负载的均衡处理,减少CPU发生软锁的几率。
图3是本发明实施例提供的一种中断负载均衡优化方法流程示意图,如图3所示,该方法触发中断负载均衡监控服务后,主要通过以下几个步骤实现中断负载均衡的优化。
S1,接收内核反馈的中断负载任务,根据服务器各部件的链路获取磁盘控制器的硬盘亲和性物理CPU列表。
硬盘亲和性物理CPU列表也就是与磁盘控制器链路更近的物理CPU的列表。
用户提交磁盘读写指令时触发中断负载均衡监控服务接收内核反馈的中断负载任务,中断负载均衡监控服务获取硬盘亲和性物理CPU列表,并继续后续的步骤。
S2,获取中断号对应的原始CPU亲和核心列表,并通过内核获取各个CPU亲和核心所在的物理CPU,记为原始物理CPU。
获取的原始CPU亲和核心列表保存在任务数据结构中的CPU亲和核心列表中,然后通过内核获取列表中各个CPU亲和核心所在的物理CPU。
S3,计算各个原始物理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亲和核心从原始CPU亲和核心列表中删除,之后还需要对CPU亲和核心列表进行补齐,因此从硬盘亲和性物理CPU列表中选择负载小于第一负载阈值且负载最小的物理CPU,从该物理CPU上选择CPU核心补齐到原始CPU亲和核心列表中,从而获取优化CPU亲和核心列表。
S4,将优化CPU亲和核心列表发送给中断负载任务,进行磁盘读写任务分配。
中断负载任务根据优化CPU亲和核心列表进行磁盘读写任务分配,执行磁盘读写任务,由于优化CPU亲和核心列表中各个CPU核心对应的物理CPU的负载均较小,降低软锁概率。
本发明实施例提供的一种中断负载均衡优化方法,通过增加中断负载均衡监控服务,监控驱动分配的中断号对应的CPU亲和核心所在的物理CPU的负载,将负载超过“阈值1”的物理CPU上的CPU亲和核心从CPU亲和核心列表中删除,并通过监控硬件亲和性物理CPU及其他物理CPU上的负载情况,从负载低于第一负载阈值且负载最小的物理CPU上选择CPU核心补齐到CPU亲和核心列表获得优化CPU亲和核心列表,进行任务的分配,达到CPU中断负载均衡的目的,极大的减少CPU发生软锁的几率。
图4是本发明实施例提供的一种中断负载均衡优化方法流程示意图,如图4所示,该方法包括以下过程。
1)中断负载均衡监控服务唤醒
当用户提交磁盘读写指令时,内核检测中断负载均衡监控服务是否处于工作状态,若未处于工作状态,则唤醒中断负载均衡监控服务,通知中断负载均衡监控服务接收内核反馈的中断负载任务进行CPU亲和核心列表优化;若处于工作状态,则直接通知中断负载均衡监控服务接收内核反馈的中断负载任务进行CPU亲和核心列表优化。
2)中断负载任务接收
接收内核反馈的中断负载任务,根据服务器各部件的链路获取磁盘控制器的硬件亲和性物理CPU列表,也就是与磁盘控制器链路更近的物理CPU的列表。
3)CPU亲和性获取
获取中断号对应的原始CPU亲和核心列表,并保存在任务数据结构中的CPU亲和核心列表中,并通过内核获取这些CPU亲和核心所在的物理CPU,记为原始物理CPU。
4)CPU负载监控
a.向内核获取原始物理CPU上的所有CPU核心的就绪任务数和等待任务数,将就绪任务数和等待任务数相加获得原始物理CPU的工作负载。找出工作负载超过“负载阈值1”的所有原始物理CPU,将这些原始物理CPU对应的CPU亲和核心从原始CPU亲和核心列表中删除。
b.当CPU亲和核心被删除后,遍历2)中获得的硬件亲和性物理CPU列表中的所有物理CPU的负载情况,选择负载小于“负载阈值1”且负载最小的物理CPU,将该物理CPU上的CPU核心按照负载大小进行排序,选择与删除的CPU亲和核心数量相同的负载小的CPU核心添加到原始CPU亲和核心列表中获得优化CPU亲和核心列表。
c.如果硬盘亲和性物理CPU列表中的所有物理CPU的负载均超过“负载阈值1”,则从原始物理CPU中的剩余原始物理CPU中选择负载最小的物理CPU,将该物理CPU上的CPU核心按照负载大小进行排序,选择与删除的CPU亲和核心数量相同的负载小的CPU核心添加到原始CPU亲和核心列表中获得优化CPU亲和核心列表。
5)CPU核心负载监控
遍历4)得到到优化CPU亲和核心列表,获得各个CPU亲和核心负载,待遍历完成,对优化CPU亲和核心列表中的所有CPU亲和核心按照负载大小进行排序,负载小的CPU亲和核心排名靠前,负载大的CPU亲和核心排名靠后,获得优先级调整后的优化CPU亲和核心列表。
再将优先级调整后的优化CPU亲和核心列表中的工作负载超过“负载阈值2”的CPU亲和核心删除,得到最终的优化CPU亲和核心列表。
6)CPU亲和性刷新
将最终的优化CPU亲和核心列表发送给中断负载任务,进行磁盘读写任务分配。
最终的优化CPU亲和核心列表的顺序即为亲和性顺序,需要说明的是,中断负载任务开始执行时,中断负载均衡监控服务首先获得的是第一个中断号的原始CPU亲和列表,先发送给中断负载任务的最终的优化CPU亲和核心列表也是第一个中断号的列表。之后,中断负载日任务首先往第一个中断号的第一个亲和的CPU核心上分配第一个fio读任务,然后为第一个中断号的第二个亲和CPU核心分配第二个fio读任务,若存在未分配的fio读任务,则依次往第一个中断号对应的CPU亲和核心上分配任务,直到第一个中断号对应的CPU核心列表都遍历完或任务分配完毕。
如果第一个中断号的最终的优化CPU亲和核心列表遍历完后,仍存在未分配的磁盘读写任务,则再获取第二个中断号的原始CPU亲和核心列表执行步骤3)、4)、5)进行优化,以此类推,直至所有磁盘读写任务分配完。
7)CPU亲和性实时监控调整
在中断负载任务执行过程中,定时对各个中断号对应的CPU亲和核心列表进行优化。具体地,按照3)、4)、5)的工作方法定时监控任务的每个中断号对应的物理CPU和CPU亲和核心的工作负载,根据物理CPU和CPU亲和核心的工作负载情况,从CPU亲和核心列表中剔除负载超过阈值的物理CPU上的CPU核心,并加入空闲或负载小的物理CPU上的空闲或负载小的CPU核心,对CPU亲和核心列表进行定时刷新,并反馈给原中断负载模块将任务分配对CPU亲和核心上处理。
8)中断均衡结束
如果中断负载均衡监控服务中无待处理的任务,且所有任务已结束,则暂停中断负载均衡监控服务,清空中断负载均衡监控服务占用的内存空间。
本发明实施例针对现有技术中断负载不均衡,中断更多的集中于少数几个CPU核心上,而导致个别CPU核心发生软锁,进而影响系统稳定运行的问题提供的一种中断负载均衡优化方法,该方法通过增加中断负载均衡监控服务,监控驱动分配的中断号对应的CPU亲和核心所在的物理CPU的负载,将负载超过“阈值1”的物理CPU上的CPU亲和核心从CPU亲和核心列表中删除,并通过监控硬件亲和性物理CPU及其他物理CPU上的负载情况,按照负载从小到大的顺序将CPU核心负载小于“阈值2”的CPU核心筛选出来,并补齐CPU亲和核心列表,用负载按照从小到大的顺序刷新后的CPU亲和核心列表,进行任务的分配,并适时监控物理CPU、CPU亲和核心列表中的CPU核心负载情况,对中断对应的CPU亲和核心列表进行刷新,达到CPU中断负载均衡的目的,极大的减少CPU发生软锁的几率。
上文中对于一种中断负载均衡优化方法的实施例进行了详细描述,基于上述实施例描述的中断负载均衡优化方法,本发明实施例还提供了一种与该方法对应的中断负载均衡优化装置。
图5是本发明实施例提供的一种中断负载均衡优化装置结构示意框图,如图5所示,该装置包括:中断均衡任务接收模块、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亲和核心列表中的所有CPU亲和核心按照负载大小进行排序,负载小的CPU亲和核心排名靠前,负载大的CPU亲和核心排名靠后,获得优先级调整后的优化CPU亲和核心列表;将优先级调整后的优化CPU亲和核心列表中的工作负载超过第二负载阈值的CPU亲和核心删除,得到最终的优化CPU亲和核心列表。
CPU亲和性刷新模块:将最终的优化CPU亲和核心列表发送给中断负载任务,进行磁盘读写任务分配。
CPU亲和性实时监控调整模块:在中断负载任务执行过程中,定时对各个中断号对应的CPU亲和核心列表进行优化。
中断负载均衡结束模块:若中断负载均衡监控服务中无待处理的任务,且所有任务已结束,则暂停中断负载均衡监控服务,清空中断负载均衡监控服务占用的内存空间。
本实施例的中断负载均衡优化装置用于实现前述的中断负载均衡优化方法,因此该装置中的具体实施方式可见前文中的中断负载均衡优化方法的实施例部分,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。
另外,由于本实施例的中断负载均衡优化装置用于实现前述的中断负载均衡优化方法,因此其作用与上述方法的作用相对应,这里不再赘述。
以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。
Claims (10)
1.一种中断负载均衡优化方法,其特征在于,包括以下步骤:
接收内核反馈的中断负载任务,根据服务器各部件的链路获取磁盘控制器的硬盘亲和性物理CPU列表;
获取中断号对应的原始CPU亲和核心列表,并通过内核获取各个CPU亲和核心所在的物理CPU,记为原始物理CPU;
计算各个原始物理CPU的工作负载,若某个原始物理CPU的工作负载超过第一负载阈值,则将该原始物理CPU对应的CPU亲和核心从原始CPU亲和核心列表中删除,并从硬盘亲和性物理CPU列表中选择负载小于第一负载阈值且负载最小的物理CPU,从该物理CPU上选择CPU核心添加到原始CPU亲和核心列表中获得优化CPU亲和核心列表,其中添加到原始CPU亲和核心列表的CPU核心与删除的CPU亲和核心数量相同;
将优化CPU亲和核心列表发送给中断负载任务,进行磁盘读写任务分配。
2.根据权利要求1所述的中断负载均衡优化方法,其特征在于,物理CPU工作负载的计算,具体包括:
向内核获取物理CPU上的所有CPU核心的就绪任务数和等待任务数;
将就绪任务数和等待任务数相加获得物理CPU的工作负载。
3.根据权利要求2所述的中断负载均衡优化方法,其特征在于,该方法具体包括以下步骤:
从硬盘亲和性物理CPU列表中选出负载小于第一负载阈值且负载最小的物理CPU;
将该选出的物理CPU上的CPU核心按照负载大小进行排序;
选择与删除的CPU亲和核心数量相同的负载小的CPU核心添加到原始CPU亲和核心列表中获得优化CPU亲和核心列表。
4.根据权利要求3所述的中断负载均衡优化方法,其特征在于,该方法还包括以下步骤:
若硬盘亲和性物理CPU列表中的所有物理CPU的负载均超过第一负载阈值,则从原始物理CPU中的剩余原始物理CPU中选择负载最小的物理CPU,将该物理CPU上的CPU核心按照负载大小进行排序,选择与删除的CPU亲和核心数量相同的负载小的CPU核心添加到原始CPU亲和核心列表中获得优化CPU亲和核心列表。
5.根据权利要求4所述的中断负载均衡优化方法,其特征在于,该方法还包括以下步骤:
对优化CPU亲和核心列表中的所有CPU亲和核心按照负载大小进行排序,负载小的CPU亲和核心排名靠前,负载大的CPU亲和核心排名靠后,获得优先级调整后的优化CPU亲和核心列表;
将优先级调整后的优化CPU亲和核心列表中的工作负载超过第二负载阈值的CPU亲和核心删除,得到最终的优化CPU亲和核心列表;
将最终的优化CPU亲和核心列表发送给中断负载任务。
6.根据权利要求5所述的中断负载均衡优化方法,其特征在于,该方法还包括以下步骤:
先获取第一个中断号的原始CPU亲和核心列表进行优化;
若第一个中断号的最终的优化CPU亲和核心列表遍历完后,仍存在未分配的磁盘读写任务,则再获取第二个中断号的原始CPU亲和核心列表进行优化,以此类推,直至所有磁盘读写任务分配完。
7.根据权利要求6所述的中断负载均衡优化方法,其特征在于,该方法还包括以下步骤:
在中断负载任务执行过程中,定时对各个中断号对应的CPU亲和核心列表进行优化。
8.根据权利要求7所述的中断负载均衡优化方法,其特征在于,该方法还包括以下步骤:
当用户提交磁盘读写指令时,内核检测中断负载均衡监控服务是否处于工作状态;
若未处于工作状态,则唤醒中断负载均衡监控服务,通知中断负载均衡监控服务接收内核反馈的中断负载任务进行CPU亲和核心列表优化;
若处于工作状态,则直接通知中断负载均衡监控服务接收内核反馈的中断负载任务进行CPU亲和核心列表优化。
9.根据权利要求8所述的中断负载均衡优化方法,其特征在于,该方法还包括以下步骤:
若中断负载均衡监控服务中无待处理的任务,且所有任务已结束,则暂停中断负载均衡监控服务,清空中断负载均衡监控服务占用的内存空间。
10.一种中断负载均衡优化装置,其特征在于,包括,
中断均衡任务接收模块:接收内核反馈的中断负载任务,根据服务器各部件的链路获取磁盘控制器的硬盘亲和性物理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亲和核心列表中的工作负载超过第二负载阈值的CPU亲和核心删除,得到最终的优化CPU亲和核心列表;
CPU亲和性刷新模块:将最终的优化CPU亲和核心列表发送给中断负载任务,进行磁盘读写任务分配;
CPU亲和性实时监控调整模块:在中断负载任务执行过程中,定时对各个中断号对应的CPU亲和核心列表进行优化;
中断负载均衡结束模块:若中断负载均衡监控服务中无待处理的任务,且所有任务已结束,则暂停中断负载均衡监控服务,清空中断负载均衡监控服务占用的内存空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211297425.4A CN115756825A (zh) | 2022-10-21 | 2022-10-21 | 一种中断负载均衡优化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211297425.4A CN115756825A (zh) | 2022-10-21 | 2022-10-21 | 一种中断负载均衡优化方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115756825A true CN115756825A (zh) | 2023-03-07 |
Family
ID=85352725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211297425.4A Pending CN115756825A (zh) | 2022-10-21 | 2022-10-21 | 一种中断负载均衡优化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115756825A (zh) |
-
2022
- 2022-10-21 CN CN202211297425.4A patent/CN115756825A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9977689B2 (en) | Dynamic scaling of management infrastructure in virtual environments | |
US9983903B2 (en) | Parallel execution of parsed query based on a concurrency level | |
US9086922B2 (en) | Opportunistically scheduling and adjusting time slices | |
US8190864B1 (en) | APIC implementation for a highly-threaded x86 processor | |
JP4920391B2 (ja) | 計算機システムの管理方法、管理サーバ、計算機システム及びプログラム | |
JP5206674B2 (ja) | 仮想マシン管理装置、仮想マシン管理方法および仮想マシン管理プログラム | |
US7251814B2 (en) | Yield on multithreaded processors | |
US20150312167A1 (en) | Maximizing server utilization within a datacenter | |
JPH07306844A (ja) | マルチプロセッサシステムの無停止プログラム変更方法およびマルチプロセッサシステムおよびディスク制御装置の無停止プログラム変更方法およびディスク制御装置 | |
JP2003241980A (ja) | マルチプロセッサ・コンピュータ・システムのためのスレッド・ディスパッチ機構及び方法 | |
US20170109217A1 (en) | Method For Efficient Task Scheduling In The Presence Of Conflicts | |
US20120297216A1 (en) | Dynamically selecting active polling or timed waits | |
CN112000455A (zh) | 一种多线程任务处理方法、装置及电子设备 | |
US20130097382A1 (en) | Multi-core processor system, computer product, and control method | |
WO2002097622A2 (en) | A resource management method | |
CN113254222B (zh) | 固态硬盘的任务分配方法、系统、电子设备及存储介质 | |
US20150169367A1 (en) | System and method for supporting adaptive busy wait in a computing environment | |
CN115756825A (zh) | 一种中断负载均衡优化方法及装置 | |
CN116501468A (zh) | 批量作业处理方法、装置及电子设备 | |
CN111611104B (zh) | 一种InfluxDB数据备份方法、系统及终端设备 | |
JP3385407B2 (ja) | マルチプロセッサシステムの無停止プログラム変更方法およびマルチプロセッサシステム | |
JPH11120147A (ja) | 負荷分散制御方法 | |
TWI821038B (zh) | 運算工作分派方法及應用其之終端電子裝置與運算系統 | |
JP7168630B2 (ja) | 計算機システム及びジョブの実行制御方法 | |
CN114327826A (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 |