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

一种基于用户行为监控的虚拟机调优方法与流程

2021-11-10 03:53:00 来源:中国专利 TAG:


1.本发明涉及基于qemu 远程访问协议的云桌面办公技术领域,具体来说是一种基于用户行为监控的虚拟机调优方法。


背景技术:

2.当前云办公场景日趋普及,云办公场景中使用的主要技术是在服务器上启动虚拟机,然后用户通过远程访问协议,如spice、vnc等,访问虚拟机。在这种场景下用户遇到最多的问题就是虚拟机会在使用过程中出现卡顿,导致用户的使用体验与台式机相差甚远的问题。
3.中国发明专利“基于云桌面spice通信协议的性能优化方法”(申请号cn107147738a)公开了一种基于云桌面spice通信协议的性能优化方法。云桌面spice通信协议同时支持jpeg编码与h.246编码方式,且可以在同一台物理服务器上交叉使用。通过对参数调整,可以调整每秒钟服务器编码的云桌面图像帧数,从而降低网络带宽和服务器处理请求。该发明主要集中在引入了h.246编解码,以及可调节的帧率来优化通过spice协议的访问数据传输,没有涉及到对虚拟机性能的优化。
4.中国发明专利申请cn108390775a公开了一种基于spice的用户体验质量评价方法及系统,以增强自适应能力,减少误差,提高用户体验质量。通过spice协议采集服务端、网络层以及客户端在不同场景中与实际用户体验质量对应的相关数据指标;建立相关数据指标与实际用户体验质量之间的映射关系,根据映射关系得到预测用户体验质量。该发明主要是通过spice协议采集网络带宽、时延、丢包率、客户端cpu、服务端虚拟机cpu的利用率、内存利用率、带宽利用率等数据,作为质量评价系统的指标,只是单纯给用户的使用体验做出数据量化的说明,没有对于使用体验做出自动化的优化。
5.中国发明专利申请cn105302511a公开了一种在vdi架构下提升客户端设备显示性能的方法和装置,该方法通过在客户端设备上安装一个图形缓存监控代理以及由该监控代理生成并管理的内存区域。该内存区域用作绘图结果缓冲区,而图形缓存监控代理负责从客户端接收经本地显卡处理过的绘图指令结果并保存到绘图结果缓冲区中。当存在屏幕更新数据时,图形缓存监控代理执行屏幕更新任务将图形缓存中保存的绘图信息发送到屏幕缓冲区进而显示到本地显示器上。该发明通过缓存的方式减少执行绘制屏幕的次数,从而提升用户的使用体验,主要优化的是传输过程中的图像数据。
6.中国发明专利申请cn108989845a公开了一种基于spice协议的视频传输方法,在spice协议中加入对h.264视频压缩算法的支持,通过在spice服务端加入一个进程,每隔固定时间向客户端发送icmp报文来获取网络延迟,进而调整视频压缩算法。客户端启动监控程序,监控客户端的i/o操作,若客户端存在i/o操作就请求服务端,让服务端根据网络延迟调整视频发送帧数。该方法主要集中在监控i/o流量的使用情况,来动态调整视频帧的发送情况,帧数过低的话有可能会影响用户的使用体验。
7.除此以外,当出现卡顿问题时,大多的解决办法是给虚拟机分配更多资源。然而此
种解决方式都是当问题发生后,即在用户遇到卡顿、将问题反馈给管理员后,再由管理员来做有限的操作处理。这不可避免的带来了两个不利情况:一是处理时间过长,影响用户的正常使用;二是给管理员造成额外负担,除了需要管理员进行手动运维,还需要管理员具有一定的系统调优能力,浪费不必要的人力。


技术实现要素:

8.为解决上述问题,本发明的目的是提供一种基于用户行为监控的虚拟机调优方法,通过该方法能够实现自动化的运维和系统调优。
9.为达到上述目的,本发明所采取的技术手段为:一种基于用户行为监控的虚拟机调优方法,该虚拟机调优方法应用于具有i/o event loop结构的 qemu 多线程中,该虚拟机调优方法包括以下步骤:s1:在qemu中增设专用线程,该专用线程用于通过远程访问协议触发鼠标或键盘操作事件,用户在客户端的鼠标或键盘操作事件通过专用线程传送到协议服务器端;s2:服务器端进行响应处理:记录每一次的鼠标或键盘操作事件,并统计鼠标或键盘操作事件发生的总次数;s3:qemu中的增设work线程,使用work线程根据统计的总次数确定单位时间内鼠标或键盘操作事件的触发频次;以及s4:在云平台中,将该触发频次与预存在虚拟机中的最大阈值和最低阈值进行比较,当触发频次高于最大阈值时,提升虚拟机的调度优先级并动态增加虚拟cpu资源;当触发频次少于最低阈值时,恢复虚拟机调度优先级的默认值并减少虚拟cpu资源。
10.其中,该远程访问协议为spice协议,客户端的鼠标或键盘操作事件通过spice协议发送到服务器端的虚拟机里。
11.其中,在步骤s2中,服务器端qemu接收到鼠标或键盘操作事件后,通过调用虚拟机中的回调函数进行响应处理。
12.其中,回调函数的响应处理数据记录在全局变量中。
13.进一步地,该全局变量的数据包含鼠标操作事件的次数、键盘操作事件的次数和时间段。
14.其中,在步骤s3中,work线程定时接收全局变量的数据,确定单位时间内鼠标或键盘操作事件的触发频次,并记录到全局变量中。
15.进一步地,云平台定时通过qemu

monitor连接到服务器端,得到服务器端的虚拟机中的鼠标或键盘操作事件的触发频次信息。
16.本发明的有益效果是:本发明所述的虚拟机调优方法通过在qemu的远程访问协议中增加对虚拟机内部的鼠标或键盘操作事件的监测来判断当前虚拟机所处的状态来动态对虚拟机进行调优。借此方法,可以解决在实际生产环境中,对于服务器资源的合理分配利用,减少用户在使用虚拟机过程中遇到卡顿现象的问题,提升用户使用体验。同时减轻运维人员的运维压力。
17.与现有技术相比,本发明的优势在于:(1)通过在qemu远程访问协议中增加对用户操作行为的记录,从而可以判断虚拟机当前处于忙或闲的状态,可以在需要加大或缩小cpu资源分配时进行动态调整,避免资源
过度分配造成的浪费或资源分配不足导致的虚拟机卡顿;(2)该方法弥补了现有技术不能在qemu的远程传输协议层感知用户的操作行为的不足情况,有助于在云平台下对单个虚拟机出现卡顿场景的问题分析。
附图说明
18.图1为本发明的虚拟机调优方法的流程框图。
具体实施方式
19.本发明提供了一种基于用户行为监控的虚拟机调优方法,能够通过对虚拟机内部用户行为的监测,对虚拟机资源进行动态调优,优化用户使用体验。其中,基于用户行为监控主要的应用场景是在云平台办公。本发明是基于qemu 远程访问协议的远程桌面办公,在qemu 多线程中具有i/o event loop的结构。
20.本发明的虚拟机调优方法其步骤流程如图1所示,主要包括以下步骤:s1:在qemu中增设专用线程,该专用线程用于通过远程访问协议触发鼠标或键盘操作事件,用户通过远程访问协议客户端访问服务器上的虚拟机,在客户端的一系列鼠标或键盘操作事件通过远程访问协议包封装,再利用专用线程通过网络传送到协议服务器端,这里的协议服务器启动在qemu进程中。本实施例中,远程访问协议为spice协议,客户端可以是主机或终端盒子,只要是支持spice协议的客户端即可。
21.s2:服务器端进行响应处理:当服务器上的qemu进程收到从客户端发送过来的请求后,会根据spice协议解析收到的消息。当消息类型是鼠标或键盘操作事件时,服务器端qemu接收到鼠标或键盘操作事件后,调用虚拟机中的回调函数进行响应处理,记录每一次的鼠标或键盘操作事件,并统计鼠标或键盘操作事件发生的总次数。
22.s3:qemu中的增设work线程,使用work线程根据统计的总次数,确定单位时间内鼠标或键盘操作事件的触发频次,并将触发频次信息传送记录到全局变量中。
23.回调函数将此次事件处理完成后,在退出前会将本次事件的响应处理记录在全局变量中,该全局变量的数据包含鼠标操作事件的次数、键盘操作事件的次数、时间段和触发频次信息。云平台会定时通过qemu

monitor通道连接到服务器端,得到服务器端的虚拟机中的鼠标或键盘操作事件的触发频次信息。
24.s4:在云平台中,根据获取得到的触发频次信息,将触发频次与预存在虚拟机中的最大阈值和最低阈值进行比较。
25.当触发频次高于最大阈值时,就表明虚拟机处于hot状态,需要更多资源满足虚拟机性能的需要。此时,提升虚拟机的调度优先级,使得该虚拟机进程有机会获得更多物理cpu的有限使用权,并根据超出最大阈值的情况动态增加虚拟cpu资源。通过使用qemu的cpu热插拔功能热插入一定数量的虚拟cpu,增加虚拟机的虚拟cpu个数。
26.当触发频次少于最低阈值时,就表明虚拟机处于cold状态,不需要当前分配给虚拟机的这么多资源。此时,对处于cold状态的虚拟机,如果虚拟机进程调度优先级高于默认值,则恢复虚拟机调度优先级的默认值;如果虚拟机当前占用的资源大于最小配置虚拟机的资源,则降低qemu的虚拟cpu个数为最小配置虚拟机的个数,减少虚拟cpu资源。
27.另外,在本发明中,根据获取的虚拟机hot和cold状态,在云平台虚拟机管理界面
标记出来处于hot或cold状态的虚拟机,并将该信息展示在云平台的虚拟机管理界面中。系统管理员可以在云平台对虚拟机的管理展示界面中,方便运维人员直观的查看哪些虚拟机当前处于一个频繁使用的状态,清晰的知道哪些虚拟机当前对系统资源的需求更为强烈,从而可以采取其它必要的措施保障虚拟的使用性能。
28.本实施例中,通过上述步骤方法对基于spice协议的虚拟机动态调优方法加以说明。通过在qemu监测鼠标或键盘操作事件,从而导出关于虚拟机当前状态是处于hot或者cold的分类,并以此为依据达到对虚拟机进行动态资源调优的目的。当云平台的客户端通过spice协议传输用户的鼠标或键盘操作指令到服务器端的虚拟机后,qemu虚拟机的spice

server会根据收到的请求消息,判断是鼠标还是键盘事件。根据消息类型调用处理响应的回调函数。在回调函数完成返回前会记录此次事件。云平台定时通过qemu

monitor与虚拟机通信获取鼠标或键盘事件的触发频次信息,根据该频次信息来增加或减少给虚拟机分配的物理资源。
29.在日常办公的场景下,鼠标或键盘操作是使用频率最高的操作,而这些操作主要消耗的是cpu资源,如果物理cpu在调度执行上出现延迟,就会导致虚拟机内部的用户有使用卡顿的感觉。本发明在远程访问协议中有专门的鼠标或键盘事件的回调函数,只要每次回调函数被调用就将调用次数(count)加1。一定的时间间隔(delta_time)之后就能确定单位时间内鼠标或键盘操作事件的触发频次。根据触发频次这个数据能够判断虚拟机用户当前的操作行为,如果用户在做大量的编辑行为,必然会拉高虚拟机内部的cpu使用率,而虚拟机内部二进制指令的执行需要host上cpu能够快速及时的响应执行。此时采取给虚拟机进程提升调度优先级,以及给虚拟机动态分配更多cpu的方式,提升指令的并发执行度,能够达到降低或消除虚拟机内部虚拟机卡顿的目的。
再多了解一些

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

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

相关文献