CN118152063A - 中断请求处理方法、系统、设备及计算机可读存储介质 - Google Patents
中断请求处理方法、系统、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN118152063A CN118152063A CN202211557937.XA CN202211557937A CN118152063A CN 118152063 A CN118152063 A CN 118152063A CN 202211557937 A CN202211557937 A CN 202211557937A CN 118152063 A CN118152063 A CN 118152063A
- Authority
- CN
- China
- Prior art keywords
- vcpu
- interrupt
- online
- load
- interrupt request
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 28
- 238000012545 processing Methods 0.000 claims abstract description 108
- 238000001514 detection method Methods 0.000 claims abstract description 11
- 238000000034 method Methods 0.000 claims description 30
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Debugging And Monitoring (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
Abstract
本申请公开了一种中断请求处理方法、系统、设备及计算机可读存储介质,中断请求处理方法包括:响应于中断请求,检测预设在线列表中是否包括在线虚拟中央处理器vCPU;在检测结果为是的情况下,获取至少一个所述在线vCPU对应的调度信息和负载信息;根据所述调度信息与所述负载信息在至少一个所述在线vCPU中选择负载最小的在线vCPU作为目标vCPU;将所述中断请求发送至所述目标vCPU进行中断处理。本申请减少了vCPU的中断请求处理时间延迟。
Description
技术领域
本申请涉及计算机领域,涉及一种中断请求处理方法、系统、设备及计算机可读存储介质。
背景技术
随着网络技术的发展,输入/输出虚拟化已成为虚拟化基础设施中系统性能和效率的决定因素,它通过管理程序或虚拟机管理器整合多个虚拟机实例,以共享同一底层物理服务器资源。虚拟I/O(Input/Output,输入/输出)设备模拟真实的物理I/O设备处理I/O请求,并产生相应的中断,虚拟机管理器拦截并模拟宿主系统调度vCPU(virtual CentralProcessing Unit,虚拟中央处理器)处理中断,而中断传递引起的虚机退出和相关的中断处理延迟会极大影响虚拟机的I/O吞吐量和响应。因此如何减少vCPU的中断请求处理时间延迟是目前亟待解决的问题。
发明内容
本申请的主要目的在于提供一种中断请求处理方法、系统、设备及计算机可读存储介质,旨在解决如何减少vCPU的中断请求处理时间延迟的技术问题。
为实现上述目的,本申请提供一种中断请求处理方法,包括:
响应于中断请求,检测预设在线列表中是否包括在线虚拟中央处理器vCPU;
在检测结果为是的情况下,获取至少一个所述在线vCPU对应的调度信息和负载信息;
根据所述调度信息与所述负载信息在至少一个所述在线vCPU中选择负载最小的在线vCPU作为目标vCPU;
将所述中断请求发送至所述目标vCPU进行中断处理。
此外,为实现上述目的,本申请还提供一种中断请求处理系统,包括:
接收模块,用于响应于中断请求,检测预设在线列表中是否包括在线虚拟中央处理器vCPU;
信息获取模块,用于在检测结果为是的情况下,获取至少一个所述在线vCPU对应的调度信息和负载信息;
重定向模块,用于根据所述调度信息与所述负载信息在至少一个所述在线vCPU中选择负载最小的vCPU作为目标vCPU;
处理模块,用于将所述中断请求发送至所述目标vCPU进行中断处理。
此外,为实现上述目的,本申请还提供一种中断请求处理设备,中断请求处理设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上执行的中断请求处理程序,所述中断请求处理程序被所述处理器执行时实现如上述所述的中断请求处理方法的步骤。
此外,为实现上述目的,本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有中断请求处理程序,所述中断请求处理程序被处理器执行时实现如上述所述的中断请求处理方法的步骤。
本申请实施例通过响应于中断请求,在检测到预设在线列表中包括在线vCPU之后,获取至少一个所述在线vCPU对应的调度信息和负载信息;根据所述调度信息与所述负载信息在至少一个所述在线vCPU中选择负载最小的在线vCPU作为目标vCPU;将所述中断请求发送至所述目标vCPU进行中断处理,实现了根据在线列表中所有vCPU的调度信息与负载信息将中断请求重定向至负载最小的目标vCPU进行处理,克服了现有技术中处理中断请求时虚拟机管理器与虚拟机之间昂贵的上下文切换,或者无法动态地根据vCPU的调度情况和负载情况选择负载最小的vCPU处理接收到的中断请求,从而导致中断请求处理时间延迟长的技术缺陷,所以,减少了vCPU的中断请求处理时间延迟。
附图说明
图1是本申请中断请求处理方法的第一实施例的流程示意图;
图2是本申请中断请求处理方法的在线列表与离线列表的说明性示意图;
图3是本申请中断请求处理方法中系统分布框架图;
图4是本申请中断请求处理方法的另一流程示意图;
图5是本申请中断请求处理系统的示意图;
图6是本申请实施例方案涉及的硬件运行环境的终端\装置结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
当虚拟机接收到一个中断请求时,可根据虚拟机中vCPU的中断亲和性设置处理此中断的目标vCPU(virtual Central Processing Unit,虚拟中央处理器),记为vCPUA。在物理CPU核心被复用的情况下(即多个vCPU可能共享一个核心),当PI(Posted Interrupt,通告中断)将中断交付给它时,目标vCPU A可能处于调度的等待队列中。那么在vCPU A被重新调度至物理CPU之前,交付的中断无法被处理。在这种情况下,vCPU A的调度延迟将不可避免地被引入到客户的I/O(Input/Output,输入/输出)事件处理中,造成额外的I/O延迟。
此外还可以采用侧核方法分配专用内核负责虚拟机的I/O处理时,侧核方法将核心分为两个不同的集合:一个用于运行客户系统,另一个专门用于虚拟I/O处理。然而,应该分配给每组的核心数量取决于不断变化的工作负载。在最坏情况下,用于虚拟I/O处理的专用内核数量远大(小)于最优值,两组核心中总有一组负载过重,消耗更多的CPU周期,而虚拟机上运行的其他应用(工作负载)性能受到损害。
还可以采用相关调度算法减少了每个vCPU在运行队列中的等待时间,调度算法相关方法通过减少虚拟机管理器中调度器的时间片,及时调度接收中断的vCPU,减少vCPU在调度队列中的等待时间。然而,为了快速响应中断而在vCPU之间的频繁调度切换会带来数量惊人的上下文切换,大量的CPU周期被浪费,在实际中造成严重的性能下降。同时,虚拟机管理器调度器通过分配给每个vCPU同等数量的CPU周期来公平对待每个vCPU,然而,每个vCPU上的中断负载是不均衡的,不能针对中断负载压力更大的vCPU分配更多的CPU周期,无法充分利用系统资源。
因此,在本申请实施例中为了避免处理中断请求时产生额外的不必要的上下文切换开销,以及无法实现vCPU上的中断负载均衡导致每个vCPU上的中断请求数量不均,无法动态地根据vCPU上的中断负载情况分配相对应的CPU周期,无法充分利用资源的情况,本实施例中当虚拟设备或与虚拟机直通的物理设备完成要求的I/O操作并产生一个中断请求时,虚拟机会响应于接收到的中断请求,并检测预设在线列表中是否存在vCPU,在确定预设在线列表中存在至少一个vCPU之后获取并评估预设在线列表中当前所有vCPU的中断请求负载信息和vCPU的调度信息,对设备发出的中断请求进行智能重定向,重定向至负载最小的目标vCPU进行处理;在检测到预设在线列表中不存储有vCPU之后,则从预设离线列表中选择一个vCPU作为目标vCPU完成中断请求的处理,实现了中断请求重定向至目标vCPU的负载均衡,减少了中断请求处理的时间延迟,进而提高I/O虚拟化的并发性和响应性。并且是基于通告中断和Linux KVM中的vCPU调度设计,应用于虚拟I/O事件路径中的中断传递与交付处理流程,降低了由vCPU调度器引起的I/O中断处理延迟。
并且在本申请实施例中,还可以是将虚拟机中vCPU的负载相关信息的存储位置直接发送给宿主机上虚拟机监视器,使虚拟机监视器可以共享并依据vCPU的负载信息确定负载调度策略,选择最合适的中断请求的目标vCPU。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参照图1,本申请提供一种中断请求处理方法,在中断请求处理方法的第一实施例中,中断请求处理方法包括:
步骤S10,响应于中断请求,检测预设在线列表中是否包括在线虚拟中央处理器vCPU;
步骤S20,在检测结果为是的情况下,获取至少一个所述在线vCPU对应的调度信息和负载信息;
步骤S30,根据所述调度信息与所述负载信息在至少一个所述在线vCPU中选择负载最小的在线vCPU作为目标vCPU;
步骤S40,将所述中断请求发送至所述目标vCPU进行中断处理。
示例性的,本申请实施例中的中断请求处理方法应用于中断请求处理系统,在中断请求处理系统中可以设置vCPU调度信息模块,vCPU负载信息模块和中断请求的目标vCPU重定向模块。当虚拟设备或直通的物理设备完成要求的I/O操作并产生至少一个中断请求之后,在通过PI(Posted Interrupt,通告中断)定向发送至与之对应的具体vCPU之前,会通过中断请求的目标vCPU重定向模块来拦截这个中断请求。在一场景中,可以在中断请求处理系统中创建两个信息通道,vCPU通过两个信息通道分别获取实时的vCPU调度状态和vCPU负载均衡信息,智能地根据vCPU调度状态和vCPU负载均衡信息寻找到最合适的vCPU来处理该中断请求,以完成优化PI机制,从而尽可能减少客户机的IO事件处理延迟。
通过引入vCPU调度信息模块与VMM(虚拟机管理器)的vCPU调度器建立信息通道,采集当前vCPU调度信息,从而避免了为中断请求分配目标vCPU时,不知道vCPU的调度状态的现象发生。并且通过引入vCPU负载信息模块,VMM中的负载均衡器将收集vCPU上的vAPICPage接收中断请求情况,维护当前vCPU的中断请求状态表,实现对于中断请求负载的实时评估,从而避免了为中断请求分配目标vCPU时,无法确保vCPU的负载均衡的现象发生。通过引入中断请求的目标vCPU重定向模块,并在获取到vCPU调度状态和vCPU负载均衡状态,将中断请求重定向至在线空闲vCPU,降低了由vCPU的调度延迟转化的虚拟机I/O事件处理延迟,避免了虚拟机管理器的调度活动对虚拟机的I/O性能影响。
对于步骤S10,响应于中断请求,检测预设在线列表中是否包括在线虚拟中央处理器vCPU;
示例性的,当物理设备或者虚拟设备发送中断请求后,虚拟机响应于接收到的中断请求,并且检测预设在线列表中是否包括在线vCPU。其中,预设在线列表是利用虚拟机提供的vCPU调度产生的通知器为所有的虚拟机维护vCPU的在线状态表,如果一个vCPU线程当前正运行在物理CPU上,它就会被放入预设在线列表中,并且以先入先出的队列统计目前在线的vCPU,以记录其中存储vCPU的先后顺序。
其中,在步骤S10,检测预设在线列表中是否包括在线虚拟中央处理器vCPU之后,包括:
步骤z:在确定所述预设在线列表为空表之后,则按照预设存储顺序从预设离线列表中选择一个离线vCPU作为目标vCPU,其中,所述空表未包括在线vCPU。
示例性的,在检测到预设在线列表为空表之后,确定预设在线列表中未存储有在线vCPU。此时就可以从预设离线列表中按照预设存储顺序选择一个离线vCPU作为目标vCPU处理接收到的中断请求。其中预设离线列表是预设在线列表是利用虚拟机提供的vCPU调度产生的通知器为所有的虚拟机维护vCPU的离线状态表,并且以先入先出(即预设存储顺序)的队列统计目前离线的vCPU,记录其中存储vCPU的先后顺序。离线的vCPU列表被排序,以表明所有vCPU的取消调度顺序,每当某个vCPU被取消调度,它就会从在线列表中移除,并被添加到离线列表的尾部。其中,离线vCPU可以是存储在预设离线列表中处于离线状态的vCPU。
示例性的,在虚拟机接收到中断请求之后,如果预设在线列表为空表,即代表不存在有在线vCPU,此时可以按照先入先出的顺序选择队首的离线vCPU作为处理中断请求的目标vCPU。例如,如图2所示,预设离线列表为先入先出的队列结构且存储有4个vCPU,按照存储顺序依次为vCPU5、vCPU6、vCPU7、vCPU8,在预设在线列表为空表时,选择队首的离线vCPU即vCPU5作为目标vCPU,并且离线vCPU被分配有处理中断请求的任务之后会进入到预设在线列表,然后在预设在线列表在被调度运行处理中断请求,从而保证了中请求断分配到目标vCPU后,不会陷入长时间等待,导致无法及时交付处理的中断请求的现象发生。
对于步骤S20,在检测结果为是的情况下,获取至少一个所述在线vCPU对应的调度信息和负载信息;
示例性的,在确定预设在线列表中包括有至少一个在线vCPU之后,vCPU调度信息处理模块会通过与操作系统的vCPU调度器建立信息通道,采集目前的vCPU调度信息。其中,调度信息记录了所有vCPU的调度状态;vCPU负载信息模块会通过与操作系统的vCPU调度器建立信息通道,采集目前的vCPU负载信息,负载信息记录了所有vCPU包括的中断负载数量。
示例性的,虚拟机为每个vCPU注册了两个抢占通知器函数,分别记为kvm_sched_in和kvm_sched_out。kvm_sched_in将在一个vCPU线程即将被调度之前被调用,kvm_sched_in被调用时对应的vCPU被放入到预设在线列表中,并记录vCPU的调用状态是处理中断状态还是未处理中断状态,而kvm_sched_out会在一个vCPU线程被取消调度的时候被立刻调用,kvm_sched_out被调用时对应的vCPU被放入到预设离线列表中。通过利用这两个通知器,vCPU调度信息处理模块可以收集和更新每个虚拟机的vCPU调度状态。
示例性的,虚拟机也设计了kvm_create_vcpu系统调用函数,用户通过kvm_create_vcpu系统调用请求创建vCPU之后,虚拟机为每个vCPU创建对应的kvm_vcpu结构体并进行初始化操作,在中断请求注入虚拟高级可编程中断控制器页时动态更新并维护kvm_vcpu结构体中记录的中断请求负载信息,实时记录当前已经定向到vCPU上的中断请求数量和完成状态并评估当前的vCPU中断负载压力情况。
示例性的,在检测到预设在线列中存在有至少一个在线vCPU后,通过虚拟机监视器的vCPU调度信息模块获取预设在线列表中所有在线vCPU的调度信息,其中调度信息包括了每一个在线vCPU相对应的调度状态,通过vCPU负载信息模块获取预设在线列表中所有在线vCPU的负载信息,其中负载信息包括了每一个在线vCPU相对应的中断负载数量。
对于步骤S30,根据所述调度信息与所述负载信息在至少一个所述在线vCPU中选择负载最小的在线vCPU作为目标vCPU;
示例性的,在预设在线列表中的所有在线vCPU都可以进行中断请求的处理事项操作,即可以立即接收PI交付的中断请求,没有任何延迟。因此就可以根据获取到的在线vCPU的调度信息和负载信息在各个在线vCPU中选择负载最小、负载最轻的在线vCPU作为目标vCPU。并且在进行目标vCPU确定时,可以对预设在线列表中所有在线vCPU的调度信息之间进行比较,可以对预设在线列表中所有在线vCPU的负载信息之间进行比较,以此来确定负载最小的在线vCPU,并将此负载最小的在线vCPU作为目标vCPU。
对于步骤S40,将所述中断请求发送至所述目标vCPU进行中断处理。
示例性的,在确定目标vCPU之后,就可以直接将中断请求发送至目标vCPU进行中断处理,并在中断处理完成之后,再接收到由物理设备或者虚拟设备发送新的中断请求后,可以继续由此目标vCPU进行处理。
此外,为辅助理解本实施例中中断请求处理流程的理解,下面进行举例说明。
例如,如图3所示,包括虚拟机、硬件和虚拟机监视器,并且在虚拟机监视器中设置vCPU调度信息模块,vCPU负载信息模块和中断请求的目标vCPU重定向模块。在虚拟机监视器监测到虚拟设备或者物理设备产生中断请求之后,会通过中断请求的目标vCPU重定向模块来拦截这个中断请求。并且会创建两个信息通道,vCPU通过两个信息通道分别获取实时的vCPU调度状态和vCPU负载均衡信息,也就是vCPU调度信息模块通过一个信息通道监测vCPU调度器,以获取vCPU调度信息。vCPU负载信息模块通过另一个信息通道监测各个vCPU的通告中断,以获取vCPU中断负载信息。虚拟机监视器智能地根据vCPU调度状态和vCPU负载均衡信息寻找到最合适的vCPU来处理该中断请求,以完成优化PI机制,从而尽可能减少客户机的IO事件处理延迟。
再例如,如图4所示,在接收到中断请求之后,获取vCPU的调度信息与中断负载信息(即负载信息),根据vCPU的调度信息与中断负载信息选择一个负载最小的vCPU的作为处理此中断请求的目标vCPU,然后判断预设在线列表中是否存储有在线vCPU且所有在线vCPU的平均中断负载数量出超过阈值,若满足条件则向当前目标vCPU通过中断,进行中断处理,若无法找到在线vCPU或者在线vCPU平均中断负载数量超过阈值,则将预设离线队列的队首vCPU作为目标vCPU,并向此目标vCPU通告中断,确定了处理中断请求的目标vCPU之后,则根据此中断请求更新vCPU的中断负载信息。
本实施例通过响应于中断请求,检测预设在线列表中是否包括在线虚拟中央处理器vCPU;在检测结果为是的情况下,获取至少一个所述在线vCPU对应的调度信息和负载信息;根据所述调度信息与所述负载信息在至少一个所述在线vCPU中选择负载最小的在线vCPU作为目标vCPU;将所述中断请求发送至所述目标vCPU进行中断处理,实现了根据在线列表中所有vCPU的调度信息与负载信息将中断请求重定向至负载最小的目标vCPU进行处理,克服了现有技术中处理中断请求时虚拟机管理器与虚拟机之间昂贵的上下文切换,或者无法动态地根据vCPU的调度情况和负载情况选择负载最小的vCPU处理接收到的中断请求,从而导致中断请求处理时间延迟长的技术缺陷,所以,减少了vCPU的中断请求处理时间延迟。
进一步地,基于上述本申请的第一实施例,提出本申请中断请求处理方法的第二实施例,在本实施例中,上述实施例步骤S30,根据所述调度信息与所述负载信息在至少一个所述在线vCPU中选择负载最小的在线vCPU作为目标vCPU,包括:
步骤a,基于所述负载信息获取所述在线vCPU对应的中断负载数量,基于所述调度信息获取所述在线vCPU对应的调度状态;
步骤b,在所有所述调度状态均是未处理中断状态之后,根据所述中断负载数量在至少一个所述在线vCPU中选择负载最小的在线vCPU作为目标vCPU。
示例性的,由于vCPU的调度信息记录每一个vCPU的调度状态,在线vCPU的调度状态包括处理中断状态与未处理中断状态。其中处理中断状态是指某个在线vCPU被选中处理一个中断的状态,而除处理中断状态之外的所有状态都为未处于处理中断状态。若根据预设在线列表中所有在线vCPU的调度信息确定每一个在线vCPU的调度状态均是未处理中断状态,进而根据预设在线列表中所有在线vCPU的负载信息确定每一个在线vCPU上的中断负载数量,从而筛选出一个包含最少中断负载数量的在线vCPU作为接收被处理中断请求的目标vCPU。例如,参照图4,如果先入先出队列结构的预设在线列表中有4个在线vCPU分别为vCPU1、vCPU2、vCPU3和vCPU4,且4个在线vCPU的调度状态均是未处理中断状态,与vCPU1、vCPU2、vCPU3和vCPU4相对应的中断负载数量未10、4、15、8则选择中断负载数量最小(即4)对应的在线vCPU(即vCPU2)作为目标vCPU。
在本实施例中,在接收到中断请求之后,通过获取的在线vCPU调度状态和vCPU中断负载数量,将中断请求重定向至在线负载最小的vCPU进行处理,降低了由vCPU的调度延迟转化的虚拟机I/O事件处理延迟,减少了vCPU的中断请求的处理时间延迟,进而避免中断请求处理时间延迟较长对虚拟机的I/O性能影响。
在一实施例中,根据所述中断负载数量在至少一个所述在线vCPU中选择负载最小的在线vCPU作为目标vCPU,包括:
步骤c,确定所有所述中断负载数量对应的平均中断负载数量;
步骤d,在所述平均中断负载数量小于第一预设阈值之后,确定所有所述中断负载数量中的最小中断负载数量;
步骤e,将所述最小中断负载数量对应的在线vCPU作为目标vCPU。
示例性的,在确定了所有在线vCPU均是未处理中断状态之后,获取所有在线vCPU对应的中断负载数量,并对所有中断负载数量取平均值,得到平均中断负载数量。然后将平均中断负载数量与第一预设阈值进行比较。在平均中断负载数量小于第一预设阈值之后,从所有在线vCPU中选择负载最小的在线vCPU作为目标vCPU,即选择最小中断负载数量对应的在线vCPU作为目标vCPU。在平均中断负载数量大于或者等于第一预设阈值之后,在预设离线列表中选择一个满足条件的离线vCPU作为目标vCPU。其中,第一预设阈值可以依据vCPU调度延迟和平均中断请求处理时间的比值而确定。例如,如果4个均是未处于处理中断状态的在线vCPU(vCPU1、vCPU2、vCPU3、vCPU4),对应的中断负载数量为(10、4、15、8),计算得到4个在线vCPU的平均中断负载数量为9.25,此时若第一预设阈值为8,则平均中断负载数量小于第一预设阈值,选择最小中断负载输数量对应的在线vCPU即vCPU2作为目标vCPU。
在本实施例中,在确定了预设在线列表中的所有在线vCPU均是未处理中断状态之后,可以根据在线vCPU的负载信息选择最小中断负载数量对应的在线vCPU作为处理中断请求的目标vCPU,实现了中断请求分发至目标vCPU的负载均衡,设定vCPU上中断负载平均阈值,确保中断请求的处理延迟始终为在vCPU上已有中断请求队列的总计处理时间和vCPU调度延迟开销的最小值,减少中断请求的等待时间。
在一实施例中,确定所有所述中断负载数量对应的平均中断负载数量之后,包括:
步骤f,在所述平均中断负载数量大于或者等于第一预设阈值之后,则按照预设存储顺序从预设离线列表中选择一个离线vCPU作为目标vCPU。
示例性的,由于预设在线列表与预设离线列表均是先入先出的队列结构,因此如果所有在线vCPU的平均中断负载数量大于或者等于第一预设阈值时,可以按照先入先出的存储顺序(即预设存储顺序)选择预设离线列表队首的离线vCPU作为目标vCPU,预设离线队表中的队首vCPU是离线时间最长的vCPU,且将是第一个恢复在线状态的vCPU,也会是第一个进入运行状态的vCPU,从而避免了在线vCPU上的中断负载数量过重,而出现CPU运行异常或者中断请求处理异常退出等异常情况的出现,保证了所有在线CPU上所有中断请求均能被有效且准确的完成处理。
例如,如果4个均是未处于处理中断状态的在线vCPU(vCPU1、vCPU2、vCPU3、vCPU4),对应的中断负载数量为(10、4、15、8),计算得到4个在线vCPU的平均中断负载数量为9.25,若第一预设阈值为10,则平均中断负载数量大于第一预设阈值,此时选择预设离线列表中满足条件的离线vCPU作为目标vCPU。
在一实施例中,基于所述调度信息获取所述在线vCPU对应的调度状态之后,包括:
步骤g,在所有所述调度状态中存在处理中断状态之后,确定所有所述中断负载数量中的最大中断负载数量与最小中断负载数量;
步骤h,确定所述最大中断负载数量与所述最小中断负载数量之间的比值;
步骤i,在所述比值大于第二预设阈值之后,继续执行根据所述中断负载数量在至少一个所述在线vCPU中选择负载最小的在线vCPU作为目标vCPU的步骤。
示例性的,如果在线vCPU中有一个被选中处理一个中断,即处于处理中断状态,并且当前所有在线vCPU上的中断负载数量最大值以及中断负载数量最小值之间的比值大于预设经验值(即第二预设阈值)时,仍会选择中断负载数量最小值对应的在线vCPU作为目标vCPU,若所述比值小于或者等于预设经验值时则认为此时选择正在处理中断的在线vCPU作为目标vCPU,其中预设经验值可以是用户提前设置的任意值。例如,如果有4个在线vCPU(vCPU1、vCPU2、vCPU3、vCPU4),对应的中断负载数量为(10、4、15、8),且vCPU4是处于处理中断状态,vCPU1、vCPU2与vCPU3均是未处理中断状态,计算得到最大中断负载数量与最小中断负载数量的比值为3.75且平均中断负载数量为9.25,此时若提前设置好的预设检验值为4且第一预设阈值为8,则比值大于预设经验值且平均中断负载数量小于第一预设阈值,此时选择最小中断负载数量对应的在线vCPU即vCPU2作为目标vCPU若提前设置好的预设检验值为4且第一预设阈值为10,则比值大于预设经验值且平均中断负载大于第一预设阈值,此时选择预设连线列表中满足条件的连线vCPU作为目标vCPU;若提前设置好的预设检验值3,则比值小于预设经验值,此时选择处于处理中断状态的在线vCPU即vCPU4作为目标vCPU。
在本实施例中,通过在所有调度状态中存在处理中断状态之后,确定所有中断负载数量中的最大中断负载数量与最小中断负载数量之间的比例,并在比值大于第二预设阈值之后,在各个在线vCPU中选择负载最小的在线vCPU作为目标vCPU,从而保障了确定的目标vCPU的有效性。
在一实施例中,确定所述最大中断负载数量与所述最小中断负载数量的比值之后,包括:
步骤j,在所述比值小于或者等于第二预设阈值之后,选择所有所述在线vCPU中处于处理中断状态的在线vCPU作为目标vCPU。
示例性的,如果所有在线vCPU的最大中断负载数量与最小中断负载数量的比值小于或者等于第二预设阈值之后,则选择处理中断状态的在线vCPU作为目标vCPU,并实时更新vCPU负载信息,且会将后续的中断请求均重定向至此在线vCPU,直到它被vCPU调度器取消调度或者所述比值大于预设经验值之后,触发重定向选择一个新的中断负载最小的在线vCPU作为重定向目标vCPU,从而保证了中断请求到来时,如果有正在处理中断的在线vCPU则将中断请求发送至此在线vCPU进行处理,由于此在线vCPU正在处理中断,因此此时将中断请求交付给此在线vCPU可以保证中断请求可以被立即处理而减少处理时间延迟,而且只有在上述比值小于或者等于预设经验值时才会将中断请求重定向至正在处理中断的在线vCPU,从而确保了每个在线vCPU的负载均衡。
此外,参照图5,本申请实施例提供了一种中断请求处理系统,包括:
检测模块A10,用于响应于中断请求,检测预设在线列表中是否包括在线虚拟中央处理器vCPU;
信息获取模块A20,用于在检测结果为是的情况下,获取至少一个所述在线vCPU对应的调度信息和负载信息;
重定向模块A30,用于根据所述调度信息与所述负载信息在至少一个所述在线vCPU中选择负载最小的vCPU作为目标vCPU;
处理模块A40,用于将所述中断请求发送至所述目标vCPU进行中断处理。
其中,所述重定向模块A30,还用于:
基于所述负载信息获取所述在线vCPU对应的中断负载数量,基于所述调度信息获取所述在线vCPU对应的调度状态;
在所有所述调度状态均是未处理中断状态之后,根据所述中断负载数量在至少一个所述在线vCPU中选择负载最小的在线vCPU作为目标vCPU。
其中,所述重定向模块A30,还用于:
确定所有所述中断负载数量对应的平均中断负载数量;
在所述平均中断负载数量小于第一预设阈值之后,确定所有所述中断负载数量中的最小中断负载数量;
将所述最小中断负载数量对应的在线vCPU作为目标vCPU。
其中,所述重定向模块A30,还用于:
在所述平均中断负载数量大于或者等于第一预设阈值之后,则按照预设存储顺序从预设离线列表中选择一个离线vCPU作为目标vCPU。
其中,所述重定向模块A30,还用于:
在所有所述调度状态中存在处理中断状态之后,确定所有所述中断负载数量中的最大中断负载数量与最小中断负载数量;
确定所述最大中断负载数量与所述最小中断负载数量之间的比值;
在所述比值大于第二预设阈值之后,继续执行根据所述中断负载数量在至少一个所述在线vCPU中选择负载最小的在线vCPU作为目标vCPU的步骤。
其中,所述重定向模块A30,还用于:
在所述比值小于或者等于第二预设阈值之后,选择所有所述在线vCPU中处于处理中断状态的在线vCPU作为目标vCPU。
其中,所述信息获取模块A20,用于:
在确定所述预设在线列表为空表之后,则按照预设存储顺序从预设离线列表中选择一个离线vCPU作为目标vCPU,其中,所述空表未包括在线vCPU。
本申请中断请求处理系统具体实施方式与上述中断请求处理方法各实施例基本相同,在此不再赘述。
此外,本申请还提供一种中断请求处理设备,中断请求处理设备包括存储器、处理器及存储在存储器上并可在处理器上运行的中断请求处理程序,中断请求处理程序被处理器执行时实现如上述的中断请求处理方法的步骤。
此外,在一实施例中,图6为本发明的一个实施例中断请求处理设备的结构示意图,如图6所示,在硬件层面,该中断请求处理设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-AccessMemory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该中断请求处理设备还可能包括其他业务所需要的硬件。处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Ind ustry Standa rdArchitecture,工业标准体系结构)总线、PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(Extended Industry Standard Architecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。处理器从非易失性存储器中读取对应的计算机程序到存储器中然后运行,在逻辑层面上形成共享资源访问控制装置。处理器,执行存储器所存放的程序,并具体用于执行上述防窜货管控方法的步骤。
本申请中断请求处理设备具体实施方式与上述网络优化方法各实施例基本相同,在此不再赘述。
此外,本申请还提供了一种存储介质,可以为计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述存储器访问方法各实施例的步骤。
本申请计算机可读存储介质具体实施方式与上述存储器访问方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种中断请求处理方法,其特征在于,包括:
响应于中断请求,检测预设在线列表中是否包括在线虚拟中央处理器vCPU;
在检测结果为是的情况下,获取至少一个所述在线vCPU对应的调度信息和负载信息;
根据所述调度信息与所述负载信息在至少一个所述在线vCPU中选择负载最小的在线vCPU作为目标vCPU;
将所述中断请求发送至所述目标vCPU进行中断处理。
2.如权利要求1所述的中断请求处理方法,其特征在于,所述根据所述调度信息与所述负载信息在至少一个所述在线vCPU中选择负载最小的在线vCPU作为目标vCPU,包括:
基于所述负载信息获取所述在线vCPU对应的中断负载数量,基于所述调度信息获取所述在线vCPU对应的调度状态;
在所有所述调度状态均是未处理中断状态之后,根据所述中断负载数量在至少一个所述在线vCPU中选择负载最小的在线vCPU作为目标vCPU。
3.如权利要求2所述的中断请求处理方法,其特征在于,所述根据所述中断负载数量在至少一个所述在线vCPU中选择负载最小的在线vCPU作为目标vCPU,包括:
确定所有所述中断负载数量对应的平均中断负载数量;
在所述平均中断负载数量小于第一预设阈值之后,确定所有所述中断负载数量中的最小中断负载数量;
将所述最小中断负载数量对应的在线vCPU作为目标vCPU。
4.如权利要求3所述的中断请求处理方法,其特征在于,所述确定所有所述中断负载数量对应的平均中断负载数量之后,包括:
在所述平均中断负载数量大于或者等于第一预设阈值之后,则按照预设存储顺序从预设离线列表中选择一个离线vCPU作为目标vCPU。
5.如权利要求2所述的中断请求处理方法,其特征在于,所述基于所述调度信息获取所述在线vCPU对应的调度状态之后,包括:
在所有所述调度状态中存在处理中断状态之后,确定所有所述中断负载数量中的最大中断负载数量与最小中断负载数量;
确定所述最大中断负载数量与所述最小中断负载数量之间的比值;
在所述比值大于第二预设阈值之后,继续执行根据所述中断负载数量在至少一个所述在线vCPU中选择负载最小的在线vCPU作为目标vCPU的步骤。
6.如权利要求5所述的中断请求处理方法,其特征在于,所述确定所述最大中断负载数量与所述最小中断负载数量的比值之后,包括:
在所述比值小于或者等于第二预设阈值之后,选择所有所述在线vCPU中处于处理中断状态的在线vCPU作为目标vCPU。
7.如权利要求1所述的中断请求处理方法,其特征在于,所述检测预设在线列表中是否包括在线虚拟中央处理器vCPU之后,包括:
在确定所述预设在线列表为空表之后,则按照预设存储顺序从预设离线列表中选择一个离线vCPU作为目标vCPU,其中,所述空表未包括在线vCPU。
8.一种中断请求处理系统,其特征在于,包括:
检测模块,用于响应于中断请求,检测预设在线列表中是否包括在线虚拟中央处理器vCPU;
信息获取模块,用于在检测结果为是的情况下,获取至少一个所述在线vCPU对应的调度信息和负载信息;
重定向模块,用于根据所述调度信息与所述负载信息在至少一个所述在线vCPU中选择负载最小的vCPU作为目标vCPU;
处理模块,用于将所述中断请求发送至所述目标vCPU进行中断处理。
9.一种中断请求处理设备,其特征在于,所述中断请求处理设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上执行的中断请求处理程序,所述中断请求处理程序被所述处理器执行时实现如权利要求1至7任一项所述的中断请求处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有中断请求处理程序,所述中断请求处理程序被处理器执行时实现如权利要求1至7任一项所述的中断请求处理方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211557937.XA CN118152063A (zh) | 2022-12-05 | 2022-12-05 | 中断请求处理方法、系统、设备及计算机可读存储介质 |
PCT/CN2023/130987 WO2024120118A1 (zh) | 2022-12-05 | 2023-11-10 | 中断请求处理方法、系统、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211557937.XA CN118152063A (zh) | 2022-12-05 | 2022-12-05 | 中断请求处理方法、系统、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118152063A true CN118152063A (zh) | 2024-06-07 |
Family
ID=91299642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211557937.XA Pending CN118152063A (zh) | 2022-12-05 | 2022-12-05 | 中断请求处理方法、系统、设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118152063A (zh) |
WO (1) | WO2024120118A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9697031B2 (en) * | 2013-10-31 | 2017-07-04 | Huawei Technologies Co., Ltd. | Method for implementing inter-virtual processor interrupt by writing register data in a single write operation to a virtual register |
CN103744716B (zh) * | 2014-01-15 | 2016-09-07 | 上海交通大学 | 一种基于当前vcpu调度状态的动态中断均衡映射方法 |
US11429424B2 (en) * | 2020-07-22 | 2022-08-30 | Vmware, Inc. | Fine-grained application-aware latency optimization for virtual machines at runtime |
CN114371907A (zh) * | 2020-10-15 | 2022-04-19 | 华为技术有限公司 | 一种芯片系统、处理虚拟中断的方法及相应装置 |
CN114253709A (zh) * | 2021-11-18 | 2022-03-29 | 阿里巴巴(中国)有限公司 | 负载调度方法及系统 |
-
2022
- 2022-12-05 CN CN202211557937.XA patent/CN118152063A/zh active Pending
-
2023
- 2023-11-10 WO PCT/CN2023/130987 patent/WO2024120118A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024120118A1 (zh) | 2024-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107291547B (zh) | 一种任务调度处理方法、装置及系统 | |
US20190377604A1 (en) | Scalable function as a service platform | |
EP3039539B1 (en) | Cpu scheduler configured to support latency sensitive virtual machines | |
US10896065B2 (en) | Efficient critical thread scheduling for non privileged thread requests | |
US9772879B2 (en) | System and method for isolating I/O execution via compiler and OS support | |
US9448864B2 (en) | Method and apparatus for processing message between processors | |
US7543306B2 (en) | Method, system, and program for handling device interrupts in a multi-processor environment | |
KR20170139872A (ko) | 멀티 테넌트 기반의 서비스 제공 시스템 및 방법 | |
US8528006B1 (en) | Method and apparatus for performing real-time commands in a non real-time operating system environment | |
US9037703B1 (en) | System and methods for managing system resources on distributed servers | |
US10733022B2 (en) | Method of managing dedicated processing resources, server system and computer program product | |
CN110543359A (zh) | 一种任务队列运行装置 | |
CN112162835A (zh) | 一种异构云环境下实时任务的调度优化方法 | |
CN111897637A (zh) | 作业调度方法、装置、主机及存储介质 | |
US10523746B2 (en) | Coexistence of a synchronous architecture and an asynchronous architecture in a server | |
CN106095548B (zh) | 一种多核处理器系统中分发中断的方法和装置 | |
US20140337864A1 (en) | Multithreaded Event Handling Using Partitioned Event De-Multiplexers | |
KR101330609B1 (ko) | 모바일 멀티코어 가상화 시스템에서 실시간 처리를 보장하기 위한 스케쥴링 방법 | |
CN111752728A (zh) | 消息传输方法及装置 | |
CN114448909B (zh) | 基于ovs的网卡队列轮询方法、装置、计算机设备及介质 | |
CN118152063A (zh) | 中断请求处理方法、系统、设备及计算机可读存储介质 | |
KR102576443B1 (ko) | 연산 장치 및 그 잡 스케줄링 방법 | |
CN114661415A (zh) | 调度方法及计算机系统 | |
US11474868B1 (en) | Sharded polling system | |
GB2504737A (en) | Load balancing in SAP (RTM) system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |