一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

调整KVM虚拟机服务进程优先级的方法及应用与流程

2021-12-14 23:37:00 来源:中国专利 TAG:

调整kvm虚拟机服务进程优先级的方法及应用
技术领域
1.本发明是关于计算机领域,特别是关于一种调整kvm虚拟机服务进程优先级的方法及应用。


背景技术:

2.云计算方案只是对物理机上的运行的进程进行了优先级设置,保证重要服务在资源不足的情况下能够继续存活,而kvm虚拟机内部的进程服务没有做这方面的限制。
3.现有技术方案中没有对kvm虚拟机中的进程做优先级设置,而是让用户自己登录到虚拟机中进行设置。这无疑增加了用户的成本,一是因为用户可能不具备这方面的知识;二是用户体验不好,需要登录到虚拟机中进行设置。
4.公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。


技术实现要素:

5.本发明的目的在于提供一种调整kvm虚拟机服务进程优先级的方法及应用,其能够通过设置服务进程的优先级,给重要的服务进程高优先级,在多个服务进程需求的资源超过cpu能够提供的资源时,保证高优先级的服务进程可以正常运行。
6.为实现上述目的,本发明的实施例提供了一种调整kvm虚拟机服务进程优先级的方法。
7.在本发明的一个或多个实施方式中,所述方法包括:宿主机监听消息队列以获取命令规则,其中,所述命令规则由api层下发至所述消息队列;所述宿主机根据所述命令规则判断目标虚拟机是否属于所述宿主机;若是,所述目标虚拟机执行所述命令规则以对所述目标虚拟机中的服务进程设置优先级值。
8.在本发明的一个或多个实施方式中,所述宿主机根据所述命令规则判断目标虚拟机是否属于所述宿主机,包括:所述宿主机验证所述目标虚拟机是否存在于所述宿主机上、以及所述宿主机是否支持所述目标虚拟机的操作系统。
9.在本发明的一个或多个实施方式中,在所述目标虚拟机执行所述命令规则前,还包括:所述宿主机的计算服务将所述命令规则发送至所述宿主机的代理服务;以及所述宿主机的代理服务通过qemu建立所述宿主机和目标虚拟机的连接,并将所述命令规则发送至所述目标虚拟机。
10.在本发明的一个或多个实施方式中,所述目标虚拟机执行所述命令规则以对所述目标虚拟机中的服务进程设置优先级值,包括:所述目标虚拟机根据所述命令规则判断所述服务进程是否存在;若是,获取所述进程服务,并对所述进程服务设置优先级值。
11.在本发明的另一个方面当中,提供了一种调整kvm虚拟机服务进程优先级的方法。
12.在本发明的一个或多个实施方式中,api层接收命令规则并下发至消息队列;所述消息队列解析所述命令规则并发送至对应的宿主机;所述宿主机监听所述消息队列以获取
所述命令规则;所述宿主机根据所述命令规则判断目标虚拟机是否属于所述宿主机;若是,所述目标虚拟机执行所述命令规则以对所述目标虚拟机中的服务进程设置优先级值。
13.在本发明的一个或多个实施方式中,所述消息队列根据所述宿主机建立宿主机队列,持久化所述命令规则,解析所述命令规则并将所述命令规则发送至对应的所述宿主机队列。
14.在本发明的一个或多个实施方式中,所述命令规则包括:动作、虚拟机id、服务进程和优先级值。
15.在本发明的另一个方面当中,提供了一种调整kvm虚拟机服务进程优先级的装置,其包括监听模块、判断模块和执行模块。
16.监听模块,用于供宿主机监听消息队列以获取命令规则,其中,所述命令规则由api层下发至所述消息队列。
17.判断模块,用于供所述宿主机根据所述命令规则判断目标虚拟机是否属于所述宿主机。
18.执行模块,用于供所述目标虚拟机执行所述命令规则以对所述目标虚拟机中的服务进程设置优先级值。
19.在本发明的一个或多个实施方式中,所述判断模块还用于:所述宿主机验证所述目标虚拟机是否存在于所述宿主机上、以及所述宿主机是否支持所述目标虚拟机的操作系统。
20.在本发明的一个或多个实施方式中,所述执行模块还用于:所述宿主机的计算服务将所述命令规则发送至所述宿主机的代理服务;以及所述宿主机的代理服务通过qemu建立所述宿主机和目标虚拟机的连接,并将所述命令规则发送至所述目标虚拟机。
21.在本发明的一个或多个实施方式中,所述执行模块还用于:所述目标虚拟机根据所述命令规则判断所述服务进程是否存在;若是,获取所述进程服务,并对所述进程服务设置优先级值。
22.在本发明的另一个方面当中,提供了一种调整kvm虚拟机服务进程优先级的装置,其包括接收模块、解析模块、监听模块、判断模块和执行模块。
23.接收模块,用于供api层接收命令规则并下发至消息队列。
24.解析模块,用于供所述消息队列解析所述命令规则并发送至对应的宿主机。
25.监听模块,用于供所述宿主机监听所述消息队列以获取所述命令规则。
26.判断模块,用于供所述宿主机根据所述命令规则判断目标虚拟机是否属于所述宿主机。
27.执行模块,用于供所述目标虚拟机执行所述命令规则以对所述目标虚拟机中的服务进程设置优先级值。
28.在本发明的一个或多个实施方式中,所述解析模块还用于:所述消息队列根据所述宿主机建立宿主机队列,持久化所述命令规则,解析所述命令规则并将所述命令规则发送至对应的所述宿主机队列。
29.在本发明的另一个方面当中,提供了一种电子设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的调整kvm虚拟机服务进程优先级的方法。
30.在本发明的另一个方面当中,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述的调整kvm虚拟机服务进程优先级的方法的步骤。
31.与现有技术相比,根据本发明实施方式的调整kvm虚拟机服务进程优先级的方法及应用,其能够通过设置服务进程优先级,将服务进程按照重要程度设置优先级,在cpu资源繁忙时允许优先级低的服务进程退出并释放资源,将资源提供给优先级高的服务进程,保证高优先级的服务进程能够正常运行,实现多服务进程在系统中同时运行。
附图说明
32.图1是根据本发明一实施方式的调整kvm虚拟机服务进程优先级的方法的流程图;
33.图2是根据本发明一实施方式的调整kvm虚拟机服务进程优先级的方法的扩展流程图;
34.图3是根据本发明一实施方式的调整kvm虚拟机服务进程优先级的方法的结构图;
35.图4是根据本发明一实施方式的调整kvm虚拟机服务进程优先级装置的结构图;
36.图5是根据本发明一实施方式的调整kvm虚拟机服务进程优先级计算设备的硬件结构图。
具体实施方式
37.下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
38.除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
39.以下结合附图,详细说明本发明各实施例提供的技术方案。
40.实施例1
41.如图1所示,介绍本发明的一个实施例中调整kvm虚拟机服务进程优先级的方法,该方法包括如下步骤。
42.在步骤s101中,宿主机监听消息队列以获取命令规则。
43.宿主机上的计算服务监听消息队列,获取发往宿主机上的命令规则中的数据。宿主机的计算服务可以接收消息队列的数据,并判断虚拟机的归属。命令规则由api层下发至消息队列。
44.在步骤s102中,宿主机根据命令规则判断目标虚拟机是否属于宿主机。
45.宿主机验证从消息队列获取的命令规则中的数据,验证目标虚拟机是否存在于该宿主机上,以及验证目标虚拟机的操作系统是否是支持的操作系统类型。
46.若验证通过,则宿主机的计算服务发送命令规则中的数据(动作,服务进程,优先级值)至宿主机的代理服务,宿主机的代理服务用于和kvm虚拟机进行通信,把数据发送至目标虚拟机;否则,宿主机向api层发送目标虚拟机不存在的信息。
47.在步骤s103中,目标虚拟机执行命令规则以对目标虚拟机中的服务进程设置优先级值。
48.代理服务接收到命令规则中的数据后,宿主机的代理服务通过qemu建立宿主机和目标虚拟机的数据通道,(该数据通道的两端分别在目标虚拟机内的串口和宿主机上的unix socket文件),实现宿主机和目标虚拟机的连接,并将命令规则中的数据发送至目标虚拟机的代理服务。
49.目标虚拟机的代理服务执行命令规则中规定的动作(举例来说,set动作代表设置进程优先级的操作,unset动作代表取消进程优先级的操作);目标虚拟机根据命令规则判断服务进程是否存在,若是,获取进程服务,并对目标虚拟机中进程服务设置优先级值(优先级值依赖unix操作系统设计的调度方式)。
50.虚拟机中往往会存在多个应用程序,每个应用程序的作用和重要程度不同,当资源出现竞争时,需要确保重要的服务进程不会被系统关闭。根据本发明实施方式的调整kvm虚拟机服务进程优先级的方法,可以在不登录虚拟机且不具备相关的知识的情况下,自行判断服务进程的重要程度设置对应的优先级,保证高优先级的服务进程可以正常运行。
51.实施例2
52.如图2至图3所示,介绍本发明的一个实施例中调整kvm虚拟机服务进程优先级的方法,该方法包括如下步骤。
53.在步骤s201中,api层接收命令规则并下发至消息队列。
54.api层接收用户下发的命令规则,根据命令规则中的虚拟机id,获取目标虚拟机的信息,通过rpc调用把命令规则中的数据发送至消息队列。
55.在本实施例中,命令规则包括:动作、虚拟机id、服务进程和优先级值,其中动作为set或unset,set代表设置服务进程优先级的操作,unset代表取消服务进程优先级的操作;虚拟机id可以是云环境中存在的虚拟机;服务进程可以是虚拟机中用户安装的服务;优先级值可以是平台规定,范围从

20至 19,正值表示低优先级,负值表示高优先级,优先级值为零则表示不调整该服务进程的优先级。
56.在步骤s202中,消息队列解析命令规则并发送至对应的宿主机。
57.消息队列根据注册的宿主机建立以该宿主机名字命名的宿主机队列,持久化(以属性的方式存储数据,并能够持久化到数据库中)api层下发的命令规则,并根据命令规则中的数据解析出对应的宿主机,将命令规则发送至对应的宿主机队列。
58.在步骤s203中,宿主机监听消息队列以获取命令规则。
59.宿主机上的计算服务监听消息队列,获取发往宿主机上的命令规则中的数据。
60.在步骤s204中,宿主机根据命令规则判断目标虚拟机是否属于宿主机。
61.宿主机根据命令规则中的数据判断目标虚拟机是否属于该宿主机,若是,宿主机的计算服务将命令规则中的数据发送至宿主机的代理服务,宿主机的代理服务和目标虚拟机的代理服务建立连接,并将命令规则中的动作数据发送至目标虚拟机的代理服务。
62.在步骤s205中,目标虚拟机执行命令规则以对目标虚拟机中的服务进程设置优先级值。
63.目标虚拟机的代理服务根据接受的命令规则,判断进程服务是否存在,若存在,获取进程服务,并对目标虚拟机中的进程服务设置优先级值。
64.根据本发明实施方式的调整kvm虚拟机服务进程优先级的方法,通过设置命令规则匹配对应的宿主机及目标虚拟机,对目标虚拟机中的服务进程设置优先级值,在系统多
服务进程且资源不足时,保证高优先级的服务进程可以正常运行。
65.如图4所示,介绍根据本发明具体实施方式的调整kvm虚拟机服务进程优先级的装置。
66.在本发明的实施方式中,调整kvm虚拟机服务进程优先级的装置包括监听模块401、判断模块402和执行模块403。
67.监听模块401用于供宿主机监听消息队列以获取命令规则,其中,命令规则由api层下发至消息队列。
68.判断模块402用于供宿主机根据命令规则判断目标虚拟机是否属于宿主机。
69.执行模块403用于供目标虚拟机执行命令规则以对目标虚拟机中的服务进程设置优先级值。
70.判断模块402还用于:宿主机验证目标虚拟机是否存在于宿主机上、以及宿主机是否支持目标虚拟机的操作系统。
71.执行模块403还用于:宿主机的计算服务将命令规则发送至宿主机的代理服务;以及宿主机的代理服务通过qemu建立宿主机和目标虚拟机的连接,并将命令规则发送至目标虚拟机。
72.执行模块403还用于:目标虚拟机根据命令规则判断服务进程是否存在;若是,获取进程服务,并对进程服务设置优先级值。
73.在本发明的实施方式中,调整kvm虚拟机服务进程优先级的装置还包括接收模块404和解析模块405。
74.接收模块404用于供api层接收命令规则并下发至消息队列。
75.解析模块405用于供消息队列解析命令规则并发送至对应的宿主机。
76.解析模块405还用于:消息队列根据宿主机建立宿主机队列,持久化命令规则,解析命令规则并将命令规则发送至对应的宿主机队列。
77.图5示出了根据本说明书的实施例的用于调整kvm虚拟机服务进程优先级的计算设备50的硬件结构图。如图5所示,计算设备50可以包括至少一个处理器501、存储器502(例如非易失性存储器)、内存503和通信接口504,并且至少一个处理器501、存储器502、内存503和通信接口504经由总线505连接在一起。至少一个处理器501执行在存储器502中存储或编码的至少一个计算机可读指令。
78.应该理解,在存储器502中存储的计算机可执行指令当执行时使得至少一个处理器501进行本说明书的各个实施例中以上结合图1

5描述的各种操作和功能。
79.在本说明书的实施例中,计算设备50可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(pda)、手持装置、消息收发设备、可佩戴计算设备、消费电子设备等等。
80.根据一个实施例,提供了一种比如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1

5描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质
中的指令。
81.根据本发明实施方式的调整kvm虚拟机服务进程优先级的方法及应用,其能够通过设置服务进程优先级,将服务进程按照重要程度设置优先级,在cpu资源繁忙时允许优先级低的服务进程退出并释放资源,将资源提供给优先级高的服务进程,保证高优先级的服务进程能够正常运行,实现多服务进程在系统中同时运行。
82.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
83.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
84.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
85.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
86.前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献