已阅读5页,还剩50页未读, 继续免费阅读
(计算机软件与理论专业论文)自适应音频感知的虚拟机调度的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
华中科技大学硕士学位论文 i 摘 要 虚拟化技术的出现与实用化,不仅为提高服务器利用率、整合异构资源带来了 新的解决方案,也为个人用户便捷、高效的使用桌面服务带来了新的机遇。桌面应 用往往有较高的实时需求,而目前的虚拟机环境并不能很好地适应一部分响应敏感 型的应用,如音频应用。在多虚拟机共存的情况下,运行音频应用的虚拟机将在对 计算资源的竞争中频繁地中断,从而导致严重的音频抖动,影响用户的体验。 自适应音频感知的虚拟机调度系统针对上述问题将变长时间片、静态优先级、 基于份额的动态优先级控制等方法有效的结合并运用到虚拟化环境的特殊调度模式 中,实现了一种动态、灵活的虚拟机调度机制,该机制使特权域与硬件虚拟机可以 高频率地轮转交互,保证音频缓冲区的数据充裕,播放流畅。自适应音频感知机制 凭借虚拟机管理器对音频接口状态的捕获和判断,自适应地调整虚拟机的优先级, 选取适合的调度策略来调度和分配 cpu 资源,克服由两层调度模式带来的上层应用 不可预知的缺陷。系统在确保音频应用的高质量运行的同时,也在一定程度上兼顾 了调度的公平性。 除了采取自适应音频感知的方法以适应音频任务的需求变化以外,系统还提供 了与调度机制相应的用户控制接口,支持用户以手动方式设置虚拟机的优先级并进 行监测,扩展了虚拟机管理的灵活性。 实验表明,该系统能够在多虚拟机环境下满足音频的实时需求,大幅度地提高 音频质量。在最好的情况下, “缓冲区欠载”导致的声音抖动现象可被完全消除,保 证了用户良好的音频体验。 关键词:虚拟机调度,自适应音频感知,基于份额的动态优先级,变长时间片 华中科技大学硕士学位论文 ii abstract virtualization technology not only benefits the server performance, also brings opportunitities to common users for convenience of desktop applications. these applications usually have higher requirement for i/o caracteristics, while processor scheduling in vmm currently lose sight of application diversity and i/o responsiveness which is important to these applications (e.g., audio application). audio stream may suffer from severe input/output buffer underrun/overrun, especially in heavy load environment if there is no real- time guarantee for virtualized clients. adaptive audio- aware scheduling system in virtual machine environment is proposed to solve audio problems. vmm scheduler is improved using flexible time- slice, static priority, and proportion- based dynamic priority control to achieve a flexible and dynamic scheduling strategy in virtualized environment. this strategy enables high- frequency interaction between privilege domain and hvm, and then guarantee adequate data in audio buffers can be successively played. in order to overcome the non- pridiction deficiency within scheduler, an adaptive audio- aware solution is proposed to make vmm adaptively adjust the cpu resource allocation by audio capture. scheduler takes priority- based real time strategy to ensure high- quality audio performance when audio task exist, in other computing cases, ensure the fairness of system, and do not need complex configuration. furthermore, for convenience and flexibility in management, user control interface is provided with manually management and monitor supporting. the test results show that audio glitches can completely be eliminated via our optimizations even when the total system load is very high. in the mean time, audio- aware solution and user control interface are proved to have positive effect on flexibility and user experience in virtualized environments. key words: virtual- machine scheduling, adaptive audio- aware, proportion- based dynamic priority, flexible time- slice 华中科技大学硕士学位论文 1 1 绪 论 本章首先概述了课题的研究背景、目的和意义,然后对目前国内外几个常用的、 具有代表性的虚拟机调度算法及相关研究进行了概述和比较,最后介绍了本文的主 要研究内容与写作框架。 1.1 课题背景及意义 虚拟化技术的引入,将单一的计算机系统细分成多个客户执行环境,打破了软 件与硬件之间的紧密耦合关系,从根本上改变着传统的计算方式1。特别是随着多核 处理器时代的到来,在计算机系统变得越来越难以管理的背景下,虚拟化技术以其 出色的资源整合能力被广泛地应用于服务器领域,使得拥有强大性能的服务器能够 提供更加高效、稳定的服务2, 3。但是,服务器虚拟化技术毕竟远离普通用户,普通 用户更加关心的是系统能够提供怎样的接口和服务来适应复杂和多样化的应用需 求。在这种背景下,客户虚拟化技术致力于从不同的角度提供可配置的使用环境, 为普通用户就如何更加高效、便捷的使用桌面资源带来了新的机遇4。 然而,桌面应用程序(比如音频等多媒体应用)不同于传统服务器模式下的应 用,其对系统的 i/o 特性往往有更高的实时要求,但当这些应用程序运行于虚拟化环 境下时,这种实时需求却很难得到满足。其原因主要有两点:1. 不同的虚拟化方法 引入的性能开销、性能瓶颈等问题难以避免5,6,7;2. 目前的虚拟机调度策略大多数 倾向于考虑 cpu 资源的公平共享,但对虚拟机应用的多样性以及i/o 实时性能的保 证甚少考虑8,9,10,11,无法适应一部分响应敏感型的应用,比如音频应用。在多虚拟 机共存的情况下, 如果虚拟化环境不能对音频 i/o 事件提供响应性能的担保,音频的 播放就会出现严重的缓冲区欠载现象,造成声音的失真和抖动,从而影响用户的音 频体验。同时,虚拟机对资源的需求动态变化,运行音频播放任务的虚拟机通常只 在一段时间内要真正使用物理声卡,而其余时间并不一定具有同样的实时需求,那 么,使用传统的固定调度方式(自系统启动之后调度策略就已确定且无法由用户改 变)势必会造成虚拟机对 cpu 资源的共享不当12。如何采取更加符合实际需求的虚 拟机调度策略来消除由“缓冲区欠载”造成的声音抖动,特别是在多虚拟机环境下 协调多任务的不同需求是一个新的挑战和难点。 华中科技大学硕士学位论文 2 本文以 xen 虚拟机管理器作为研究平台,面向音频应用研究了一种自适应音频 感知的虚拟机调度系统。该系统的核心是满足音频实时要求的虚拟机调度,提高音 频这类响应敏感型应用的及时响应能力,以高效率的方式回应用户的要求。为了避 免普通用户在虚拟化环境下使用音频服务时要进行复杂的配置操作,系统设计实现 了一种使虚拟机管理器自觉感知客户虚拟化环境中音频任务的方法,这种方法根据 音频任务需求的变化,动态地调整虚拟机的调度策略。同时,系统提供了基于 xm和 pmonitor 虚拟机监控器的用户控制接口,为系统管理员定制和管理虚拟机带来了灵 活性。 1.2 国内外研究现状 纵观虚拟化技术的发展历程,已有不少学者对如何实施有效的虚拟机调度算法 来实现对底层资源的共享作了研究。在虚拟化环境下,一个虚拟机通常对应一个或 多个虚拟 cpu(即 vcpu) , 调度器并不是以虚拟机为单位进行调度,而是以每一 个 vcpu作为调度单位分时调度(即决定当前哪一个 vcpu可以在真实的物理 cpu 上运行) 13。由于 vcpu在被调度时必然属于某一个虚拟机,因此在某一特定时刻, 虚拟机的调度也就等同于 vcpu的调度。 目前,最具代表性的三种虚拟机调度算法包括:bvt(borrowed virtual time) 调度算法、sedf(simple earliest deadline first)调度算法、以及 credit 调度算法。 近期研究中也出现了以支持实时应用为目的的 alternative 混合调度算法。本小节对 这几种调度算法进行简要的概述和比较。 1.2.1 bvt 调度算法 bvt 调度算法是 stanford 大学的 duda 等在 1999 年提出的一种虚拟机调度算法 14。该算法在单处理器和多处理器上都有实现,能够通过配置对多种任务提供一定 程度的低延时支持,包括硬实时任务、交互任务、批处理任务等。同时,它也根据 各种不同权重的应用在一定程度上的竞争来保证 cpu 资源的公平共享。 在 bvt 算法中,虚拟机的运行时间由“虚拟时间”来控制,具有最早的有效虚 拟机时间(effective virtual time,即 evt)的虚拟机可以被调度到真正的物理 cpu 上运行。因此,为了使延迟敏感型的虚拟机能够及时得到运行的机会,算法允许延 迟敏感型的虚拟机回滚其虚拟时间,或者向将来为自己分配的 cpu 时间借用虚拟时 华中科技大学硕士学位论文 3 间,以表现为较早的 evt。在该算法中,每个虚拟机都维护一组状态变量: ei:表示虚拟机的有效虚拟时间 evt; ai:表示虚拟机实际的虚拟时间 avt; wi:表示虚拟机可以借用的虚拟时间 vt; warpbacki:标识是否允许虚拟时间的借用。 当一个虚拟机解除阻塞或者当前正在运行的虚拟机被阻塞时,调度算法在所有 的虚拟机中选择一个 ei最小的虚拟机投入运行,计算如下: )0:?( iiii wwarpbackae= (1.1) 算法将延迟敏感型的虚拟机的 warpbacki指定为 1,由(1.1)式可知,它可以获得 一个比实际虚拟时间更小的有效虚拟时间 ei,因此能够得到较早的运行机会。 bvt 算法曾经在 xen2.0 作为默认调度算法。该算法是一种工作保留型 (work- conserving)调度算法,不支持精确的 cpu 分配。 1.2.2 sedf调度算法 edf(earliest deadline first)算法是 1970 年代提出的一种用于实时操作系统中 的动态调度算法15, xen3.0 版本对 edf 算法进行修改并生成了 sedf 算法作为默认 调度算法。该算法的基本思想是将所有任务放在优先级队列中,当有任务阻塞或者 有新的任务来临时,从队列中找出时限最短的任务调度运行。 sedf 算法为每一个虚拟机指定了周期 pieriod 和时间片 slice,表示在 peiriod 周 期内该虚拟机必须运行 slice 时间。系统维护一个 vcpu 的可运行队列(runnable queue) ,对所有当前周期内还有可运行时间的 vcpu按照时限递增的顺序进行排序。 同时,系统维护一个 vcpu等待队列(waitqueue) ,对所有当前周期的运行时间已经 用完的 vcpu按照下一周期的开始时间递增的顺序进行排序。 一旦要调度 vcpu时, 选取可运行队列的队首元素。 sedf 算法同时支持工作保留模式(work- conserving)和非工作保留模式 (non- work- conserving) 。在非工作保留模式下,sedf 可以精确地限制某个虚拟机能 够占用的 cpu,即使平台上只有一个虚拟机,该虚拟机也只能使用非工作保留指定 的 cpu 比例。sedf 并不支持 smp 系统下的负载均衡。以双核的系统为例,若虚拟 机 1 在 cpu1 上使用了 80% 的资源,虚拟机 2 在 cpu2 上使用了 80%的资源,那么 需要 30资源的虚拟机 3 无法满足,因为每个 cpu 都只剩下 20%可用。 华中科技大学硕士学位论文 4 1.2.3 credit 调度算法 credit 算法是 xen3.0 中使用的虚拟机调度算法,能保证在 smp(symmetrical multi- processing)上公正运行16。 该算法中, 以物理 cpu 为单位管理本地的 vcpu可运行队列, 该队列根据 vcpu 的状态排序,每个 vcpu的状态可能是 under或者 over,under 表示它的份额 还有剩余,over表示该 vcpu已经透支了它应该分配到的 cpu份额(credits) 。当 vcpu需要列入运行队列时,将其插在相同状态的 vcpu末尾。每个 vcpu运行时, 都将消耗它的 credits。每隔一段时间,由一个全局计算线程重新计算每个 vcpu 消 耗了或者获得了多少份额。每计算一次,则运行队列要重排一次。当一个 vcpu 的 时间片用完或被阻塞时,运行队列的队首元素将被调度运行。在选择的时候,优先 级次序如下:本地 under vcpu 其它物理 cpu 的运行队列中的 under vcpu 本地 over vcpu 其它物理 cpu 的运行队列中的 over vcpu。这一策略充分 利用了系统的 cpu 资源,也保证了在整个物理主机环境内所有 cpu 的负载均衡, 因为只要系统中有可运行的 vcpu时,就不会有任何一个物理 cpu 空闲17。 credit 调度策略是目前 xen的默认调度策略,xen允许为每个虚拟机设置两个参 数:权重(weight)和能限(capacity) 。权重表示虚拟机调度的相对重要性,例如 一个权重为 512 的虚拟机得到的 cpu 资源是一个权重为 256 的虚拟机得到 cpu 资 源的两倍。能限是虚拟机对 cpu 资源的使用上限,能限为 100 表示最多使用一个 cpu,50 表示 0.5 个 cpu,200 表示 2 个 cpu,0 表示没有上限。 1.2.4 alternative 调度算法 r. kaiser 等人提出了一种混合可选的虚拟机调度算法18,19,适用于实时嵌入式 的虚拟化平台。该算法依据虚拟机在实时嵌入式系统中对时间的要求对虚拟机进行 分类:非实时虚拟机、时间驱动型的虚拟机、事件驱动型的虚拟机,并针对不同的 类别选取合适的调度器来提供实时特性的支持。对于时间驱动型的虚拟机,其中的 进程必须能够准确地在预定点开始执行,只要一有进程活动,它们的虚拟机必定要 获得 cpu。对于事件驱动的实时进程来说,首要目标是达到在确定的(很可能极短) 时间范围内对外部事件进行反应的能力。只用一个调度器去满足所有的需求是很难 的,因此这项研究提出的方法是给每种类型的虚拟机分配一个特殊的调度器。对于 所有非实时的虚拟机,采用普通的按比例共享的调度器18,而时间驱动型的虚拟机 华中科技大学硕士学位论文 5 在其占用 cpu 的同时被分配时间窗,同时,保证事件驱动的虚拟机在事件触发时能 够及时得到响应和处理。这些不同的调度器在运行时相互竞争以运行自己这一类的 虚拟机。为了解决其中的冲突,该算法也制定了一系列的优先规则来决定哪个调度 器获得较高的优先级。 上述虚拟机调度算法在不同的背景下被提出,致力于从不同的角度解决不同的 系统性能问题。然而,随着单机计算能力不断提高,虚拟化技术从服务器走向桌面 的趋势愈来愈明显,越来越多的研究开始关注如何提供支持实时要求的资源调度机 制使得桌面应用在虚拟化环境下更加实用、便捷。目前,针对这方面的研究工作尚 处于起步阶段,较多的是基于网络性能优化的研究20,21,22,而专门面向音频应用的研 究还很少见。 1.3 主要研究内容 论文面向音频应用,结合对 cpu 虚拟化方法、i/o 虚拟化方法的分析,就如何 设计实现一种自适应音频感知的虚拟机调度系统进行了深入的研究。该系统的研究 主要涉及三个方面:适用于音频的虚拟机调度,使虚拟机管理器自觉感知音频的自 适应方法和使用户按需配置虚拟机的控制机制。下面对各项研究内容进行简要的介 绍。 1. 面向音频应用的虚拟机调度 虚拟机管理器中的调度策略对系统的 i/o 性能有着显著的影响, 论文首先对目前 虚拟化环境下音频的质量做定量地分析。由于 xen 虚拟机管理器对音频设备的支持 需要基于硬件辅助虚拟化技术,该技术的思想是引入新的指令和新的处理器运行模 式,由硬件来支持客户虚拟机(guest os)和虚拟机管理器的模式切换23,24,因此, 运行音频任务的硬件虚拟机受控于虚拟机监视器,这种依赖关系造成了虚拟机的 i/o 瓶颈,使得虚拟机的调度变得复杂25。此外,xen 虚拟化环境下的 credit 调度器和 sedf 调度器均致力于在计算敏感型虚拟机之间获得良好的 cpu 公平性,当引入了 响应敏感型虚拟机时,这两种调度策略将依赖于不同的虚拟机配置产生复杂的结果, 致使音频这种实时要求很高的应用无法接受26,27。本文基于此问题建立了计算敏感 型虚拟机与响应敏感型虚拟机(运行音频任务的虚拟机)共存的实验环境,对虚拟 化环境下满足音频的实时要求的调度策略展开研究。 华中科技大学硕士学位论文 6 2. 自适应音频感知方法、用户控制机制 在研究了能够满足音频实时要求的虚拟机调度策略的基础上,为了提高用户的 音频体验,适应音频任务的需求变化,论文探讨了一种自适应感知音频的方法。该 方法能够对虚拟客户环境中应用的行为进行感知,动态调整各个虚拟机所拥有的计 算资源,最终协调不同的虚拟机中运行的应用的实时性能和资源利用率。并且,自 适应音频感知的虚拟机调度有利于普通用户在不了解系统接口的情况下得到透明的 高效服务。此外,为了方便系统管理员或用户对虚拟机进行管理,本文还研究了支 持用户按需配置虚拟机的控制机制。 1.4 论文组织结构 本文分为六章,内容安排如下: 第1章概述了本研究的研究背景、目的和意义,然后就虚拟化环境下的虚拟机调 度算法介绍了国内外的研究现状。本章的最后指出了论文的研究方向和写作框架。 第2章分析了音频应用在xen虚拟机管理器现有调度算法的支持下存在的性能问 题;并以此为基础,介绍了自适应音频感知的虚拟机调度系统的设计思路,简要地 描述了系统的结构及功能。 第3章介绍适用于音频应用的虚拟机调度的相关机制与实现。在基于xen虚拟机 调度算法的分析之上,本章结合静态优先级、基于份额的动态优先级控制和变长时 间片等手段详细地阐述了满足音频实时要求的虚拟机调度策略。 第4章首先介绍了系统中基于qemu的自适应音频感知功能,给出了音频捕获与 处理的方法,然后基于xen虚拟机管理器给出了用户控制机制的设计实现。 第5章对系统进行分析评测, 详细介绍了实验环境、 音频性能评测的原理及方法, 基于此测试方法,对比分析了自适应音频感知虚拟机调度系统下的音频性能。 第6章对全文进行总结并展望了未来工作。 最后是致谢和参考文献。 华中科技大学硕士学位论文 7 2 自适应音频感知的虚拟机调度系统的设计 自适应音频感知的虚拟机调度系统基于xen虚拟机管理器设计实现。 本章首先对 xen现有虚拟化环境下的音频质量进行分析, 然后针对在这种环境下存在的问题提出 系统的总体设计思路,最后,结构化地描述系统的结构以及功能模块。 2.1 虚拟化环境下的音频质量分析 为了更好地研究面向音频的虚拟机调度机制,本小节通过实施一系列的实验来 考察现有虚拟化环境下的音频质量,透过对音频抖动做定量的分析,研究系统负载 及虚拟机调度配置对音频性能的影响。这些研究数据为系统的设计提供参考依据。 本实验在qemu (负责为所有的hvm虚拟机模拟硬件设备)中编写了测试程序对 目前xen环境下音频缓冲区的欠载现象(underrun)进行测试,从而考察系统音频抖 动的总体情况。实验采用xen的credit调度器作为测试对象,分两个步骤进行:首先 考察在缺省配置下系统的计算负载对音频性能的影响,然后考察不同的虚拟机权重 配置对音频性能的影响。实验平台启动了四个虚拟机。dom0(拥有真实的物理设备 驱动) ,hvm(基于qemu模拟的硬件虚拟机) ,pv1与pv2(基于“前后端”与dom0 通信的半虚拟化虚拟机) 。其中,hvm安装了mplayer播放器用来播放一个长度约60 秒的wav文件,pv1与pv2则通过npb标准测试程序中的一个hpc程序(ep.a.4)来 模拟系统的负载28,29,并且hpc与mplayer是同时运行的。为了更好地研究这个问题, 实验将hvm配置成一个vcpu,两个pv虚拟机配置成四个vcpu,并且把它们映射 到一个物理核上以便模拟uni- processor(即up)下的情况。 至于smp的情况,通过 上述经验的积累会使问题得到很大的简化。 2.1.1 计算负载对音频的影响 为了更好地考察hpc负载对音频播放的影响,这组实验采用xen的缺省配置,即 采用credit调度器且不对虚拟机的参数做任何调整。在上述四个虚拟机都启动之后, 所有虚拟机的权重(weight)值都默认为256, 能限(capacity)值都默认为0。 这组实验分以下两个步骤进行: 1. 只有 pv1 运行 hpc 程序用以模拟“轻”负载; 华中科技大学硕士学位论文 8 2. pv1 与 pv2 同时运行 hpc 程序用以模拟“重”负载。 图2.1对比反映了第一、第二种情况下的音频性能。其中,图2.1(a)显示了在单ep 负载下的underrun情况,图2.1(b)显示了在双倍ep负载下的underrun情况。纵坐标表示 一次underrun持续了多长时间(以毫秒计算) ,横坐标记录了underrun的次数。 数据总长度: 1 0 6 1 4 5 2 4 ( b y t e s ) , 预计播放时间: 6 0 . 1 7 3 0 3 9 ( s e c o n d s ) , 实际播 放时间: 6 6 . 0 2 8 9 1 2 ( s e c o n d s ) u n d e r r u n 总时长: 5 . 9 5 0 7 3 7 ( s e c o n d s ) , u n d e r r u n 总次数: 2 0 8 0 3 0 6 0 9 0 1 2 0 1 5 0 1 8 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 1 0 01 1 11 2 21 3 31 4 41 5 51 6 61 7 71 8 81 9 9 u n d e r r u n 次数 u n d e r r u n 持续时间( m s ) u n d e r r u n (a) 单ep负载下的underrun情况 数据总长度: 2 3 2 3 8 8 1 6 ( b y t e s ) , 预计播放时间: 1 3 1 . 7 3 9 3 2 0 ( s e c o n d s ) , 实际播放时间: 2 9 6 . 7 0 4 4 4 9 ( s e c o n d s ) u n d e r r u n 总时长: 1 6 5 . 0 0 9 8 2 2 ( s e c o n d s ) , u n d e r r u n 总次数: 1 6 5 2 0 1 5 0 3 0 0 4 5 0 6 0 0 7 5 0 9 0 0 11 0 6 2 1 1 3 1 6 4 2 1 5 2 6 6 3 1 7 3 6 8 4 1 9 4 61 0 5 11 1 5 61 2 6 11 3 6 61 4 7 11 5 7 6 u n d e r r u n 次数 u n d e r r u n 持续时间( m s ) u n d e r r u n (b) 两倍ep负载下的underrun情况 图2.1 不同hpc负载下的音频性能比较 在这组实验中,通过观察xentop提供的监测结果可知: pv1与pv2的物理cpu 利用率之和基本保持在95%以上, 而domain0和hvm的物理cpu利用率均在5%之下。 最坏的情况下,hvm的cpu利用率仅占2%左右。图2.1揭示了三个现象: 华中科技大学硕士学位论文 9 1. 播放时间延长:当运行hpc的pv1与pv2虚拟机并行时,实验中的wav音乐 文件用了超过296秒才播放完毕。然而,此文件在普通情况下应该在60秒左 右结束。这是因为hvm中的音频播放程序在运行的过程中不断被中断,因 此播放器不得不试图不断地重写 “未被播放的数据” ,导致播放时间延长。 2. “多余的数据”被写入缓冲区:在pv1与pv2同时运行hpc程序的情况下这 种现象尤为明显,这主要也是由于播放器的重写操作造成的。 3. underrun持续时间长:由图2.1(b)可知,underrun的持续时间普遍都在0.15秒 以上。其原因是当underrun发生时,hvm中的音频播放程序将假设本次 underrun由设备操作失败引起,因此在进一步写入数据之前执行重新打开设 备的操作,由此引入了严重的开销,加剧了播放延迟。 实际上,这种较长 的underrun也是用户能感受到的主要的声音抖动源。 2.1.2 调度器配置对音频的影响 为了在无其他因素干扰的情况下更好地分析虚拟机权重对音频性能的影响,这 组实验在虚拟平台上保留三个虚拟机:dom0,hvm和一个pv虚拟机。其中,dom0 和hvm的权重 (weight) 值固定为256, 通过依次减少pv虚拟机的权重来观察underrun 的变化情况,具体情况如图2.22.4。测试选择的配置如下: 1. weightdom0 = weighthvm = 256, weightpv = 100; 2. weightdom0 = weighthvm = 256, weightpv = 20; 3. weightdom0 = weighthvm = 256, weightpv = 1。 数据总长度: 1 1 2 6 3 5 9 2 ( b y t e s ) , 预计播放时间: 6 3 . 8 5 2 5 6 2 ( s e c o n d s ) 实际播放时 间: 8 1 . 0 5 7 9 2 7 ( s e c o n d s ) u n d e r r u n 总时长: 1 7 . 2 6 1 2 1 9 ( s e c o n d s ) , u n d e r r u n 总次数: 4 3 6 0 5 0 1 0 0 1 5 0 2 0 0 2 5 0 3 0 0 14 99 71 4 51 9 32 4 12 8 93 3 73 8 54 3 3 u n d e r r u n 次数 u n d e r r u n 持续时间( m s ) u n d e r r u n 图2.2 weightdom0weighthvm=256, weightpv=100配置下的underrun情况 华中科技大学硕士学位论文 10 在pv虚拟机权重等于100的“高干扰”情况下,underrun如图2.2所示。由图可知, underrun的发生次数达到了436次,一次underrun持续时间的峰值超过了267ms。由 xentop可以观察到pv虚拟机的物理cpu利用率大部分时间维持在95以上。 数据总长度: 1 0 9 6 7 6 1 6 ( b y t e s ) , 预计播放时间: 6 2 . 1 7 4 6 9 4 ( s e c o n d s ) 实际播放时 间: 7 7 . 4 5 5 2 3 1 ( s e c o n d s ) u n d e r r u n 总时长: 1 5 . 4 0 7 0 8 5 ( s e c o n d s ) , u n d e r r u n 总次数: 3 7 0 0 4 0 8 0 1 2 0 1 6 0 2 0 0 2 4 0 14 07 91 1 81 5 71 9 62 3 52 7 43 1 33 5 2 u n d e r r u n 次数 u n d e r r u n 持续时间( m s ) u n d e r r u n 图2.3 weightdom0weighthvm=256, weightpv=20配置下的underrun情况 pv的权重值为20时,视之为“普通干扰” 。 “普通干扰”下的underrun情况如图 2.3所示。由图可知,underrun的发生次数为370次,一次underrun持续时间的峰值在 204ms左右。在这种情况下, xentop的观察结果显示pv虚拟机的物理cpu利用率较其 权重为100时有所降低,但是大部分时间仍然非常高(维持在92以上) 。 数据总长度: 1 0 8 0 9 5 6 8 ( b y t e s ) , 预计播放时间: 6 1 . 2 7 8 7 3 0 ( s e c o n d s ) 实际播放时间: 7 1 . 0 7 7 7 4 0 ( s e c o n d s ) u n d e r r u n 总时长: 9 . 8 6 2 8 8 0 ( s e c o n d s ) , u n d e r r u n 总次数: 2 7 0 0 5 0 1 0 0 1 5 0 2 0 0 2 5 0 3 0 0 13 05 98 81 1 71 4 61 7 52 0 42 3 32 6 2 u n d e r r u n 次数 u n d e r r u n 持续时间( m s ) u n d e r r u n 图2.4 weightdom0weighthvm=256, weightpv=1配置下的underrun情况 华中科技大学硕士学位论文 11 pv的权重值为1时,对应于“低干扰”的情况。 “低干扰”下的underrun情况如 图2.4所示。由图可知,underrun的发生次数降低为270次,一次underrun持续时间的 峰值却又返回了242ms。在这种情况下, xentop的观察结果显示pv虚拟机的物理cpu 利用率较其权重为20时有所降低,但是大部分时间仍然维持在90%以上。 由上述三种情况的对比分析可知,pv虚拟机(其中运行hpc程序)的权重越低, 其underrun发生的可能性就越小 。然而, “长”underrun在三种配置下均有发生,即 使在pv虚拟机的权重下降到1的情况下,仍有许多underrun超过50ms。此外,比较pv 虚拟机在weight=20和weight=1两种配置下的underrun结果可以得出:较低的权重值 并不意味着underrun的持续时间就越短。因此,通过调整虚拟机的权重虽然对改善音 频质量有一定的帮助,但还远远不足以达到消除音频抖动现象的目的,特别是在系 统的计算负载很重的情况下。 综合两组测试的分析结果可以看出, xen虚拟机管理器目前无法满足复杂虚拟化 环境下音频任务的实时需求。 2.2 系统设计思路 针对上述问题,自适应音频感知的虚拟机调度系统的设计思路主要涉及三方面 的内容:面向音频应用的虚拟机调度(系统的核心) 、自适应音频感知 (系统的特色) 和用户控制(系统的实用扩展) 。本小节分别针对这三部分内容对系统的设计进行具 体的介绍。 2.2.1 面向音频应用的虚拟机调度 支持实时要求的调度算法可以是静态,也可以是动态的,前者在系统启动之前 完成所有的调度决策30,31,后者在系统的运行过程中变换调度决策。自适应音频感 知的虚拟机调度系统将静态优先级、基于份额的动态优先级控制以及变长时间片等 方法结合到虚拟化环境的特殊调度模式中,设计实现了一种灵活的、动态的虚拟机 调度策略。当系统中存在正在进行的音频任务时,调度器采取基于优先级控制的实 时方案,保证音频应用的高质量运行;在其它的计算情况下,调度器则根据各个虚 拟机的历史运行情况采取基于份额共享的调度方案,保证系统调度的公平性。 由于虚拟化技术的特性,调度器对虚拟机中的应用类型是不可预知的,这为虚 拟机的调度带来的极大的挑战。因此,系统需要一种方法来辅助调度程序区分不同 华中科技大学硕士学位论文 12 应用类型的虚拟机,比如i/o密集型与计算密集型,最简单、直接的办法就是采用静 态优先级来解决上述问题。音频属于事件驱动型的应用,在xen虚拟化环境下,运行 音频应用的虚拟机与特权域dom0之间存在紧密的依赖关系,所以两者都不需要长时 间地占用cpu资源,而需要在很短的时间内通过事件交互来获取和转换音频数据。 因此,时间片的长度对于这种情况下的调度是很关键的。系统采用变长时间片的方 法,针对不同的应用类型选择适当的调度时长以完成合理的调度切换。 调度的另一个难点便是虚拟机的抢占问题。一般情况下,计算型的虚拟机一旦 拥有了计算资源就会长时间地占用资源,然而,音频请求和响应都不能超过其短时 间的限制。针对这一问题,系统的设计允许运行音频任务的虚拟机或者用户指定的 虚拟机在一定条件下抢占计算密集型的虚拟机。同时,系统也提供了相应的控制手 段避免由过密的抢占导致的性能损耗。为了更精确地实施cpu资源的分配,系统每 隔一段时间便重新计算所有虚拟机的优先级以及占用的cpu份额,并针对运行不同 应用的虚拟机限制其对cpu资源的占用阈值,以此保证系统的cpu公平性在一定程 度上不被破坏。 2.2.2 自适应音频感知 普通用户在不了解系统底层结构,或者不了解虚拟化环境中复杂的用户配置接 口的情况下,系统必须能够基于对不用类型应用的区分来为用户提供服务,并保证 用户获得需要的体验。从虚拟机调度的等级层次中可以看出,虚拟机监控程序 (hypervisor)位于最底层,面对众多的可能性,必须要有预见性32,33;同时,位于 上面层次的必须对底层的调度承担责任,如果出现问题,则系统会做出不理想的决 定,极大的影响各个虚拟机的运行,系统效率大打折扣,对于音频应用来说,这种 自适应性的要求也尤为重要。为了使虚拟化环境下的音频用户能够像在普通的本地 机器上一样享有良好的音频服务,系统应该能够自动地感知音频任务,这样就可以 解决虚拟化环境下虚拟机中的应用不可预知的问题。 感知虚拟机中的音频应用有几种方法,最容易想到的是代理方法,比如在虚拟 机中设置监测模块,此模块监测虚拟机中是否有音频应用的进程在运行,若有这样 的进程则通知虚拟机管理器。然而,在实际应用中xen具备一定的特殊性,即特权域 dom0的存在,它掌握着虚拟机的许多信息。特别的,硬件虚拟机的设备都是由特权 域中移植的qemu来模拟的,包括音频设备。因此,qemu就更有能力知道使用音频 接口的虚拟机的情况。系统正是从qemu入手设计实现了音频感知模块,通过获取音 华中科技大学硕士学位论文 13 频接口的状态标识,判断是否有音频任务被激活,并且获取激活它的虚拟机标识id。 “感知”任务完成后,系统将掌握的信息发送给调度器来调整当前的调度策略,在 音频任务运行的前后不影响其它虚拟机的计算性能和公平性。这一过程,对于用户 来说是完全透明的。 2.2.3 用户控制 由于虚拟机对资源和响应时间的要求不同,在自适应功能并不能预知全部的应 用需求时,系统需要提供一种辅助手段来方便用户配置指定的虚拟机(比如指定调 度参数) 。因此,系统在设计了满足音频实时要求的调度策略的基础上,也设计了相 应的用户控制机制。 xen环境中实现了一套用户控制命令, 比如与调度参数配置相关的命令是通过xm 命令来实现的,用户可以利用它设置虚拟机现有的两个参数:权限(weight)和能限 (capacity) 。但是,对于音频这种对时间非常敏感的应用来说,无论是提高虚拟机 的weight值或者capacity值,都不足以满足其需求,用户不能指定和配置属于自己的 高优先级虚拟机。因此,系统设计了xm方式下配置高优先级虚拟机的用户控制接口。 用户可以通过设置虚拟机的实时参数来指示虚拟机具有何种级别的优先级,从而影 响调度器的调度决定。由于这种手动控制方式独立于调度和音频感知,因此它具备 较好的扩展性,能够适用于系统管理员或者用户指定的任何虚拟机,满足大多数响 应敏感型任务在多虚拟机环境下的需求,而不受限于音频应用。同时,为了方便用 户根据需要及时地、高效地管理管理整个虚拟机平台,自适应音频感知的虚拟机调 度系统基于pmonitor虚拟机监视器设计了可视化的监测模块, 使得用户可以对虚拟机 当前的优先级状态进行实时地监测,从而做出适当的调整。 2.3 系统结构与功能模块 自适应音频感知的虚拟机调度系统以xen虚拟机管理器作为开发平台,在 hypervisor、tools、dom0中都设置了相应的功能模块。从整体结构上看,系统的功 能可以划分为三大模块:cpu调度模块、自适应音频感知模块和用户控制模块,如 图2.5所示。下面分别对这三大模块及其包含的子模块进行具体的描述。 1. cpu调度模块 负责虚拟 cpu 资源的分配和调度,决定了虚拟机能使用多少 cpu 资源,哪个 华中科技大学硕士学位论文 14 vcpu 将会被调度运行。该模块为系统的基础与核心,在用户控制模块中对虚拟机 进行的配置和在自适应音频感知模块中对虚拟机音频应用的感知,最终都会通过 cpu 调度模块进行合理的资源调度。该模块实现了满足音频实时要求的调度功能, 能够保证播放音频的虚拟机或者用户指定的虚拟机得到及时的调度。 hvm虚拟执行环境 tools dom0虚拟执行环境 pmonitor 监控模块 自适应调整模块xm命令模块 xen hypervisor cpu调度模块 qemu 音频感知模块 xenctrl控制模块 音频应用 信息采集模块 图 2.5 系统结构图 2. 自适应音频感知模块 包括音频感知模块、自适应调整模块。音频感知模块负责判断虚拟执行环境下 是否有音频应用被激活。基于判断结果,音频感知模块将信息通过自适应调整模块 传递给 cpu 调度模块,使其自动调整系统的虚拟 cpu 调度策略,以保证音频 i/o 事 件及时响应。 3. 用户控制模块 由 xm命令模块、xenctrl控制模块、信息采集模块、监控模块四个小模块组成。 xm 命令模块、监控模块、xenctrl 控制模块为管理员和用户提供控制接口,支持手 动配置虚拟机的实时参数,用户可以通过 xm命令方式向系统发送请求,同时也可以 在 pmonitor 虚拟机监视器下通过相应的控制面板来完成设置操作。信息采集模块负 责采集从虚拟机调度模块得到的配置信息, 用于在 pmonitor 中以 ui 的形式对虚拟机 的实时状态进行监控。 系统可以在三种工作模式下工作,即自适应音频感知的工作模式、xm命令控制 华中科技大学硕士学位论文 15 下的工作模式、pmonitor 监控的工作模式。每一种工作模式内部的子模块之间调用 关系紧密,而各工作模式相对独立。 2.4 小结 本章首先分析了目前 xen 环境下音频质量的现状。分析结果显示了当前的 xen 环境并不能满足音频的实时需求。导致其性能不佳的原因主要是虚拟机管理器的调 度策略倾向于考虑计算敏感型虚拟机的 cpu 公平性,而忽视了响应敏感型虚拟机的 i/o 特性。对于音频这种时间因素非常关键的任务,其响应延迟问题亟待解决。 这对上述问题,本章对自适应音频感知的虚拟机调度系统的设计思路进行了简 要的介绍。设计的核心是一种能够满足音频的实时需求的虚拟机调度策略,在此基 础上提出了一种让虚拟机管理器自觉感知音频任务的方法,让普通用户能够享受更 好的音频服务。同时,本文也考虑了如何将满足实时需求的调度策略扩展至更通用 的情况,因此设计了一套用户控制机制来使用户能够根据自己的需求配置虚拟机的 优先级。 与系统的设计思路相对应,系统的结构从整体上分为三大功能模块,包括 cpu 调度模块、自适应音频感知模块和用户控制模块。其中,cpu 调度模块是系统的核 心与基础,负责实施虚拟机的调度;自适应音频感知模块是系统的特点,能够自觉 地获取硬件虚拟机内音频应用的激活状态;用户控制模块支持用户手动方式下的调 度参数调整,有利于系统管理员或者用户根据自身的需要配置管理实时虚拟机。 华中科技大学硕士学位论文 16 3 面向音频应用的虚拟机调度 本章首先基于 xen 虚拟机管理器介绍和分析其现有的虚拟机调度策略,然后给 出本系统中满足音频实时需求的虚拟机调度策略的框架,继而详细地阐述这种调度 策略在实施过程中运用的几种手段和机制。 3.1 xen 虚拟机调度分析 bvt、sedf 和 credit 三种调度算法各有特色,但它们的主要立足点都是 cpu 公平性与负载均衡的考量,对于调度的实时性支持不佳。近期的研究表明,当响应 敏感型虚拟机被引入 xen 虚拟机环境后,无论是 credit 调度器还是 sedf 调度器都 将产生不确定的复杂结果,且取决于不用的调度配
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中药露剂工安全培训效果水平考核试卷含答案
- 玻璃釉印工班组考核考核试卷含答案
- 儿童寰枢椎脱位诊疗循证指南解读
- 胰岛的内分泌 96 课件
- 电鸣乐器制作工测试验证能力考核试卷含答案
- 乙丙橡胶装置操作工技能竞赛考核试卷含答案
- 工业车辆维修工保密意识测试考核试卷含答案
- 木地板成型工安全知识竞赛知识考核试卷含答案
- 室内装饰设计师岗位安全宣贯考核试卷含答案
- 维纶热处理操作工岗中岗位知识考核试卷含答案
- 2026年山东省考《申论》真题及答案解析(B卷)
- 中国广电山东网络有限公司2026年度市县公司招聘(145个)笔试历年常考点试题专练附带答案详解
- 2026北京急救中心第一批招聘备考考试题库含答案解析
- ICU危重患者呼吸机管理
- 社会语言学讲稿
- 乡统计站工作制度
- 医美销售技巧培训课件
- 托育食品安全课件
- 2025 初中一年级语文下册《台阶》细节描写作用课件
- 第1讲-创新思维概述
- 2025年氯代碳酸乙烯酯行业分析报告及未来发展趋势预测
评论
0/150
提交评论