[发明专利]基于用户空闲进程的提高虚拟机性能与可伸缩性的方法有效

专利信息
申请号: 201010595152.2 申请日: 2010-12-20
公开(公告)号: CN102012834A 公开(公告)日: 2011-04-13
发明(设计)人: 陈海波;宋翔;臧斌宇 申请(专利权)人: 复旦大学
主分类号: G06F9/455 分类号: G06F9/455;G06F9/46
代理公司: 上海正旦专利代理有限公司 31200 代理人: 陆飞;盛志范
地址: 200433 *** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 用户 空闲 进程 提高 虚拟机 性能 伸缩性 方法
【说明书】:

技术领域

发明属于计算机操作系统和虚拟化技术领域,具体为一种提高客户虚拟机在多核环境下性能以及可伸缩性的方法。

背景技术

多核技术的出现给操作系统的开发带来了新的机遇和挑战。随着处理器处理核心数目的增多,操作系统的整体性能能否随着硬件计算能力的增强而增强成为当今计算机操作系统发展的一个重要问题,即操作系统的可伸缩性问题。现有操作系统普遍存在着在多核环境下可伸缩性差的现象,即当物理处理核心数目增加到一定数目时,操作系统的整体性能的提升开始放缓,甚至产生下降的现象。现在,双核和四核处理器已经被普遍应用在服务器,桌面乃至嵌入式平台。而在可预见的将来,我们将看到上百个处理器核(CPU core)被封装在一个芯片上。 因而随着多核技术的发展,操作系统在多核环境下的可伸缩性会变得越来越重要。

系统虚拟化是一种将一台物理计算机系统虚拟化为一台或多台虚拟计算机系统(简称虚拟机,Virtual Machine)的技术。作为一种现代操作系统技术,虚拟化技术近年来已经在产业界被广泛运用,例如:服务器整合(server consolidation)、多租户云(multi-tenant cloud)、专署虚拟化设备(virtual appliances)等等。而在系统虚拟环境下,由于系统增加了虚拟化层,客户虚拟机的性能及可伸缩性会受到严重的影响。具体表现为:在虚拟环境下客户虚拟机操作系统的性能及可伸缩性相对于运行在物理机器上的操作系统会产生非常严重的下降。

本发明主要用于解决多核环境下由于虚拟化层导致的客户虚拟机的性能及可伸缩性严重的下降问题。造成客户虚拟机性能及可伸缩性严重下降的主要原因是操作系统的空闲线程(idle thread)和虚拟机监控器的空闲虚拟机(idle Virtual Machine)的协作问题。(空闲线程主要用于当操作系统在某个处理器核心上进入空闲状态时,占用处理器核心并使之进入休眠状态。空闲虚拟机在虚拟机监控器中的角色类同于空闲线程在操作系统中的角色。)造成该协作问题的主要原因是客户虚拟机的空闲线程无法直接使用处理器核心休眠指令(该指令的作用在于使处理器核心进入休眠状态以节约能耗),而必须切换至虚拟机监控器并调度到空闲虚拟机由空闲虚拟机来执行处理器核心休眠指令。此外唤醒一个空闲虚拟机也需要切换至虚拟机监控器。

当客户虚拟机在执行多线程任务时,虚拟机操作系统内部往往会产生对资源的竞争,一些虚拟处理器核心上的线程不得不进入空闲以等待其他虚拟处理器核心上的线程释放其所需的资源。这会导致某些处理器核心进入空闲状态,并诱发操作系统的空闲线程和虚拟机监控器的空闲虚拟机的协作问题。额外的客户虚拟机和虚拟机监控器的切换会增加等待线程的等待时间从而导致执行在客户虚拟机上的多线程任务的执行时间变长,使得客户虚拟机的整体性能及可伸缩性下降。

发明内容

本发明的目的在于提出一种适用于客户虚拟机的轻量级用户态空闲后台进程的设计与使用方式,以提高多核环境下客户虚拟机的性能和伸缩性。

本发明通过使用适用于客户虚拟机的轻量级用户态空闲后台进程,来解决操作系统的空闲线程和虚拟机监控器的空闲虚拟机的协作问题。图1描述了在虚拟处理器核心处于空闲状态时,客户虚拟机的执行行为,即空闲线程和虚拟机监控器的空闲虚拟机的协作的过程。虚线部分表示了在该协作过程中增加的客户虚拟机和虚拟机监控器的切换所导致的额外的处理器资源的开销。通过该发明,虚线部分的开销将被完全消除。

该发明的主要原理为:使用一个轻量级用户态空闲后台进程,在虚拟处理器核心上没有负载时,占用虚拟处理器核心以避免客户虚拟机切换至虚拟机监控器,从而避免由于额外的客户虚拟机和虚拟机监控器的切换而带来的开销。

本发明方法的具体实现过程为:

1) 在客户虚拟机中执行一个低优先级的用户态空闲后台进程,该进程会在每个虚拟处理器核心上部署一个空闲后台子线程。

2) 空闲后台子线程在虚拟处理器核心上有负载时不会得到执行。这样实现使得在虚拟处理器核心上有用户线程负载时,空闲后台子线程不会对用户线程造成任何影响。

3) 在虚拟处理器核心上没有负载时,空闲后台子线程执行占用虚拟处理器核心。这样实现使得在虚拟处理器核心上没有负载时,不会调度到空闲线程,因此不会切换至虚拟机监控器,从而避免了由于额外的客户虚拟机和虚拟机监控器的切换而带来的开销。

图2描述了使用了空闲进程后,虚拟处理器核心处于空闲状态时,客户虚拟机的执行行为:

1) 当客户虚拟机中的一个处理器核心处于空闲状态时,该处理器核心直接从用户线程切换到后台空闲线程;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201010595152.2/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top