一种桌面虚拟应用的负载平衡方法
【技术领域】
[0001]本发明涉及信息技术领域,尤其涉及一种桌面虚拟应用的负载平衡方法。
【背景技术】
[0002]现有的桌面虚拟化技术主要是在以下两种架构下执行:
[0003]第一种:虚拟桌面基础架构(VirtualDesktop Infrastructure,VDI)。在该架构下,不是每一个客户端运行应用程序,而是服务器运行应用程序,并将客户端的桌面进行虚拟化。但是,当服务器执行某一个应用程序时,服务器的负载过重,则会造成服务器的吞吐率不高、响应时间长和资源利用率低。
[0004]第二种:虚拟操作系统基础架构(Virtual OS Infrastructure,VOI)。该架构可以让虚拟系统从引导阶段就开始接管计算机硬件平台,直接工作在本机的硬件平台之上,不再需要下层系统的支撑。但是,只支持标准的PC平台的操作系统(Windows、Linux),不能像VDI架构一样通过浏览器随时接入到桌面,以致适用范围比较窄。
【发明内容】
[0005]有鉴于此,实有必要提供一种解决服务器的吞吐率不高、响应时间长、资源利用率低和适用范围窄的技术问题的桌面虚拟应用的负载平衡方法。
[0006]一种桌面虚拟应用的负载平衡方法,其包括如下步骤:
[0007]客户端发送应用程序运行请求至服务器。
[0008]服务器接收到应用程序运行请求后,获取执行应用程序的CPU占用率和显卡占用率。
[0009]服务器判定CPU占用率超过第一预设值或显卡占用率超过第二预设值时,从存储设备中调取应用程序和VOI运行环境。
[0010]服务器发送应用程序和VOI运行环境至客户端。
[0011]客户端接收到应用程序和VOI运行环境后,在VOI运行环境下执行应用程序。
[0012]客户端经服务器发送应用程序执行过程中的数据信息至存储设备,以及输出应用程序的运行结果。
[0013]优选地,获取执行应用程序的CPU占用率和显卡占用率的步骤,包括:
[0014]服务器判断是否存在与应用程序对应的负载检测记录,负载检测记录包括CPU占用率和显卡占用率。
[0015]若存在负载检测记录时,服务器根据负载检测记录得到CPU占用率和显卡占用率。
[0016]若不存在负载检测记录时,服务器运行应用程序得到CPU占用率和显卡占用率,同时,服务器生成与该应用程序对应且包括CPU占用率和显卡占用率的负载检测记录,并将负载检测记录进行存储。
[0017]优选地,在获取执行应用程序的CPU占用率和显卡占用率的步骤之后,还包括:
[0018]服务器判定CPU占用率未超过第一预设值且显卡占用率未超过第二预设值时,获取当前的CPU使用率和显卡使用率。
[0019]服务器判定CPU使用率和CPU占用率之和未超过第一预设值且显卡使用率和显卡占用率之和未超过第二预设值时,从存储设备中调取应用程序和VDI运行环境。
[0020]服务器在VDI运行环境下执行应用程序,并将应用程序执行过程中的数据信息存储至存储设备中。
[0021 ] 服务器发送应用程序的运行结果至客户端。
[0022]优选地,在服务器发送应用程序和VOI运行环境至客户端的步骤,包括:
[0023]服务器将应用程序和VOI运行环境进行压缩得到压缩数据包。
[0024]服务器发送压缩数据包至客户端。
[0025]优选地,在服务器发送压缩数据包至客户端的步骤之后,包括:
[0026]客户端将压缩数据进行解压得到应用程序和VOI运行环境。
[0027]一种桌面虚拟应用的负载平衡方法,其包括如下步骤:
[0028]服务器接收客户端发送的应用程序运行请求。
[0029]服务器获取执行应用程序的CPU占用率和显卡占用率。
[0030]服务器判断CPU占用率是否超过第一预设值且显卡占用率是否超过第二预设值。
[0031]服务器判定CPU占用率超过第一预设值或显卡占用率超过第二预设值时,从存储设备中调取应用程序和VOI运行环境。
[0032]服务器发送应用程序和VOI运行环境至客户端,以供客户端在VOI运行环境下执行应用程序。
[0033]优选地,服务器获取执行应用程序的CPU占用率和显卡占用率的步骤,包括:
[0034]服务器判断是否存在与应用程序对应的负载检测记录,负载检测记录包括CPU占用率和显卡占用率。
[0035]服务器判定存在负载检测记录时,获取负载检测记录中的CPU占用率和显卡占用率。
[0036]优选地,服务器判断是否存在与应用程序对应的负载检测记录的步骤之后,还包括:
[0037]服务器判定不存在负载检测记录时,运行应用程序得到CPU占用率和显卡占用率。
[0038]服务器生成与该应用程序对应且包括CPU占用率和显卡占用率的负载检测记录,并将负载检测记录进行存储。
[0039]优选地,服务器判断CPU占用率是否超过第一预设值且显卡占用率是否超过第二预设值的步骤之后,还包括:
[0040]服务器判定CPU占用率未超过第一预设值且显卡占用率未超过第二预设值时,获取当前的CPU使用率和显卡使用率。
[0041]服务器判定CPU使用率和CPU占用率之和未超过第一预设值且所述显卡使用率和所述显卡占用率之和未超过第二预设值时,从存储设备中调取应用程序和VDI运行环境。
[0042]服务器在VDI运行环境下执行应用程序。
[0043]服务器将应用程序执行过程中的数据信息存储至存储设备中。
[0044]优选地,服务器发送应用程序和VOI运行环境至客户端的步骤,包括:
[0045]服务器压缩应用程序和VOI运行环境为压缩数据包。
[0046]服务器发送压缩数据包至客户端。
[0047]服务器判定执行应用程序的负载超重时,将应用程序交互给客户端在VOI运行环境执行,提升了服务器的吞吐率和资源利用率,及降低了响应时间。
【附图说明】
[0048]图1为一种实施方式的桌面虚拟应用的负载平衡系统的功能模块示意图。
[0049]图2为另一种实施方式的桌面虚拟应用的负载平衡系统的功能模块示意图。
[0050]图3为图1中服务器的功能模块示意图。
[0051]图4为图2中服务器的功能模块示意图。
[0052]图5为一种实施方式的桌面虚拟应用的负载平衡方法的流程图。
[0053]图6为另一种实施方式的桌面虚拟应用的负载平衡方法的流程图。
【具体实施方式】
[0054]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用来限定本发明。
[0055]如图1所示,其为一种实施方式的桌面虚拟应用的负载平衡系统的功能模块示意图。该桌面虚拟应用的负载平衡系统包括服务器10、客户端20和存储设备30。服务器10包括第一接收模块101、第一处理单元102、第一判断模块103、第一调取模块104、压缩模块105和第一发送模块106。客户端20包括第二发送模块201、第二处理单元202、解压缩模块203、输出模块204和第二接收模块205。存储设备30存储有应用程序、VDI运行环境、VOI运行环境与执行应用程序的整个过程中产生的数据信息。
[0056]运行环境(英语:Runtime environment,又称"运行期系统",run-timesystem),指一种把半编译的运行码在目标机器上运行的环境。
[0057]VDI运行环境是指一种代码序列,该代码序列在服务器运行则形成VDI运行环境。应用程序既可以被VDI运行环境的代码序列进行编译解释后执行,也可以在VDI运行环境下直接执行。
[0058]VOI运行环境也是一种代码序列,该代码序列在客户端运行则形成VOI运行环境。应用程序既可以被VOI运行环境的代码序列进行编译解释后执行,也可以在VOI运行环境直接执行。
[0059]第二发送模块201,用于发送应用程序运行请求至第一接收模块101。第一接收模块101,用于接收应用程序运行请求。第一处理单元102,用