一种自旋锁抢占调度算法选择方法及装置制造方法及图纸

技术编号:9935355 阅读:174 留言:0更新日期:2014-04-18 06:59
一种自旋锁抢占调度算法选择方法,其特征在于,包括:采集物理中央处理器的实时信息,所述实时信息包括:虚拟机管理器管理的目标虚拟机上处于非休眠状态的虚拟中央处理器的数量,所述虚拟机管理器为所述物理中央处理器上运行的虚拟机管理器;根据所述实时信息分析所述目标虚拟机竞争自旋锁的竞争场景;根据所述竞争场景计算所述目标虚拟机针对所述自旋锁的等待阈值;从存储的等待阈值与调度算法的关系集中选择所述等待阈值对应的调度算法;执行选择的所述调度算法调度所述目标虚拟机上的虚拟中央处理器运行。

【技术实现步骤摘要】
一种自旋锁抢占调度算法选择方法及装置
本专利技术涉及通信
,具体涉及一种自旋锁抢占调度算法选择方法及装置。
技术介绍
自旋锁是为保护共享资源而提出的一种锁机制,在任何时刻,自旋锁最多只能有一个保持者,即在任何时刻最多只能有一个执行单元获得自旋锁,因自旋锁能够快速响应且支持多核处理器等优点而被广泛采用。在虚拟化环境下,为了最大化利用系统资源,会开启多个虚拟机,如果虚拟中央处理器(virtualcentralprocessingunit,VCPU)的数量大于物理中央处理器(physicalcentralprocessingunit,PCPU)的数量,将会出现多个VCPU竞争同一个PCPU的情况,因此持有自旋锁并处于运行状态的VCPU可能会被竞争同一个PCPU的另一个VCPU抢占,当持有自旋锁的VCPU被抢占后,竞争同一自旋锁的其它VCPU将一直等待下去。目前,主要有两种解决自旋锁抢占的方式,方式一是:在做自旋等待的循环代码中插入暂停指令(如:PAUSE指令),当持有自旋锁的VCPU被抢占后,运行暂停指令使竞争同一自旋锁的其它VCPU进入忙等状态,当检测到暂停指令的循环时间超过等待阈值时,将这些VCPU重新放入等待队列中进行等待;方式二是:当持有自旋锁的VCPU被抢占后,调用调度算法调度虚拟机上的VCPU运行,如协同调度(co-scheduling)算法,该算法可以将出现锁抢占问题的虚拟机上的各个VCPU都调度到不同的PCPU上立刻运行。在方式一中,由于自旋锁的等待阈值是固定的,因此无法随虚拟机管理器(virtualmachinemonitor,VMM)负载运行的变化而动态的调整等待阈值。上述方式二中,由于目前一个VMM只有一种调度算法,因此,当出现锁抢占时只能调用一种调度算法,但这种算法有可能不能解决此时出现的锁抢占问题。可见,VMM的整体性能比较低。
技术实现思路
本专利技术公开了一种自旋锁抢占调度算法选择方法及装置,用于提高虚拟机管理器的整体性能。本专利技术第一方面提供一种自旋锁抢占调度算法选择方法,包括:采集PCPU的实时信息,所述实时信息包括:VMM管理的目标虚拟机上处于非休眠状态的VCPU的数量,所述VMM为所述PCPU上运行的VMM;根据所述实时信息分析所述目标虚拟机竞争自旋锁的竞争场景;根据所述竞争场景计算所述目标虚拟机针对所述自旋锁的等待阈值;从存储的等待阈值与调度算法的关系集中选择所述等待阈值对应的调度算法;执行选择的所述调度算法调度所述目标虚拟机上的VCPU。结合本专利技术第一方面,在本专利技术第一方面的第一种可能的实现方式中,所述采集PCPU的实时信息之前,所述方法还包括:将自旋锁的等待阈值划分为多个阈值区间,每个阈值区间分配一种调度算法;存储所述多个阈值区间与对应的调度算法,得到等待阈值与调度算法的关系集。结合本专利技术第一方面,在本专利技术第一方面的第二种可能的实现方式中,所述实时信息还包括:所述PCPU运行队列中的进程数量和所述PCPU中处于运行状态的PCPU的数量;所述根据所述实时信息分析所述目标虚拟机竞争自旋锁的竞争场景,包括:根据所述实时信息计算所述目标虚拟机竞争自旋锁的竞争指数;根据所述竞争指数分析所述目标虚拟机竞争所述自旋锁的竞争场景。结合本专利技术第一方面的第二种可能的实现方式,在本专利技术第一方面的第三种可能的实现方式中,所述根据所述竞争指数分析所述目标虚拟机竞争所述自旋锁的竞争场景,包括:判断所述目标虚拟机竞争所述自旋锁的竞争指数是否小于或等于预设最小指数,若是,则将所述目标虚拟机竞争所述自旋锁的竞争场景的级别识别为低;若否,则判断所述目标虚拟机竞争所述自旋锁的竞争指数是否小于或等于预设最大指数,若是,则将所述目标虚拟机竞争所述自旋锁的所述竞争场景的级别识别为中;若否,则将所述目标虚拟机竞争所述自旋锁的所述竞争场景的级别识别为高。结合本专利技术第一方面的第三种可能的实现方式,在本专利技术第一方面的第四种可能的实现方式中,所述根据所述竞争场景计算所述目标虚拟机针对所述自旋锁的等待阈值,包括:判断所述竞争场景的级别是否为低,若是,则减小所述目标虚拟机针对所述自旋锁的等待阈值;若否,则判断所述竞争场景的级别是否为中,若是,则保持所述目标虚拟机针对所述自旋锁的等待阈值不变;若否,则增加所述目标虚拟机针对所述自旋锁的等待阈值。本专利技术第二方面提供一种自旋锁抢占调度算法选择装置,包括:采集模块,用于采集PCPU的实时信息,所述实时信息包括:VMM管理的目标虚拟机上处于非休眠状态的VCPU的数量,所述VMM为所述PCPU上运行的VMM;分析模块,用于根据所述采集模块采集的所述实时信息分析所述目标虚拟机竞争自旋锁的竞争场景;计算模块,用于根据所述分析模块分析的所述竞争场景计算所述目标虚拟机针对所述自旋锁的等待阈值;选择模块,用于从存储的等待阈值与调度算法的关系集中选择所述等待阈值对应的调度算法;执行模块,用于执行所述选择模块选择的所述调度算法调度所述目标虚拟机上的VCPU运行。结合本专利技术第二方面,在本专利技术第二方面的第一种可能的实现方式中,所述装置还包括:分配模块,用于将自旋锁的等待阈值划分为多个阈值区间,每个阈值区间分配一种调度算法;存储模块,用于存储所述分配模块获得的所述多个阈值区间与对应的调度算法,得到等待阈值与调度算法的关系集。结合本专利技术第二方面,在本专利技术第二方面的第二种可能的实现方式中,所述实时信息还包括:所述PCPU运行队列中的进程数量和所述PCPU中处于运行状态的PCPU的数量;所述分析模块包括:第一计算单元,用于根据所述采集模块采集的所述实时信息计算所述目标虚拟机竞争自旋锁的竞争指数;分析单元,用于根据所述第一计算单元计算的所述竞争指数分析所述目标虚拟机竞争所述自旋锁的竞争场景。结合本专利技术第二方面的第二种可能的实现方式,在本专利技术第二方面的第三种可能的实现方式中,所述分析单元包括:第一判断子单元,用于判断所述第一计算单元计算的所述目标虚拟机竞争所述自旋锁的竞争指数是否小于或等于预设最小指数;识别子单元,用于当所述第一判断子单元的判断结果为是时,将所述目标虚拟机竞争所述自旋锁的竞争场景的级别识别为低;第二判断子单元,用于当所述第一判断子单元的判断结果为否时,判断所述目标虚拟机竞争所述自旋锁的竞争指数是否小于或等于预设最大指数;识别子单元,还用于当所述第二判断子单元的判断结果为是时,将所述目标虚拟机竞争所述自旋锁的所述竞争场景的级别识别为中;识别子单元,还用于当所述第二判断子单元的判断结果为否时,将所述目标虚拟机竞争所述自旋锁的所述竞争场景的级别识别为高。结合本专利技术第二方面的第三种可能的实现方式,在本专利技术第二方面的第四种可能的实现方式中,所述计算模块包括:第一判断单元,用于判断所述识别子单元识别的所述竞争场景的级别是否为低;第二计算单元,用于当所述第一判断单元的判断结果为是时,减小所述目标虚拟机针对所述自旋锁的等待阈值;第二判断单元,用于当所述第一判断单元的判断结果为否时,判断所述识别子单元识别的所述竞争场景的级别是否为中;第二计算单元,还用于当所述第二判断单元的判断结果为是时,保持所述目标虚拟机针对所述自旋锁的等待阈值不变;第二计算单元,还用于当所述第二判断单元的判断结果为否时,则增加所述目标虚拟本文档来自技高网
...
一种自旋锁抢占调度算法选择方法及装置

【技术保护点】
一种自旋锁抢占调度算法选择方法,其特征在于,包括:采集物理中央处理器的实时信息,所述实时信息包括:虚拟机管理器管理的目标虚拟机上处于非休眠状态的虚拟中央处理器的数量,所述虚拟机管理器为所述物理中央处理器上运行的虚拟机管理器;根据所述实时信息分析所述目标虚拟机竞争自旋锁的竞争场景;根据所述竞争场景计算所述目标虚拟机针对所述自旋锁的等待阈值;从存储的等待阈值与调度算法的关系集中选择所述等待阈值对应的调度算法;执行选择的所述调度算法调度所述目标虚拟机上的虚拟中央处理器运行。

【技术特征摘要】
1.一种自旋锁抢占调度算法选择方法,其特征在于,包括:采集物理中央处理器的实时信息,所述实时信息包括:虚拟机管理器管理的目标虚拟机上处于非休眠状态的虚拟中央处理器的数量,所述虚拟机管理器为所述物理中央处理器上运行的虚拟机管理器;根据所述实时信息分析所述目标虚拟机竞争自旋锁的竞争场景;根据所述竞争场景计算所述目标虚拟机针对所述自旋锁的等待阈值;从存储的等待阈值与调度算法的关系集中选择所述等待阈值对应的调度算法;执行选择的所述调度算法调度所述目标虚拟机上的虚拟中央处理器运行;其中,所述根据所述实时信息分析所述目标虚拟机竞争自旋锁的竞争场景包括:根据所述实时信息计算所述目标虚拟机竞争自旋锁的竞争指数;根据所述竞争指数分析所述目标虚拟机竞争所述自旋锁的竞争场景。2.如权利要求1所述的方法,其特征在于,所述采集物理中央处理器的实时信息之前,所述方法还包括:将自旋锁的等待阈值划分为多个阈值区间,每个阈值区间分配一种调度算法;存储所述多个阈值区间与对应的调度算法,得到等待阈值与调度算法的关系集。3.如权利要求1所述的方法,其特征在于,所述实时信息还包括:所述物理中央处理器运行队列中的进程数量和所述物理中央处理器中处于运行状态的物理中央处理器的数量。4.如权利要求3所述的方法,其特征在于,所述根据所述竞争指数分析所述目标虚拟机竞争所述自旋锁的竞争场景,包括:判断所述目标虚拟机竞争所述自旋锁的竞争指数是否小于或等于预设最小指数,若是,则将所述目标虚拟机竞争所述自旋锁的竞争场景的级别识别为低;若否,则判断所述目标虚拟机竞争所述自旋锁的竞争指数是否小于或等于预设最大指数,若是,则将所述目标虚拟机竞争所述自旋锁的所述竞争场景的级别识别为中;若否,则将所述目标虚拟机竞争所述自旋锁的所述竞争场景的级别识别为高。5.如权利要求4所述的方法,其特征在于,所述根据所述竞争场景计算所述目标虚拟机针对所述自旋锁的等待阈值,包括:判断所述竞争场景的级别是否为低,若是,则减小所述目标虚拟机针对所述自旋锁的等待阈值;若否,则判断所述竞争场景的级别是否为中,若是,则保持所述目标虚拟机针对所述自旋锁的等待阈值不变;若否,则增加所述目标虚拟机针对所述自旋锁的等待阈值。6.一种自旋锁抢占调度算法选择装置,其特征在于,包括:采集模块,用于采集物理中央处理器的实时信息,所述实时信息包括:虚拟机管理器管理的目标虚拟机上处于非休眠状态的虚拟中央处理器的数量,所述虚拟机管理器为所述物理中央处理器上运行的虚拟机管理器;分析模块,用于根据所述采...

【专利技术属性】
技术研发人员:于璠王振国
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1