论文部分内容阅读
目前工业界,由多核CPU和拥有大量核数的GPU组成的系统架构已经成为云计算中处理混合负载的强有力的平台。然而多个虚拟机之间共享CPU和GPU资源依然存在亟待解决的难题。有效的GPU资源调度策略的缺乏造成GPU密集型负载的性能混乱和GPU资源的浪费。其次负载的异构性使CPU密集型的负载占用大量的CPU和IO资源,这会影响GPU密集型负载的性能。如果对每一个负载定义各自的服务等级协议(Service Level Agreement,简称SLA),那么在混合负载情况下它们的SLA是很难被保证的。最后,由于云计算数据中心需要和用户维持大量的网络连接,而有限的网络带宽资源成为影响用户体验的重要瓶颈。针对上述三个问题,本文提出了一种基于虚拟化的分布式拓扑结构,这是一个能够高效合理地处理GPU与CPU混合资源调度的轻量级框架。该框架由两部分组成,其中第一部分运行在单个物理节点中并负责GPU、CPU和网络带宽资源调度。它采用微软的钩(Hook)技术,通过拦截相关的应用程序编程接口(Application Programming Interface)对虚拟机内应用程序申请的资源进行调度,全过程不对客户操作系统、宿主操作系统、底层驱动程序以及负载程序进行任何修改。框架的第二部分是由独立的主控机器(master)运行,接受外来的用户请求并自动做出仲裁,向受控机器(slave)发出响应指令,最终该受控机器会自动启动新的虚拟机和用户建立起网络连接,响应用户请求。本框架集成了若干资源调度策略,即两个CPU资源调度算法和两个网络带宽资源调度算法。它们分别是开环控制调度策略、自适应控制调度策略、基于公平的资源调度策略、基于共享的资源调度策略。前两者针对CPU资源的调度,后两者针对网络带宽资源的调度。调度策略在实现中引入了自动控制技术,增强了负载运行时性能的稳定性和健壮性,有效控制混合负载的QoS水平。最后实验验证,本文所提出的框架适用于实际混合负载计算场景。主控机器有效地控制受控机器响应用户请求。框架集成的资源调度策略能有效地在运行多个GPU和CPU密集型负载的服务器上进行混合资源的调度,其性能符合设计目标。