[发明专利]一种基于并行应用阶段检测的虚拟时间片调度方法及系统有效
申请号: | 201710290453.6 | 申请日: | 2017-04-28 |
公开(公告)号: | CN107193631B | 公开(公告)日: | 2019-09-13 |
发明(设计)人: | 金海;吴松;赵新宇 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/48;G06F9/50 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 李智;曹葆青 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 并行应用 缓存缺失 时间片 虚拟机 时间片调度 虚拟化环境 运行过程 虚拟 缓存信息 阶段动态 历史数据 通信阶段 通信需求 性能问题 虚拟化 运行时 自适应 检测 采集 | ||
本发明公开了一种基于并行应用阶段检测的虚拟时间片调度方法及系统,其中方法的实现包括:采集并行应用在虚拟机内运行过程中产生的缓存缺失数据;根据当前收集的缓存信息和已经收集到的历史数据判断并行应用处于计算阶段还是通信阶段;针对并行应用的不同执行阶段采取自适应的虚拟机时间片调节策略,最大限度地满足并行应用在运行过程中的计算和通信需求。本发明针对不同类型的并行应用在虚拟化环境下的性能问题,根据并行应用在运行时的缓存缺失信息来区分其执行阶段并根据不同阶段动态调节虚拟机的时间片,在不打破虚拟化透明性的前提下,可以有效降低并行应用的同步开销以及短时间片造成的缓存缺失,可以提高并行应用在虚拟化环境下的性能。
技术领域
本发明属于虚拟化计算技术领域,更具体地,涉及一种基于并行应用阶段检测的虚拟时间片调度方法及系统。
背景技术
随着多核架构和虚拟化技术的快速发展,众多学术机构和企业开始尝试将不同的应用负载放到云端来运行,其中就包含并行应用。为了提高资源的利用率,虚拟化技术可以将多个独立的应用负载整合到同一个物理硬件系统中,然而这将会导致远超物理CPU数量的虚拟CPU被运行在这些物理CPU上,这种资源的过载现象使得并行应用在运行过程中受到严重的性能损失。
众所周知,一个并行应用在运行过程中,计算阶段和通信阶段交替执行,通常情况下通信阶段的同步开销对整体性能有着很重要的影响。并行应用的同步方法可以用几种方式实现,例如在共享内存多线程模型中使用锁或在分布式内存模型中使用消息传递接口(Message Passing Interface,MPI)。
在一个多线程应用中,高性能低开销的自旋锁(spinlock)或者屏障(barrier)通常被用来解决多个线程访问同一资源时的竞争问题。在原生操作系统中,自旋锁的使用是为了保护较短的临界区,当自旋锁已经被占用时,其他试图获取此锁的线程将会忙等待直到锁被释放;当一个线程获取自旋锁后,操作系统将会禁用抢占以避免临界区代码的执行被打断。然而在虚拟化环境中,一个持有自旋锁的线程可能会由于虚拟机CPU(即vCPU)调度被虚拟机监控器(virtual machine monitor,VMM)抢占,此时等待获取锁的vCPU将会忙等待很长的时间直到持有锁的vCPU被再次调度并释放此锁,这将会导致大量的CPU资源被浪费,严重影响了并行应用的性能。在使用屏障的多线程应用中也存在类似的问题。例如,OpenMP中使用屏障进行同步的线程将会在被阻塞之前自旋指定的次数(默认值为300000)。在过载的虚拟化环境下,即使一个线程已经到达屏障,但如果其他线程被VMM抢占,那么该线程也得忙等待很长时间直到其他线程也到达此屏障,这将会使同步点被大幅延后并严重影响并行应用的性能。
在使用消息传递编程模型的并行应用中,多机上进程间的同步需要通过网络消息的收发来进行,例如,一个虚拟机上运行的消息发送进程在执行发送操作时,必须收到其他虚拟机中消息接收进程的确认信息后才能发送消息。当应用程序需要进行大量的通信操作并处于过载的虚拟化环境中时,消息收发例程会给内核的网络协议栈和I/O复用机制造成很大的压力,具体来说,网络协议栈和I/O复用机制在内核实现中使用的自旋锁也会被VMM抢占,从而造成CPU资源的浪费和应用程序性能的损失。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710290453.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种移动机器人多点调度通信方法
- 下一篇:一种图算法友善的强连通图划分方法