CN113626143B - 一种基于用户行为监控的虚拟机调优方法 - Google Patents

一种基于用户行为监控的虚拟机调优方法 Download PDF

Info

Publication number
CN113626143B
CN113626143B CN202110799884.1A CN202110799884A CN113626143B CN 113626143 B CN113626143 B CN 113626143B CN 202110799884 A CN202110799884 A CN 202110799884A CN 113626143 B CN113626143 B CN 113626143B
Authority
CN
China
Prior art keywords
virtual machine
mouse
keyboard operation
qemu
threshold value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110799884.1A
Other languages
English (en)
Other versions
CN113626143A (zh
Inventor
张�浩
薛晋泽
李俊良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kirin Software Co Ltd
Original Assignee
Kirin Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kirin Software Co Ltd filed Critical Kirin Software Co Ltd
Priority to CN202110799884.1A priority Critical patent/CN113626143B/zh
Publication of CN113626143A publication Critical patent/CN113626143A/zh
Application granted granted Critical
Publication of CN113626143B publication Critical patent/CN113626143B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种基于用户行为监控的虚拟机调优方法,应用于具有I/O event loop结构的qemu多线程中,该虚拟机调优方法包括以下步骤:S1:在qemu中增设专用线程,将用户在客户端的鼠标或键盘操作事件传送到协议服务器端;S2:服务器端记录每一次的鼠标或键盘操作事件,并统计总次数;S3:qemu中的使用work线程确定单位时间内鼠标或键盘操作事件的触发频次;以及S4:在云平台中,将该触发频次与预存在虚拟机中的最大阈值和最低阈值进行比较,当触发频次高于最大阈值时,提升虚拟机的调度优先级并动态增加虚拟cpu资源;当触发频次少于最低阈值时,恢复虚拟机调度优先级的默认值并减少虚拟cpu资源。

Description

一种基于用户行为监控的虚拟机调优方法
技术领域
本发明涉及基于qemu+远程访问协议的云桌面办公技术领域,具体来说是一种基于用户行为监控的虚拟机调优方法。
背景技术
当前云办公场景日趋普及,云办公场景中使用的主要技术是在服务器上启动虚拟机,然后用户通过远程访问协议,如spice、vnc等,访问虚拟机。在这种场景下用户遇到最多的问题就是虚拟机会在使用过程中出现卡顿,导致用户的使用体验与台式机相差甚远的问题。
中国发明专利“基于云桌面spice通信协议的性能优化方法”(申请号CN107147738A)公开了一种基于云桌面spice通信协议的性能优化方法。云桌面SPICE通信协议同时支持JPEG编码与H.246编码方式,且可以在同一台物理服务器上交叉使用。通过对参数调整,可以调整每秒钟服务器编码的云桌面图像帧数,从而降低网络带宽和服务器处理请求。该发明主要集中在引入了H.246编解码,以及可调节的帧率来优化通过SPICE协议的访问数据传输,没有涉及到对虚拟机性能的优化。
中国发明专利申请CN108390775A公开了一种基于SPICE的用户体验质量评价方法及系统,以增强自适应能力,减少误差,提高用户体验质量。通过SPICE协议采集服务端、网络层以及客户端在不同场景中与实际用户体验质量对应的相关数据指标;建立相关数据指标与实际用户体验质量之间的映射关系,根据映射关系得到预测用户体验质量。该发明主要是通过SPICE协议采集网络带宽、时延、丢包率、客户端CPU、服务端虚拟机CPU的利用率、内存利用率、带宽利用率等数据,作为质量评价系统的指标,只是单纯给用户的使用体验做出数据量化的说明,没有对于使用体验做出自动化的优化。
中国发明专利申请CN105302511A公开了一种在VDI架构下提升客户端设备显示性能的方法和装置,该方法通过在客户端设备上安装一个图形缓存监控代理以及由该监控代理生成并管理的内存区域。该内存区域用作绘图结果缓冲区,而图形缓存监控代理负责从客户端接收经本地显卡处理过的绘图指令结果并保存到绘图结果缓冲区中。当存在屏幕更新数据时,图形缓存监控代理执行屏幕更新任务将图形缓存中保存的绘图信息发送到屏幕缓冲区进而显示到本地显示器上。该发明通过缓存的方式减少执行绘制屏幕的次数,从而提升用户的使用体验,主要优化的是传输过程中的图像数据。
中国发明专利申请CN108989845A公开了一种基于SPICE协议的视频传输方法,在SPICE协议中加入对H.264视频压缩算法的支持,通过在SPICE服务端加入一个进程,每隔固定时间向客户端发送ICMP报文来获取网络延迟,进而调整视频压缩算法。客户端启动监控程序,监控客户端的I/O操作,若客户端存在I/O操作就请求服务端,让服务端根据网络延迟调整视频发送帧数。该方法主要集中在监控I/O流量的使用情况,来动态调整视频帧的发送情况,帧数过低的话有可能会影响用户的使用体验。
除此以外,当出现卡顿问题时,大多的解决办法是给虚拟机分配更多资源。然而此种解决方式都是当问题发生后,即在用户遇到卡顿、将问题反馈给管理员后,再由管理员来做有限的操作处理。这不可避免的带来了两个不利情况:一是处理时间过长,影响用户的正常使用;二是给管理员造成额外负担,除了需要管理员进行手动运维,还需要管理员具有一定的系统调优能力,浪费不必要的人力。
发明内容
为解决上述问题,本发明的目的是提供一种基于用户行为监控的虚拟机调优方法,通过该方法能够实现自动化的运维和系统调优。
为达到上述目的,本发明所采取的技术手段为:
一种基于用户行为监控的虚拟机调优方法,该虚拟机调优方法应用于具有I/Oevent loop结构的 qemu 多线程中,该虚拟机调优方法包括以下步骤:
S1:在qemu中增设专用线程,该专用线程用于通过远程访问协议触发鼠标或键盘操作事件,用户在客户端的鼠标或键盘操作事件通过专用线程传送到协议服务器端;
S2:服务器端进行响应处理:记录每一次的鼠标或键盘操作事件,并统计鼠标或键盘操作事件发生的总次数;
S3:qemu中的增设work线程,使用work线程根据统计的总次数确定单位时间内鼠标或键盘操作事件的触发频次;以及
S4:在云平台中,将该触发频次与预存在虚拟机中的最大阈值和最低阈值进行比较,当触发频次高于最大阈值时,提升虚拟机的调度优先级并动态增加虚拟cpu资源;当触发频次少于最低阈值时,恢复虚拟机调度优先级的默认值并减少虚拟cpu资源。
其中,该远程访问协议为spice协议,客户端的鼠标或键盘操作事件通过spice协议发送到服务器端的虚拟机里。
其中,在步骤S2中,服务器端qemu接收到鼠标或键盘操作事件后,通过调用虚拟机中的回调函数进行响应处理。
其中,回调函数的响应处理数据记录在全局变量中。
进一步地,该全局变量的数据包含鼠标操作事件的次数、键盘操作事件的次数和时间段。
其中,在步骤S3中,work线程定时接收全局变量的数据,确定单位时间内鼠标或键盘操作事件的触发频次,并记录到全局变量中。
进一步地,云平台定时通过qemu-monitor连接到服务器端,得到服务器端的虚拟机中的鼠标或键盘操作事件的触发频次信息。
本发明的有益效果是:
本发明所述的虚拟机调优方法通过在qemu的远程访问协议中增加对虚拟机内部的鼠标或键盘操作事件的监测来判断当前虚拟机所处的状态来动态对虚拟机进行调优。借此方法,可以解决在实际生产环境中,对于服务器资源的合理分配利用,减少用户在使用虚拟机过程中遇到卡顿现象的问题,提升用户使用体验。同时减轻运维人员的运维压力。
与现有技术相比,本发明的优势在于:
(1)通过在qemu远程访问协议中增加对用户操作行为的记录,从而可以判断虚拟机当前处于忙或闲的状态,可以在需要加大或缩小cpu资源分配时进行动态调整,避免资源过度分配造成的浪费或资源分配不足导致的虚拟机卡顿;
(2)该方法弥补了现有技术不能在qemu的远程传输协议层感知用户的操作行为的不足情况,有助于在云平台下对单个虚拟机出现卡顿场景的问题分析。
附图说明
图1为本发明的虚拟机调优方法的流程框图。
具体实施方式
本发明提供了一种基于用户行为监控的虚拟机调优方法,能够通过对虚拟机内部用户行为的监测,对虚拟机资源进行动态调优,优化用户使用体验。其中,基于用户行为监控主要的应用场景是在云平台办公。本发明是基于qemu+远程访问协议的远程桌面办公,在qemu 多线程中具有I/O event loop的结构。
本发明的虚拟机调优方法其步骤流程如图1所示,主要包括以下步骤:
S1:在qemu中增设专用线程,该专用线程用于通过远程访问协议触发鼠标或键盘操作事件,用户通过远程访问协议客户端访问服务器上的虚拟机,在客户端的一系列鼠标或键盘操作事件通过远程访问协议包封装,再利用专用线程通过网络传送到协议服务器端,这里的协议服务器启动在qemu进程中。本实施例中,远程访问协议为spice协议,客户端可以是主机或终端盒子,只要是支持spice协议的客户端即可。
S2:服务器端进行响应处理:当服务器上的qemu进程收到从客户端发送过来的请求后,会根据spice协议解析收到的消息。当消息类型是鼠标或键盘操作事件时,服务器端qemu接收到鼠标或键盘操作事件后,调用虚拟机中的回调函数进行响应处理,记录每一次的鼠标或键盘操作事件,并统计鼠标或键盘操作事件发生的总次数。
S3:qemu中的增设work线程,使用work线程根据统计的总次数,确定单位时间内鼠标或键盘操作事件的触发频次,并将触发频次信息传送记录到全局变量中。
回调函数将此次事件处理完成后,在退出前会将本次事件的响应处理记录在全局变量中,该全局变量的数据包含鼠标操作事件的次数、键盘操作事件的次数、时间段和触发频次信息。云平台会定时通过qemu-monitor通道连接到服务器端,得到服务器端的虚拟机中的鼠标或键盘操作事件的触发频次信息。
S4:在云平台中,根据获取得到的触发频次信息,将触发频次与预存在虚拟机中的最大阈值和最低阈值进行比较。
当触发频次高于最大阈值时,就表明虚拟机处于hot状态,需要更多资源满足虚拟机性能的需要。此时,提升虚拟机的调度优先级,使得该虚拟机进程有机会获得更多物理CPU的有限使用权,并根据超出最大阈值的情况动态增加虚拟cpu资源。通过使用qemu的cpu热插拔功能热插入一定数量的虚拟cpu,增加虚拟机的虚拟cpu个数。
当触发频次少于最低阈值时,就表明虚拟机处于cold状态,不需要当前分配给虚拟机的这么多资源。此时,对处于cold状态的虚拟机,如果虚拟机进程调度优先级高于默认值,则恢复虚拟机调度优先级的默认值;如果虚拟机当前占用的资源大于最小配置虚拟机的资源,则降低qemu的虚拟cpu个数为最小配置虚拟机的个数,减少虚拟cpu资源。
另外,在本发明中,根据获取的虚拟机hot和cold状态,在云平台虚拟机管理界面标记出来处于hot或cold状态的虚拟机,并将该信息展示在云平台的虚拟机管理界面中。系统管理员可以在云平台对虚拟机的管理展示界面中,方便运维人员直观的查看哪些虚拟机当前处于一个频繁使用的状态,清晰的知道哪些虚拟机当前对系统资源的需求更为强烈,从而可以采取其它必要的措施保障虚拟的使用性能。
本实施例中,通过上述步骤方法对基于spice协议的虚拟机动态调优方法加以说明。通过在qemu监测鼠标或键盘操作事件,从而导出关于虚拟机当前状态是处于hot或者cold的分类,并以此为依据达到对虚拟机进行动态资源调优的目的。当云平台的客户端通过spice协议传输用户的鼠标或键盘操作指令到服务器端的虚拟机后,qemu虚拟机的spice-server会根据收到的请求消息,判断是鼠标还是键盘事件。根据消息类型调用处理响应的回调函数。在回调函数完成返回前会记录此次事件。云平台定时通过qemu-monitor与虚拟机通信获取鼠标或键盘事件的触发频次信息,根据该频次信息来增加或减少给虚拟机分配的物理资源。
在日常办公的场景下,鼠标或键盘操作是使用频率最高的操作,而这些操作主要消耗的是cpu资源,如果物理cpu在调度执行上出现延迟,就会导致虚拟机内部的用户有使用卡顿的感觉。本发明在远程访问协议中有专门的鼠标或键盘事件的回调函数,只要每次回调函数被调用就将调用次数(count)加1。一定的时间间隔(delta_time)之后就能确定单位时间内鼠标或键盘操作事件的触发频次。根据触发频次这个数据能够判断虚拟机用户当前的操作行为,如果用户在做大量的编辑行为,必然会拉高虚拟机内部的cpu使用率,而虚拟机内部二进制指令的执行需要host上cpu能够快速及时的响应执行。此时采取给虚拟机进程提升调度优先级,以及给虚拟机动态分配更多cpu的方式,提升指令的并发执行度,能够达到降低或消除虚拟机内部虚拟机卡顿的目的。

Claims (5)

1.一种基于用户行为监控的虚拟机调优方法,该虚拟机调优方法应用于具有I/Oevent loop结构的 qemu 多线程中,其特征在于该虚拟机调优方法包括以下步骤:
S1:在qemu中增设专用线程,该专用线程用于通过远程访问协议触发鼠标或键盘操作事件,用户在客户端的鼠标或键盘操作事件通过专用线程传送到协议服务器端;
S2:服务器端进行响应处理:记录每一次的鼠标或键盘操作事件,并统计鼠标或键盘操作事件发生的总次数;其中,服务器端qemu接收到鼠标或键盘操作事件后,是通过调用虚拟机中的回调函数进行响应处理的;
S3:qemu中的增设work线程,使用work线程根据统计的总次数确定单位时间内鼠标或键盘操作事件的触发频次;以及
S4:在云平台中,将该触发频次与预存在虚拟机中的最大阈值和最低阈值进行比较,当触发频次高于最大阈值时,提升虚拟机的调度优先级并动态增加虚拟cpu资源;当触发频次少于最低阈值时,恢复虚拟机调度优先级的默认值并减少虚拟cpu资源;
云平台定时通过qemu-monitor连接到服务器端,得到服务器端的虚拟机中的鼠标或键盘操作事件的触发频次信息。
2.根据权利要求1所述的一种基于用户行为监控的虚拟机调优方法,其特征在于:该远程访问协议为spice协议。
3.根据权利要求1所述的一种基于用户行为监控的虚拟机调优方法,其特征在于:回调函数的响应处理数据记录在全局变量中。
4.根据权利要求3所述的一种基于用户行为监控的虚拟机调优方法,其特征在于:该全局变量的数据包含鼠标操作事件的次数、键盘操作事件的次数和时间段。
5.根据权利要求3所述的一种基于用户行为监控的虚拟机调优方法,其特征在于:步骤S3中,work线程定时接收全局变量的数据,确定单位时间内鼠标或键盘操作事件的触发频次,并记录到全局变量中。
CN202110799884.1A 2021-07-15 2021-07-15 一种基于用户行为监控的虚拟机调优方法 Active CN113626143B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110799884.1A CN113626143B (zh) 2021-07-15 2021-07-15 一种基于用户行为监控的虚拟机调优方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110799884.1A CN113626143B (zh) 2021-07-15 2021-07-15 一种基于用户行为监控的虚拟机调优方法

Publications (2)

Publication Number Publication Date
CN113626143A CN113626143A (zh) 2021-11-09
CN113626143B true CN113626143B (zh) 2024-05-28

Family

ID=78379807

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110799884.1A Active CN113626143B (zh) 2021-07-15 2021-07-15 一种基于用户行为监控的虚拟机调优方法

Country Status (1)

Country Link
CN (1) CN113626143B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10283150A (ja) * 1997-04-07 1998-10-23 Fujitsu Ltd コンピュータ装置オペレータの疲労解消支援システム及びそのシステムでの処理をコンピュータに行わせるためのプログラムを記録した記録媒体
CN101916207A (zh) * 2010-08-28 2010-12-15 华为技术有限公司 桌面虚拟化环境下的节能方法、装置及系统
CN103309794A (zh) * 2013-04-16 2013-09-18 北京航空航天大学 一种基于数据采集与关键字挖掘的自动日志生成系统及方法
CN103529954A (zh) * 2013-10-12 2014-01-22 成都阜特科技股份有限公司 一种远程虚拟机键盘鼠标与本地监视器互斥的方法
US8918784B1 (en) * 2010-12-21 2014-12-23 Amazon Technologies, Inc. Providing service quality levels through CPU scheduling
WO2021020746A1 (ko) * 2019-07-31 2021-02-04 고려대학교 산학협력단 가상 머신 관리 장치 및 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005116833A1 (en) * 2004-05-21 2005-12-08 Computer Associates Think, Inc. Method and apparatus for dynamic cpu resource management
US9251033B2 (en) * 2011-07-07 2016-02-02 Vce Company, Llc Automatic monitoring and just-in-time resource provisioning system
US9003037B2 (en) * 2012-07-25 2015-04-07 Vmware, Inc. Dynamic allocation of physical computing resources amongst virtual machines
US9038068B2 (en) * 2012-11-15 2015-05-19 Bank Of America Corporation Capacity reclamation and resource adjustment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10283150A (ja) * 1997-04-07 1998-10-23 Fujitsu Ltd コンピュータ装置オペレータの疲労解消支援システム及びそのシステムでの処理をコンピュータに行わせるためのプログラムを記録した記録媒体
CN101916207A (zh) * 2010-08-28 2010-12-15 华为技术有限公司 桌面虚拟化环境下的节能方法、装置及系统
US8918784B1 (en) * 2010-12-21 2014-12-23 Amazon Technologies, Inc. Providing service quality levels through CPU scheduling
CN103309794A (zh) * 2013-04-16 2013-09-18 北京航空航天大学 一种基于数据采集与关键字挖掘的自动日志生成系统及方法
CN103529954A (zh) * 2013-10-12 2014-01-22 成都阜特科技股份有限公司 一种远程虚拟机键盘鼠标与本地监视器互斥的方法
WO2021020746A1 (ko) * 2019-07-31 2021-02-04 고려대학교 산학협력단 가상 머신 관리 장치 및 방법

Also Published As

Publication number Publication date
CN113626143A (zh) 2021-11-09

Similar Documents

Publication Publication Date Title
US20210184947A1 (en) Automatic capture of detailed analysis information based on remote server analysis
CN111614570B (zh) 一种用于服务网格的流量控制系统及方法
JP3745690B2 (ja) オペレーティング・システムにとってトランスペアレントなメモリ圧縮を管理するシステムおよび方法
CN111352967B (zh) 滑动窗口算法的频次控制方法、系统、设备及介质
CN109218369B (zh) 远程过程调用请求控制方法及装置
JP2009503686A (ja) パフォーマンス情報およびイベント情報を適応的に収集するシステムおよび方法
US20160226728A1 (en) Automatic capture of detailed analysis information for web application outliers with very low overhead
CN108874324B (zh) 一种访问请求处理方法、装置、设备及可读存储介质
US20160124833A1 (en) Analyzing physical machine impact on business transaction performance
US10681400B2 (en) Method and device for transmitting video
EP4395349A1 (en) Camera control method and system, electronic device and storage medium
CN113626143B (zh) 一种基于用户行为监控的虚拟机调优方法
CN113254834B (zh) 页面内容加载方法、装置、电子设备及可读存储介质
CN112350998B (zh) 一种基于边缘计算的视频流传输方法
CN111246084B (zh) 控制帧率方法和装置
CN113079062A (zh) 一种资源调整方法、装置、计算机设备和存储介质
CN107315700B (zh) 一种中断处理方法以及相关装置
EP4089533A2 (en) Pooling user interface engines for cloud ui rendering
CN111224811A (zh) 一种snmp请求监听系统、方法、装置及计算机可读存储介质
WO2020220534A1 (zh) 一种基于中间件的数据处理方法和相关装置
CN111193760B (zh) 一种信息发送方法、装置及存储介质
CN115174567B (zh) 一种送码方法、装置、设备及存储介质
US11921648B1 (en) Statistic-based adaptive polling driver
US6230182B1 (en) Computer language interpreter which can perform time-consuming operations with minimal impact on interactive programs
CN117972360B (zh) Ai大模型的优化方法、装置、终端设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant