一种面向numa架构的虚拟cpu调度优化方法_2

文档序号:8528073阅读:来源:国知局
U的内存块位置 和类型,在将访存密集型VCPU平均分配到不同节点的基础上,保证最大限度的本地内存访 问,非访存密集型VCPU不作处理。该模块的目的在于缓解共享资源竞争和减少远端内存访 问次数。
[0024] (3)NUMA感知的负载均衡步骤:当某个CPU将进入空闲状态时,它会触发负载均衡 步骤,然后优先从本地节点上迀移一个LLC需求小的VCPU到该空闲CPU上运行。该步骤的 执行目的在于维持均衡的共享资源竞争,同时减少不必要的远端内存访问。
[0025] 步骤(1)所述访存特征分析步骤通过统计访存信息来计算每个VCPU的内存块位 置和类型,具体子步骤如下:
[0026] (1. 1)统计在采样周期T内,每个VCPU访问各节点上的内存页的次数;找到各 VCPU访问的内存页次数最多的节点,用该节点的编号表示该VCPU的内存块位置;T为1秒;
[0027] (1. 2)计算各VCPU在采样周期内的LLC需求大小,记为IWMf,然后根据大 小将各VCPU划分成不同的类型,具体如下:
[0028] (1. 2. 1) RLLCref计算公式如下:
【主权项】
1. 一种面向NUMA架构的VCPU调度优化方法,其特征在于包括如下步骤: (1) 访存特征分析步骤,包括如下子步骤: (1. 1)统计在采样周期T内,每个VCPU访问各节点上的内存页的次数;找到各VCPU访 问的内存页次数最多的节点,用该节点的编号表示该VCPU的内存块位置;T为0. 5-5秒; (1. 2)计算各VCPU在采样周期内的LLC需求咕wuf, Rixtrf=aX访问LLC次数/总指令执行数, 其中a是一个比例伸缩常量,用于将Rttcuf的数量级伸缩到10 2量级. (1. 3)根据上阔值hi曲、下阔值lowW及各VCPU的咕UW,确定各VCPU的类型,
LLC-FR类型的VCPU定义为非访存密集型VCPU,LLC-FI和化C-T类型的VCPU定义为 访存密集型VCPU; (2)VCPU周期性划分步骤:在每个采样周期结束后,根据步骤(1)统计的VCPU类型和 内存块位置信息,在将访存密集型VCPU平均分配到不同节点的基础上,保证最大限度的本 地内存访问;非访存密集型VCPU不作处理; (3) 负载均衡步骤;当某个CPU为空闲状态时,分配一个VCPU到该CPU。
2. 根据权利要求1所述的方法,其特征在于,所述的访存特征分析步骤的子步骤(1. 3) 中,所述上阔值hi曲取19-21、下阔值low取2. 5-3. 5,通过选取系统的主要的和常用的应 用程序,测量它们的LLC缺失率和应用程序的大小进行估测。
3. 根据权利要求1所述的方法,其特征在于,所述VCPU周期性划分步骤包括如下子步 骤: (3. 1)建立N个类型为化C-T的集合和N个类型为化C-FI的集合,然后将所有的未分 配的化C-T和化C-FI的VCPU,分别划入对应的集合,相同类型和内存块位置的VCPU划分到 同一集合;N为节点总数; (3.2)判别上述2N个集合是否都为空,是则转子步骤(3. 5),否则转子步骤(3.3); (3. 3)将包含访存密集型VCPU数目最少的节点记为MIN-N0DE; (3.4)选择一个未被分配的VCPU,分配到节点MIN-N0DE,然后跳转到步骤(3.2); (3. 5)结束。
4. 根据权利要求3所述的方法,其特征在于子步骤化4)中,选择未被分配的VCPU包 括如下过程: (4. 1)确定VCPU的类型Type;判别2N个集合中是否至少包含一个类型为化C-T的VCPU,是则将Type设置为UX-T,否则将Type设置为UX-FI; (4. 2)判别类型为Type并且内存块位置为MIN-N0DE节点编号对应的VCPU的集合是 否不为空,是则将该集合的第一个元素记为VCPU1,将VCPU1从该集合中删除;否则从该类 型的其余N-1个集合中找到包含VCPU最多的集合,把该集合的第一个元素记为VCPU1,将 VCPU1从该集合中删除。
5. 根据权利要求1所述的方法,其特征在于,所述负载均衡步骤包括如下子步骤: (5. 1)初始化步骤;用一个节点链表将所有节点链接起来;针对每个节点,使用一个CPU链表将该节点包含的所有CPU按照负载大小降序排序后链接起来; (5. 2)将节点变量node赋为本地节点; (5. 3)判别节点变量node对应节点的CPU链表是否为空,是则从节点链表中删除该节 点,然后跳转到步骤巧.4);否则将CPU变量pcpu赋为节点变量node对应节点的CPU链表 的第一个元素,跳转到步骤(5.5); (5. 4)判别节点链表是否为空,是则跳转到步骤巧.7);否则将节点变量node赋为节点 链表的第一个元素,跳转到步骤(5.3); (5. 5)判别CPU变量pcpu的运行队列中是否有可运行的VCPU,是则将咕Ktef最小的可 运行VCPU记为VCPU1,固龄到步骤(5. 6);否则从节点变量node对应节点的CPU链表中删 除CPU变量pcpu,然后跳转到步骤巧.3); (5. 6)将VCPU1迁移到空闲的CPU,进行子步骤巧.7); 巧.7)结束。
【专利摘要】本发明公开了一种面向NUMA架构的VCPU调度优化方法,具体地:采集每个VCPU的访存信息,分析计算各VCPU的访存特征;根据每个VCPU的内存块位置和类型,在将访存密集型VCPU平均分配到不同NUMA节点的基础上,保证最大限度的本地内存访问;当存在空闲的CPU时,根据CPU负载大小以及CPU所属节点信息,为该空闲的CPU选取一个合适的VCPU来运行。本发明针对访存密集型应用程序在基于NUMA架构的虚拟化环境下的性能问题,根据VCPU的访存特征来优化VCPU的分配和迁移机制,在维持虚拟化层透明性的前提下,可有效地减少远端内存访问和缓解共享资源竞争,从而提高访存密集型应用程序的性能。
【IPC分类】G06F9-50, G06F9-455
【公开号】CN104850461
【申请号】CN201510239097
【发明人】吴松, 金海 , 孙华华, 周理科
【申请人】华中科技大学
【公开日】2015年8月19日
【申请日】2015年5月12日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1