【基于提高虚拟化实施效率的调度算法分析】效率的算法

容贤家 南宁职业技术学院 530008

【文章摘要】

目前,虚拟化技术在计算机中无处不在,它把计算机的硬件资源抽象化,对虚拟机有着隔离与封装作用,并且能够使服务器的硬件利用率大大提升。最早的虚拟化技术出现在20 世纪60 年代,它包含很多操作系统,实现了物理机的共享。随着硬件资源与多核技术的进一步发展,一台物理机的计算能力已经非常强大,简单的操作系统根本无法使物理资源得到合理利用。因此,小型机对虚拟化技术的需求量越来越大。要想使虚拟机调度器的系统性能与实施效率得到提升,调度算法在其中起着重要作用,本文主要分析调度算法对虚拟处理器中的影响,探究调度算法的具体实现方法。

【关键词】

虚拟化实施效率;调度算法;虚拟处理器

现阶段的虚拟化技术主要包括网络级与系统级两个层面,虚拟化技术的主要目的是优化计算机系统的内部资源与体系结构,给用户提供一个高性能的系统资源。几台低性能的计算机通过虚拟化技术就可以转化为一台高性能的计算机,用户仍然感觉像是多台计算机系统在参与运作,系统虚拟化的重点在于计算机的体系结构与地层系统软件。目前随着硬件资源的进一步发展,计算机的处理能力也有所提高,虚拟技术的出现使计算机处理器充分发挥了作用,虚拟CPU 的调度算法的好坏关系到整个计算机系统的性能。

1 实现虚拟处理器调度算法所需具备的要求

合理、科学的调度算法应该具备准确、高效、公平等特点。虚拟处理器的调度算法在设计过程中应该要将系统的每个方面进行综合考虑。调度算法具备很多特点,具体表现在以下几个方面:

注重虚拟机的依赖性

在XEN(虚拟机监控器)的系统模型中,即使是不同的虚拟机,也可能存在一种依赖的关系。非特级虚拟机只有依靠特级虚拟机才能够充分发挥作用,使计算机系统端口与设备进行连接,一旦非特级虚拟机出现阻塞现象,它必须向特级虚拟机申请连接,待特级处理器处理完申请之后才能够实现调度。这表明,非特级虚拟机的性能在很大程度上受到特级虚拟机的制约,因此,虚拟处理器的调度算法设计需要考虑到虚拟机的依赖性。

重视虚拟机的性能

虚拟机监控器中存在的最大问题就是性能开销,要想使机械性能与物理主机的性能保持一致,就必须降低由于虚拟化给虚拟机造成的性能消耗。调度算法在设计上应该让物理机与虚拟机性能保持接近,避免造成大量处理器资源的浪费,使计算机系统的周期合理发挥作用。

2 调度算法原理

本文主要探讨的是基于信用度的调度算法,在这一调度算法中,每个物理机都会与虚拟机中的运行队列形成关联,虚拟机内都被设置了相应的信用值,它是虚拟机优先值的表现形式,虚拟机会自动将信用度由大到小排列。

虚拟机在运行时会呈现出两种预设值,当它显示为OVER 时表明信用值已经用完,若它显示为UNDER,则表明信用值有剩余。物理机的调度必须在虚拟机的信用值还有剩余时才能够进行。在虚拟处理器的运行过程中,每隔10 毫秒就会出现一次中断现象,一旦出现这种现象, 虚拟机的信用值就会降低,如果信用值全部用完,虚拟机会呈现OVER 状态,无法实现继续调度。

调度算法在初始设计时,虚拟CPU 一般都位于队列尾端,尽管调度器会对队列顺序重新进行调整,不过它必须前面的虚拟处理器完成调度后,才调整队列。响应敏感类的波动会出现延迟现象,并且延迟的时间较长,因此,在设计信用度调度算法时,要为虚拟处理器添加一个运行状态,也就是BOOST 运行状态,这样就能够实现虚拟处理器的优先调度。

3 虚拟机监控器调度算法的计算方式

现阶段,虚拟机监控器已经取得了进一步发展,在最新的虚拟机监控器源代码中,它的默认算法就是基于信用度的调度算法。

每个物理机的处理器都会形成一个虚拟处理器的队列,虚拟处理器一般都是以权值大小为依据进行排列,在调度时,系统会在虚拟处理器的队列中选择一个最符合条件的虚拟处理器,此时,虚拟处理器会停止运行,调度需要按照分配运行时间进行。

如上图1 所示,每个物理处理器与某个虚拟处理器运行队列都存在关联,在队列中一共有3 个虚拟处理器,他们分别以信用值的大小为依据进行排列,此时,物理处理器会被分配至VCPU0,因此, VCPUO 获得调度,并且信用值为1500。当它在运行30 毫秒之后,它的信用度会降低300 个值,物理处理器的使用权会被解除,不过它仍然会以信用值大小重新形成队列。

了解调度算法的计算方式之后,还需要考虑到影响调度算法结果的因素,调度算法的设计需要以虚拟机的不同应用为依据,找出符合虚拟CPU 的调度算法。目前,虚拟化技术已经被广泛应用于计算机系统中,尤其是在服务器中的应用最为常见,它能够实现多个服务器的整合,通过整合可以将这些服务器虚拟至同一物理服务器上。当不同虚拟机同步运行时,其应用需求会出现差异,这通常被称为虚拟机间的不对等性,在调度算法中要充分将这一因素纳入考虑范围内。

4 结束语

现阶段,虚拟化技术的应用越来越广泛,虚拟处理器的调度算法也越来越多样化,本文首先分析了虚拟处理器调度算法实现的条件,然后分析了原理,最后对其计算方式进行了具体阐述,有利于虚拟处理器调度算法进一步改进工作的顺利进行。

【参考文献】

[1] 张远道. 虚拟化数据库管理系统监控工具的设计与实现[D]. 华中科技大学:计算机技术,2012

[2] 夏虞斌,杨春,程旭. FUPS- DV: 用于桌面虚拟化的全时抢占CPU 调度算法[J]. 电子学报,2011(8)

[3] 吴昊,顾宗华. 资源预留调度算法在虚拟化环境中的设计与实现[J]. 小型微型计算机系统,2013(6)

[4] 方锦明. 云计算中基于NSGA Ⅱ 的虚拟资源调度算法[J]. 计算机工程与设计,2012(4)

(图1)022