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

数据处理方法及系统与流程

2022-07-16 16:22:08 来源:中国专利 TAG:


1.本说明书实施例涉及计算机技术领域,特别涉及一种数据处理方法。


背景技术:

2.随着计算机技术的不断发展,在虚拟化的场景下,宿主机(host)需要获取到其自身运行的虚拟机(vm)的pebs信息,从而达到在宿主机上监测虚拟机性能,并对其进行优化工作的目的,但是,现在技术中,宿主机只能采集宿主机上的pebs信息,而虚拟机(vm)只能采集虚拟机自己的pebs信息,因此,宿主机无法高效采集虚拟机pebs信息是个待解决的问题。


技术实现要素:

3.有鉴于此,本说明书实施例提供了一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理系统,一种计算设备,一种计算机可读存储介质,一种计算机程序,以解决现有技术中存在的技术缺陷。
4.根据本说明书实施例的第一方面,提供了一种数据处理方法,应用于数据处理系统,所述系统包括宿主机,以及运行在所述宿主机中的虚拟机,其中,
5.所述宿主机,向当前运行的虚拟机发送数据采集指令;
6.所述虚拟机,基于所述数据采集指令将运行状态数据存储至虚拟存储单元,并向所述宿主机发送数据获取指令,其中,所述虚拟存储单元为从虚拟机内存中划分的存储单元;
7.所述宿主机,响应于所述数据获取指令,确定所述虚拟存储单元对应的物理存储单元,并从所述物理存储单元中获取所述运行状态数据。
8.根据本说明书实施例的第二方面,提供了一种数据处理系统,所述系统包括宿主机,以及运行在所述宿主机中的虚拟机,其中,
9.所述宿主机,被配置为向当前运行的虚拟机发送数据采集指令;
10.所述虚拟机,被配置为基于所述数据采集指令将运行状态数据存储至虚拟存储单元,并向所述宿主机发送数据获取指令,其中,所述虚拟存储单元为从虚拟机内存中划分的存储单元;
11.所述宿主机,还被配置为响应于所述数据获取指令,确定所述虚拟存储单元对应的物理存储单元,并从所述物理存储单元中获取所述运行状态数据。
12.根据本说明书实施例的第三方面,提供了一种计算设备,包括:
13.存储器和处理器;
14.所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现所述数据处理方法的步骤。
15.根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现所述数据处理方法的步骤。
16.根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行所述数据处理方法的步骤。
17.本说明书提供的数据处理方法,应用于数据处理系统,所述系统包括宿主机,以及运行在所述宿主机中的虚拟机,其中,所述宿主机,向当前运行的虚拟机发送数据采集指令;所述虚拟机,基于所述数据采集指令将运行状态数据存储至虚拟存储单元,并向所述宿主机发送数据获取指令,其中,所述虚拟存储单元为从虚拟机内存中划分的存储单元;所述宿主机,响应于所述数据获取指令,确定所述虚拟存储单元对应的物理存储单元,并从所述物理存储单元中获取所述运行状态数据。
18.具体地,该应用于数据存储系统的数据处理方法,通过宿主机向当前运行的虚拟机发送数据采集指令的情况下,该虚拟机基于该数据采集指令将运行状态数据存储至虚拟存储单元,并向该宿主机发送数据获取指令;而宿主机则响应于该数据获取指令,确定虚拟存储单元的对应的物理存储单元,并从物理存储单元中获取所述运行状态数据,从而避免了宿主机无法高效采集虚拟机的运行状态数据的问题,进一步便于后续宿主机能够基于该运行状态数据,达到监测虚拟机性能并对其进行优化工作的目的。
附图说明
19.图1是本说明书一个实施例提供的一种数据处理方法的场景图;
20.图2是本说明书一个实施例提供的一种数据处理方法的流程图;
21.图3是本说明书一个实施例提供的一种数据处理方法的一种处理过程流程图;
22.图4是本说明书一个实施例提供的一种数据处理方法的另一种处理过程流程图;
23.图5是本说明书一个实施例提供的一种数据处理系统的结构示意图;
24.图6是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
25.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
26.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
27.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
28.首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
29.pmu:perfermace monitor unit(性能监测单元)。
30.pebs:processor event based sampling(基于采样的处理器事件)。
31.gva:guest virtual address(虚拟机线性地址也称为虚拟机虚拟地址)。
32.gpa:guest physical address(虚拟机物理地址)。
33.hva:host virtual address(宿主机线性地址也称宿主机虚拟地址)。
34.pmi:perfermace monitor interrupt(性能监测单元中断)。
35.hypervisor:虚拟机监测器。
36.ibs(instruction-based sampling):基于指令的采样。
37.aep:apache pass(一种非易失性内存)。
38.cpu:中央处理器。
39.pebs buffer:用于存储pebs的缓存。
40.buffer:缓存。
41.msr:model specific register(一种用于控制cpu运行、功能开关、调试、跟踪程序执行、监测cpu性能等方面的寄存器)。
42.ds area:debug store area(调试存储区域),用于初始化pebs buffer等信息。
43.vm-entry:一种宿主机陷入到虚拟机的流程。
44.随着计算机技术的不断发展,许多cpu具有性能监测单元(performance monitoring unit,pmu),该pmu模块提供了多种采用功能,例如,pebs功能、ibs功能等。以pebs功能为例,该pebs功能可以将cpu在各个时间点的运行状态的采样,并将该采样的运行状态(pebs信息)记录在pebs buffer中,以让用户来做系统以及进程的优化工作。其中,该采样的运行状态包括哪个瞬间的cpu各个寄存器的值、函数调用桟、正在访问的虚拟内存地址、正在执行的进程id等等信息,该信息可以为pebs信息。需要说明的是,该ibs功能对cpu在各个时间点的运行状态的采样,并对采用的运行状态(ibs信息)进行数据处理的具体过程,可以参考针对pebs功能的描述内容中对应或相应的内容,本说明书对此不做具体限定。
45.其中,该ibs信息可以为通过ibs功能采样获得的哪个瞬间的cpu各个寄存器的值、函数调用桟、正在访问的虚拟内存地址、正在执行的进程id等等信息。
46.而在虚拟化场景下,需要在宿主机上采集虚拟机里面的pebs信息,从而来达到在宿主机上监测虚拟机性能并对其做优化工作。例如,宿主机通过获取虚拟机访问内存的冷热信息,将访问频繁的放在普通内存中,将访问不频繁的放到aep中。在实际应用中,aep透明内存实例意在宿主机上统一管理aep和普通内存,并给虚拟机统一呈现为普通内存。
47.但是,目前宿主机(host)只能采集宿主机上的pebs信息,虚拟机(vm)上只能采集虚拟机自己的pebs信息。而宿主机无法高效采集虚拟机pebs信息是个待解决的问题。
48.基于此,在本说明书中,提供了一种数据处理方法,本说明书同时涉及一种数据处理系统,一种计算设备,一种计算机可读存储介质以及一种计算机程序,在下面的实施例中逐一进行详细说明。
49.图1示出了根据本说明书一个实施例提供的一种数据处理方法的场景图,该数据处理方法,应用于数据处理系统,所述系统包括宿主机102,以及运行在所述宿主机102中的虚拟机104,其中,该宿主机102需要采集虚拟机104里面的pebs信息,从而来达到在宿主机102上监测虚拟机104性能并对其做优化工作,基于此,该数据处理系统中的宿主机102,能够向当前运行在其自身的虚拟机104发送数据采集指令。而该虚拟机104在接收到该宿主机
102发送的数据采集指令的情况下,响应于该数据采集指令,采集自身对应的运行状态数据,并将该运行状态数据存储至自身的虚拟存储单元中。之后,该虚拟机104向该宿主机102发送数据获取指令,其中,所述虚拟存储单元为从虚拟机内存中划分的存储单元。该宿主机102在接收到虚拟机104发送的数据获取指令的情况下,响应与该数据获取指令,确定该虚拟机104中的虚拟存储单元所对应的物理存储单元,并从该物理存储单元中获取到虚拟机104采集的运行状态数据,克服了宿主机102无法采集虚拟机104的pebs信息的缺点,从而避免了宿主机102无法高效采集虚拟机104的运行状态数据的问题,进一步便于后续宿主机102能够基于该运行状态数据,达到监测虚拟机104性能并对其进行优化工作的目的。
50.图2示出了根据本说明书一个实施例提供的一种数据处理方法的流程图,该数据处理方法,应用于数据处理系统,所述系统包括宿主机,以及运行在所述宿主机中的虚拟机,该数据处理方法具体包括以下步骤。
51.步骤202:所述宿主机,向当前运行的虚拟机发送数据采集指令。
52.其中,该宿主机可以理解为支持该虚拟机运行的物理机,相应地,该数据采集指令可以理解为宿主机在满足预设数据采集条件的情况下向虚拟机发送的、针对该运行状态数据的获取请求。在实际应用中,该预设数据采集条件可以根据实际应用场景进行设置,本说明书对此不做具体限制,例如,该预设数据采集条件可以理解为预设时间频率,相应地,宿主机在满足预设数据采集条件的情况下向虚拟机发送数据采集指令,可以理解为宿主机根据预设时间频率,向该虚拟机发送数据采集指令,从而能够按照特定时间频率获取到该虚拟机的当前运行状态数据,从而达到对该虚拟机性能进行监测的目的。其中,该预设时间频率可以根据实际应用场景进行设置,例如,1分钟、10秒钟、1秒钟等。
53.再如,该预设数据采集条件可以理解为宿主机是否接收到针对虚拟机的优化指令,相应地,宿主机在满足预设数据采集条件的情况下向虚拟机发送数据采集指令,可以理解为宿主机在接收到针对虚拟机的优化指令的情况下,向该虚拟机发送数据采集指令,从而能够获取到该虚拟机的当前运行状态数据,从而达到对该虚拟机性能进行优化的目的。
54.具体地,数据处理系统中的宿主机,能够向当前运行在其自身的虚拟机发送数据采集指令,在实际应用中,该宿主机能够基于其自身配置的虚拟机管理模块,向当前运行在该宿主机上的虚拟机发送数据采集指令。其中,该虚拟机管理模块可以理解为配置在宿主机上,能够对该宿主机中的虚拟机进行管理的模块。例如,该虚拟机管理模块可以为宿主机上的hypervisor。
55.下面以数据处理方法在宿主机采集虚拟机pebs信息的场景下的应用为例,对宿主机向当前运行的虚拟机发送数据采集指令做进一步说明。基于此,当宿主机需要去采集虚拟机的pebs信息的情况下,该宿主机能够通过其自身配置的hypervisor,去使能虚拟机的pebs功能,也即是,宿主机通过hypervisor向虚拟机发送数据采集指令,从而基于该数据采集指令触发虚拟机的pebs功能。
56.步骤204:所述虚拟机,基于所述数据采集指令将运行状态数据存储至虚拟存储单元,并向所述宿主机发送数据获取指令。
57.其中,所述虚拟存储单元为从虚拟机内存中划分的存储单元。
58.该运行状态数据可以理解为基于pebs功能采样获得的pebs信息,或基于ibs功能采样获得的ibs信息。为了避免赘述,本说明书实施例中以运行状态信息为pebs信息为例进
行解释说明。该运行状态数据为ibs信息的解释,可参考运行状态信息为pebs信息的解释内容,本说明书在此不过多赘述。
59.在本说明书提供的实施例中,该运行状态数据为pebs信息。
60.该虚拟存储单元可以理解为虚拟机内存中用于存储该运行状态数据的单元,在实际应用中,可以从虚拟机内存中划分一块区域用来存储运行状态信息,例如,该虚拟存储单元可以为虚拟机内存中用于存储该pebs信息的pebs buffer,或存储该ibs信息的buffer。相应地,该数据获取指令可以理解为虚拟机向宿主机发送的、用于指示宿主机获取该运行状态数据的指令,例如,该数据获取指令可以为虚拟机触发的pmi中断。
61.具体地,该数据处理系统的虚拟机,在接收到宿主机发送的数据采集指令的情况下,响应于该数据采集指令,获取其自身对应的运行状态数据,并将该运行状态信息存储至虚拟存储单元中。当虚拟机完成运行状态信息的存储之后,能够向宿主机发送针对该运行状态数据的数据获取指令。
62.沿用上例,其中,该运行状态数据为pebs信息,该虚拟存储单元为pebs buffer,该数据获取指令为pmi中断。基于此,在虚拟机被宿主机的hypervisor触发pebs功能的情况下,当虚拟机上运行的程序触发pebs硬件功能的时候,虚拟机能够将cpu运行状态的采样到guest pebs buffer(虚拟机的pebs缓存器)中,并触发pmi中断,陷出到宿主机上。其中,虚拟机触发pmi中断,陷出到宿主机上,可以理解为该虚拟机触发pmi中断机制,并通过向宿主机发送指令,从而指示宿主机执行获取该pebs的操作。
63.在实际应用中,该在接收到宿主机发送的数据采集指令的情况下,能够基于数据采集单元,采集该运行状态数据,其中,该数据采集单元可以理解为一个硬件模块,例如,cpu上的pmu模块、或者cpu上的寄存器等。例如,当虚拟机上运行的程序被触发pebs硬件功能的时候,硬件模块会将cpu运行状态的采样到guest pebs buffer,并触发pmi中断,陷出到宿主机上。
64.步骤206:所述宿主机,响应于所述数据获取指令,确定所述虚拟存储单元对应的物理存储单元,并从所述物理存储单元中获取所述运行状态数据。
65.其中,该物理存储单元可以理解为宿主机中用于存储数据的单元,该单元由物理存储介质构成。在实际应用中,虚拟机的虚拟存储资源,是基于宿主机的物理存储资源支持实现的;该虚拟存储资源中存储的数据,实际存储在宿主机的物理存储资源中。基于此,该虚拟存储单元对应的物理存储单元可以理解为,支持该虚拟存储单元实现的物理存储资源;例如,该物理存储单元可以为宿主机中存储pebs信息的缓存器(host pebs buffer)。
66.具体地,该宿主机响应与该虚拟机发送的数据获取指令,确定出虚拟存储单元对应的物理存储单元,并从该物理存储单元中获取到虚拟机存储的运行状态数据。
67.沿用上例,在虚拟机触发pmi之后,宿主机的pmi中断处理程序通过访问host pebs buffer获取pebs功能模块记录的pebs信息,达到采集虚拟机的pebs信息的目的。
68.本说明书提供的数据处理方法,通过宿主机向当前运行的虚拟机发送数据采集指令的情况下,该虚拟机基于该数据采集指令将运行状态数据存储至虚拟存储单元,并向该宿主机发送数据获取指令;而宿主机则响应于该数据获取指令,确定虚拟存储单元的对应的物理存储单元,并从物理存储单元中获取所述运行状态数据,从而避免了宿主机无法高效采集虚拟机的运行状态数据的问题,进一步便于后续宿主机能够基于该运行状态数据,
达到监测虚拟机性能并对其进行优化工作的目的。
69.在本说明书提供的一实施例中,该宿主机向虚拟机发送数据采集指令之后,该虚拟机需要从自身的虚拟存储资源中,划分出用于存储pebs信息的pebs buffer。而该宿主机则需要从自身的物理存储资源中,确定出该guest pebs buffer对应的host pebs buffer,也即是,确定出支持该guest pebs buffer实现的物理存储资源(host pebs buffer),从而便于后续虚拟机触发pmi中断之后,能够基于两者的对应关系,快速的从host pebs buffer中获取pebs信息。具体实现方式如下。
70.本说明书提供的数据处理方法中,所述宿主机,向当前运行的虚拟机发送数据采集指令之前,还包括步骤一至步骤二:
71.步骤一:所述虚拟机,基于预设划分规则从虚拟机内存中划分虚拟存储单元,并确定所述虚拟存储单元的虚拟地址。
72.其中,该预设划分规则可以根据实际应用场景进行设置,例如,该预设划分规则可以为基于预先设定的该待划分虚拟机内存的属性信息,基于此,能够通过该属性信息从虚拟机的虚拟机内存中划分出虚拟存储单元;其中,该属性信息可以为该虚拟机内存的大小、位置等信息。相应地,该虚拟机内存可以理解为虚拟机对应的虚拟内存资源。该虚拟地址可以理解为该虚拟存储单元所对应的地址。在虚拟化场景下,该虚拟机需要为存储资源分配对应的地址,后续能够基于该虚拟地址访问对应的虚拟存储资源。
73.具体地,在宿主机向虚拟机发送数据采集指令之前,该虚拟机能够基于预先设定的划分规则,从虚拟机至少的虚拟机内存中划分出虚拟存储单元,并确定该虚拟存储单元对应的虚拟存储地址。
74.进一步的,在实际应用中,所述虚拟机,基于预设划分规则从虚拟机内存中划分虚拟存储单元,并确定所述虚拟存储单元的虚拟地址,包括:
75.所述虚拟机,确定待划分虚拟存储单元的预设属性信息,基于所述预设属性信息从所述虚拟机内存中划分虚拟存储单元,并为所述虚拟存储单元分配对应的虚拟地址。
76.沿用上例,虚拟机基于预先设置的guest pebs buffer的大小、位置等信息,从自身的虚拟内存中划分出一个guest pebs buffer,用于存储pebs信息。并为该guest pebs buffer分配对应的虚拟地址(gva)。在实际应用中,该由于虚拟机的虚拟存储资源,是虚拟机申请的内存,而这些虚拟内存的地址均为gva,因此宿主机无法直接访问该gva地址对应的guest pebs buffer。
77.本说明书提供的实施例中,基于该待划分虚拟存储单元的预设属性信息,从虚拟机内存中划分虚拟存储单元,并为该虚拟存储单元分配对应的虚拟地址,从而便于后续虚拟机能够方便的对pebs信息进行存储。
78.步骤二:所述宿主机,基于所述虚拟地址从物理存储模块中确定物理存储单元,并建立所述物理存储单元与所述虚拟存储单元的对应关系。
79.其中,该物理存储模块可以理解为该宿主机所对应的物理存储资源,例如,该宿主机对应的物理内存、物理磁盘等。
80.具体地,在虚拟机从自身的虚拟机内存中划分出虚拟机存储单元之后,该宿主机能够获取到该虚拟机存储单元对应的虚拟地址,并基于该虚拟地址从自身的物理存储模块中,确定该虚拟存储单元对应的存储资源,并将该存储资源作为该虚拟存储单元对应的物
理存储单元,并建立该虚拟存储单元与该物理存储单元之间的对应关系。
81.进一步地,在本说明书实施例中,所述宿主机,基于所述虚拟地址从物理存储模块中确定物理存储单元,包括:
82.所述宿主机,在接收到所述虚拟机发送的所述虚拟存储单元的虚拟地址的情况下,确定所述虚拟存储单元对应的虚拟地址映射单元;以及
83.基于所述虚拟地址映射单元,确定所述虚拟存储单元的虚拟地址对应的物理地址,并从物理存储模块中确定所述物理地址对应的物理存储单元。
84.其中,该虚拟地址映射单元可以理解为存储有该虚拟地址和物理地址之间的映射关系的单元,例如,一个记录有虚拟地址和物理地址之间的映射关系的地址映射表、或者一个记录有虚拟地址和物理地址之间的映射关系的文件、一个记录有虚拟地址和物理地址之间的映射关系的缓存器等等。在实际应用中,在该虚拟地址映射单元为地址映射表的情况下,该地址映射表可以存储在宿主机的一个存储单元中,该存储单元可以为寄存器、缓存器、磁盘中的区域等。相应地,该物理地址可以理解为物理存储资源所对应的地址,该宿主机能够基于该物理地址确定对应的物理存储资源、并访问该物理存储资源中的数据。
85.具体地,该虚拟机在从自身的虚拟机内存中划分出虚拟存储单元,并确定该虚拟存储单元的虚拟地址之后,能够将该虚拟存储单元的虚拟地址发送至宿主机中。该宿主机基于该虚拟机发送的虚拟存储单元的虚拟地址,确定该虚拟存储单元对应的虚拟地址映射单元,并基于该虚拟地址映射单元,确定该虚拟存储单元的虚拟地址所对应的物理地址。之后,该宿主机从自身的物理存储模块中确定该物理地址所对应的物理存储单元。
86.在实际应用中,虚拟机将该虚拟存储单元的虚拟地址发送至宿主机的过程中,该虚拟机能够通过写msr寄存器,将虚拟存储单元的虚拟地址发送至宿主机的hypervisor。也即是,虚拟机通过写msr寄存器,将虚拟存储单元的虚拟地址,陷出到宿主机的hypervisor(或kvm模块)。
87.沿用上例,该虚拟机在从自身的虚拟内存中划分出guest pebs buffer,并确定该guest pebs buffer的虚拟地址之后,能够通过写msr寄存器,将该guest pebs buffer的虚拟地址发送至宿主机中的hypervisor。该宿主机的hypervisor基于该虚拟机发送的guest pebs buffer的虚拟地址,确定该guest pebs buffer对应的地址映射表,并基于该地址映射表记录的虚拟地址和物理地址的映射关系,确定出guest pebs buffer的虚拟地址所对应的物理地址。之后,该宿主机从自身的物理存储磁盘中确定该物理地址所对应的物理存储区域。
88.在实际应用中,该宿主机能够将与该guest pebs buffer具有对应关系的物理存储单元,作为host pebs buffer。
89.本说明书提供的实施例中,该宿主机在接收到虚拟机发送的虚拟存储单元的虚拟地址的情况下,能够基于虚拟存储单元对应的虚拟地址映射单元,确定虚拟存储单元的虚拟地址对应的物理地址,并从物理存储模块中确定物理地址对应的物理存储单元。从而便于后续宿主机能够从host pebs buffer中快速的获取pebs信息。
90.进一步地,在虚拟机直接将guest pebs buffer的虚拟地址(gva)发送至宿主机的情况之外,该虚拟机还能够将该guest ds area的虚拟地址发送至宿主机,该guest ds area是虚拟机中用于存储该guest pebs buffer的虚拟地址的区域。而该宿主机能够基于
该guest ds area的虚拟地址,确定该guest pebs buffer对应的物理存储单元;具体实现方式如下。
91.所述宿主机,基于所述虚拟地址从物理存储模块中确定物理存储单元,包括:
92.所述宿主机,接收所述虚拟机发送的所述虚拟地址存储单元的虚拟地址,其中,所述虚拟地址存储单元为所述虚拟机中存储所述虚拟存储单元的虚拟地址的单元;
93.确定所述虚拟地址存储单元对应的虚拟地址映射单元,基于所述虚拟地址映射单元,确定所述虚拟地址存储单元的虚拟地址对应的物理地址;
94.从物理存储模块中确定所述物理地址对应的物理地址存储单元,并从所述物理地址存储单元中获取所述虚拟存储单元的虚拟地址;
95.基于所述虚拟存储单元的虚拟地址从物理存储模块中确定物理存储单元。
96.其中,该虚拟地址存储单元可以理解为该虚拟机中用于存储该虚拟存储单元的虚拟地址的单元,例如,该guest ds area。
97.该虚拟地址存储单元的虚拟地址对应的物理地址,可以理解为guest ds area的虚拟机线性地址所对应的宿主机线性地址。相应地,该宿主机基于虚拟地址映射单元确定虚拟地址存储单元的虚拟地址对应的物理地址的过程中,宿主机基于地址映射表确定guest ds area的虚拟机线性地址对应的虚拟机物理地址(gpa),之后确定该虚拟机物理地址对应的宿主机线性地址。在实际应用中,宿主机具有物理地址以及虚拟地址,对应的,运行在宿主机上的虚拟机通过具有虚拟机物理地址,以及虚拟机虚拟地址,基于此,在宿主机获得guest ds area的虚拟机线性地址之后,需要先确定该虚拟机线性地址对应的虚拟机物理地址,再确定该虚拟机物理地址所对应的宿主机物理地址((host ds area),便于后续基于该宿主机物理地址获得虚拟存储单元(guest pebs buffer)的虚拟机虚拟地址。
98.沿用上例,虚拟机能够从自身的虚拟内存中划分出guest pebs buffer和guest ds area,并将该guest pebs buffer的起始地址等信息存储至该guest ds area中。为了便于解释,将该guest pebs buffer记为a1,guest ds area记为a2。
99.基于此,该虚拟机能够通过写msr寄存器,将a2的虚拟地址发送至宿主机的中的hypervisor,该宿主机的hypervisor基于该虚拟机发送的a2(guest ds area)的虚拟地址,确定该a2对应的地址映射表;并基于该地址映射表记录的虚拟机线性地址和虚拟机物理地址的映射关系,确定出a2的虚拟机线性地址所对应的虚拟机物理地址(gpa),之后,该宿主机从自身的物理存储中确定该虚拟机物理地址所对应的宿主机线性地址为host ds area(宿主机的调试存储区域),记为b2。之后,该宿主机从该b2(host ds area)中获取该a1(guest pebs buffer)的虚拟地址,并确定该a1对应的地址映射表,并基于该地址映射表记录的虚拟地址和虚拟机物理地址的映射关系,确定出a1的虚拟地址所对应的虚拟机物理地址。之后,该宿主机从自身的物理存储中确定该虚拟机物理地址所对应的宿主机线性地址(host pebs buffer)。
100.本说明书提供的实施例中,该宿主机基于虚拟地址存储单元中获取虚拟存储单元的虚拟地址,基于该虚拟存储单元对应的虚拟地址映射单元,确定虚拟存储单元的虚拟地址对应的物理地址,并从物理存储模块中确定物理地址对应的物理存储单元。之所以引入虚拟地址存储单元(guest ds area)用于存储虚拟存储单元(guest pebs buffer)的虚拟地址,是为了使得本说明书提供的数据处理方法,能够适用特定cpu,从而提高该数据处理
方法的兼容性。而该特定cpu可以是一种需要通过msr寄存器将guest ds area传到宿主机,而不能直接把guest pebs buffer传到宿主机的cpu。因此,受限于该cpu的硬件限制无法将guest pebs buffer直接传到宿主机。因此,通过上述方式能够使得宿主机基于guest ds area获得pebs信息,进一步地提高了本说明书提供的数据处理方法的兼容性。便于后续宿主机能够从host pebs buffer中获取pebs信息。
101.在实际应用中,该虚拟机能够从自身的虚拟内存中划分出guest pebs buffer和guest ds area,并将该guest pebs buffer的起始地址等信息存储至该guest ds area中,具体实现方式如下。
102.所述宿主机,接收到所述虚拟机发送的所述虚拟地址存储单元的虚拟地址之前,还包括:
103.所述虚拟机,确定待划分的虚拟地址存储单元的预设属性信息,基于所述预设属性信息从所述虚拟机内存中划分虚拟地址存储单元;以及
104.为所述虚拟地址存储单元分配对应的虚拟地址,并将所述虚拟存储单元的虚拟地址存储至所述虚拟地址存储单元。
105.其中,虚拟地址存储单元的预设属性信息可以理解为,预先设定的该虚拟地址存储单元的大小、位置等信息。
106.沿用上例,虚拟机基于预先设置的guest ds area的大小、位置等信息,从自身的虚拟内存中划分出一个guest ds area,用于存储guest pebs buffer的虚拟地址等信息。之后,该虚拟机为该guest ds area分配对应的虚拟地址(gva),并将划分的guest pebs buffer的虚拟地址存储至guest ds area中。
107.在实际应用中,该guest pebs buffer的虚拟地址会被存储至guest ds area的特定区域,该特定区域是guest ds area中被预先设定的、且能够存储该guest pebs buffer的虚拟地址的区域。后续,该宿主机在基于该guest ds area的虚拟地址,确定该guest ds area对应的host ds area。也能够从该特定区域中获取该guest pebs buffer的虚拟地址,从而提高宿主机获取该guest pebs buffer的虚拟地址的效率,避免了宿主机需要花费大量的计算资源,从host ds area检索该guest ds area的虚拟地址的问题。
108.本说明书提供的数据处理方法中,在通过虚拟机从自身的虚拟存储资源中,划分两个存储区域(guest pebs buffer和guest ds area)之外,还能够通过宿主机,从虚拟机的虚拟存储资源中划分出两个存储区域,从而避免了宿主机需要基于该虚拟机发送的虚拟地址,确定该guest pebs buffer和guest ds area的步骤,节省了大量的计算资源,提高了数据处理的效率,具体实现方式如下。
109.所述宿主机,向当前运行的虚拟机发送数据采集指令之前,还包括:
110.所述宿主机,基于预设划分规则,通过虚拟机管理模块从所述虚拟机内存划分虚拟存储单元,并确定所述虚拟存储单元的虚拟地址;以及
111.基于所述虚拟地址从物理存储模块中确定物理存储单元,并建立所述物理存储单元与所述虚拟存储单元的对应关系;
112.其中,所述虚拟机管理模块为所述宿主机中对所述虚拟机进行管理的模块。
113.沿用上例,宿主机的hypervisor,基于预先划分规则,从虚拟机的虚拟内存中划分出一个guest pebs buffer,用于存储pebs信息。并为该guest pebs buffer分配对应的虚
拟地址(gva)。
114.之后,该宿主机的hypervisor确定该guest pebs buffer对应的地址映射表,并基于该地址映射表记录的虚拟地址和物理地址的映射关系,确定出guest pebs buffer的虚拟地址所对应的物理地址。该宿主机从自身的物理存储磁盘中确定该物理地址所对应的物理存储区域。并建立该物理存储区域(host pebs buffer)和guest pebs buffer之间的对应关系。从而提高了确定该host pebs buffer的效率,便于后续宿主机能够从host pebs buffer中快速的获取pebs信息。
115.进一步地,在实际应用中,所述宿主机,基于预设划分规则,通过虚拟机管理模块从所述虚拟机内存划分虚拟存储单元,并确定所述虚拟存储单元的虚拟地址,包括:
116.所述宿主机,通过虚拟机管理模块确定待划分虚拟存储单元的预设属性信息;以及
117.基于所述预设属性信息从所述虚拟机内存中划分虚拟存储单元,并为所述虚拟存储单元分配对应的虚拟地址。
118.沿用上例,宿主机的hypervisor,基于预先设置的guest pebs buffer的大小、位置等信息,从虚拟机的虚拟内存中划分出一个guest pebs buffer,用于存储pebs信息。并为该guest pebs buffer分配对应的虚拟地址(gva)。
119.本说明书提供的一实施例中,该宿主机的hypervisor,能够基于预先设置的guest ds area的大小、位置等信息,从自身的虚拟内存中划分出一个guest ds area,用于存储guest pebs buffer的虚拟地址等信息。之后,该虚拟机为该guest ds area分配对应的虚拟地址(gva)。便于后续将划分的guest pebs buffer的虚拟地址存储至guest ds area中。之后,该宿主机的hypervisor,能够基于该guest ds area的虚拟地址,确定该guest ds area对应的物理存储单元(host ds area)基于此,宿主机的hypervisor,通过访问host ds area,将guest pebs buffer的起始地址等信息填入到guest ds area特定区域中,之后在每次陷入到vm-entry前,宿主机将guest ds area写到msr寄存器中,让虚拟机能够获取到guest ds area地址,并确定该guest ds area地址为其可访问的guest ds area。并且,由于该虚拟机未进行划分guest pebs buffer的操作,因此,该虚拟机需要将cpu运行状态的采样,存储至guest pebs buffer中的情况下,需要从guest ds area确定该guest pebs buffer的虚拟地址,基于该虚拟地址确定该guest pebs buffer。具体实现方式如下。
120.所述基于所述虚拟地址从物理存储模块中确定物理存储单元虚拟地址存储单元,包括:
121.所述虚拟机,响应于所述数据采集指令,基于数据采集模块确定获取运行状态数据;以及
122.从虚拟地址存储单元中确定虚拟存储单元的虚拟地址,其中,所述虚拟地址存模块为所述宿主机从虚拟机内存中划分的,且用于存储所述虚拟存储单元的虚拟地址的单元;
123.基于所述虚拟地址将所述运行状态数据存储至虚拟存储单元。
124.沿用上例,在虚拟机被宿主机的hypervisor触发pebs功能的情况下,当虚拟机上运行的程序触发pebs硬件功能的时候,虚拟机能够通过硬件模块获取cpu运行状态的采样,并基于guest ds area的虚拟地址,确定该guest ds area,且从该guest ds area的特定区
域,确定存储该运行状态采样的guest pebs buffer,并将该运行状态采样存储至guest pebs buffer中,之后,该虚拟机触发pmi中断,陷出到宿主机上。从而指示该宿主机获取该pebs信息,便于后续基于该pebs对虚拟机的性能进行管理和优化。
125.需要说明的是,通过宿主机中的hypervisor,对guest pebs buffer和guest ds area进行管理的操作,与上述的虚拟机自身对guest pebs buffer和guest ds area进行管理的操作属于同一构思,宿主机中的hypervisor,在对guest pebs buffer和guest ds area进行管理的过程中,未详细描述的细节内容,均可以参见上述虚拟机自身对guest pebs buffer和guest ds area进行管理的描述。
126.下述结合附图3,以本说明书提供的数据处理方法在宿主机采集虚拟机pebs信息场景下的应用为例,对所述数据处理方法进行进一步说明。其中,图3示出了本说明书一个实施例提供的一种数据处理方法的一种处理过程流程图,具体包括以下步骤。
127.步骤302:虚拟机内部预留guest ds area和guest pebs buffer。
128.其中,该虚拟机内部可以理解为虚拟机内的虚拟存储资源。
129.步骤304:虚拟机将guest pebs buffer的起始地址等信息,存放在guest ds area中特定区域中。
130.步骤306:虚拟机通过写msr寄存器,将guest ds area的地址陷出到宿主机的hyperviso。
131.步骤308:宿主机的hypervisor获取虚拟机对应guest ds area,并将其地址(gva)转换为宿主机能访问的hva,并将该hva对应的区域记为host ds area。
132.步骤310:宿主机访问host ds area,读取host ds area中存储的guest pebs buffer起始地址,将该起始地址转换为hva,并将该hva对应的区域记为host pebs buffer。
133.步骤312:宿主机当需要采集虚拟机的pebs信息时,宿主机通过hyperviso触发虚拟机的pebs功能。
134.步骤314:虚拟机上运行的程序当触发pebs硬件功能的时候,硬件模块会通过guest ds area将cpu运行状态的采样到guest pebs buffer,并触发pmi中断,陷出到宿主机上。
135.步骤316:宿主机的pmi中断处理程序通过访问host pebs buffer获取pebs存储模块(host pebs buffer)中记录的pebs信息。
136.在实际应用中,本说明书提供的数据处理方法,考虑到宿主机获取虚拟机内存访问信息的轻量级方式,就是通过硬件的pebs信息来获取。但是,目前宿主机(host)只能采集宿主机上的pebs信息,虚拟机(vm)只能采集虚拟机自己的pebs信息,因此提出一种通过在宿主机采集虚拟机pebs信息的方式来获取虚拟机访问内存的冷热信息,并将通过获取虚拟机访问内存的冷热信息,将访问频繁的放在普通内存中,将访问不频繁的放到aep中,从而提高宿主机内存的利用率,提高了宿主机的处理效率。
137.同时,本说明书提供的一种在宿主机采集虚拟机pebs信息的方法,克服了宿主机无法采集虚拟机pebs信息的缺点,实现了在宿主机上采集虚拟机的pebs信息,从而达到在宿主机上监测虚拟机性能,并到对其进行优化工作的目的。
138.下述结合附图4,以本说明书提供的数据处理方法在宿主机采集虚拟机pebs信息场景下的应用为例,对所述数据处理方法进行进一步说明。其中,图4示出了本说明书一个
实施例提供的一种数据处理方法的另一种处理过程流程图,具体包括以下步骤。
139.步骤402:宿主机通过hypervisor,在虚拟机内部预留guest ds area和guest pebs buffer。
140.步骤404:宿主机的hypervisor,将guest ds area的地址转换为宿主机能访问的hva,并将该hva对应的区域记为host ds area。
141.步骤406:宿主机的hypervisor,通过访问host ds area将guest pebs buffer的起始地址等信息,填入到guest ds area特定区域。
142.步骤408:宿主机在每次陷入到vm-entry前,将guest ds area写到msr寄存器中,让虚拟机确定guest ds area地址为其可访问的guest ds area的地址。
143.步骤410:宿主机将guest pebs buffer起始地址转换为hva,并将该hva对应的区域记为host pebs buffer。
144.步骤412:宿主机当需要采集虚拟机的pebs信息时,宿主机通过hyperviso触发虚拟机的pebs功能。
145.步骤414:虚拟机上运行的程序当触发pebs硬件功能的时候,硬件模块会通过guest ds area将cpu运行状态的采样到guest pebs buffer,并触发pmi中断,陷出到宿主机上。
146.步骤416:宿主机的pmi中断处理程序通过访问host pebs buffer获取pebs存储模块(host pebs buffer)中记录的pebs信息。
147.本说明书提供的一种在宿主机采集虚拟机pebs信息的方法,克服了宿主机无法采集虚拟机pebs信息的缺点,实现了在宿主机上采集虚拟机的pebs信息,从而达到在宿主机上监测虚拟机性能,并到对其进行优化工作的目的。
148.与上述方法实施例相对应,本说明书还提供了数据处理系统实施例,图5示出了本说明书一个实施例提供的一种数据处理系统的结构示意图。如图5所示,所述系统包括宿主机502,以及运行在所述宿主机中的虚拟机504,其中,
149.所述宿主机502,被配置为向当前运行的虚拟机504发送数据采集指令;
150.所述虚拟机504,被配置为基于所述数据采集指令将运行状态数据存储至虚拟存储单元,并向所述宿主机502发送数据获取指令,其中,所述虚拟存储单元为从虚拟机内存中划分的存储单元;
151.所述宿主机502,还被配置为响应于所述数据获取指令,确定所述虚拟存储单元对应的物理存储单元,并从所述物理存储单元中获取所述运行状态数据。
152.可选地,所述虚拟机504,还被配置为基于预设划分规则从虚拟机内存中划分虚拟存储单元,并确定所述虚拟存储单元的虚拟地址;
153.所述宿主机502,还被配置为基于所述虚拟地址从物理存储模块中确定物理存储单元,并建立所述物理存储单元与所述虚拟存储单元的对应关系。
154.可选地,所述虚拟机504,还被配置为确定待划分虚拟存储单元的预设属性信息,基于所述预设属性信息从所述虚拟机内存中划分虚拟存储单元,并为所述虚拟存储单元分配对应的虚拟地址。
155.可选地,所述宿主机502,还被配置为:
156.在接收到所述虚拟机504发送的所述虚拟存储单元的虚拟地址的情况下,确定所
述虚拟存储单元对应的虚拟地址映射单元;以及
157.基于所述虚拟地址映射单元,确定所述虚拟存储单元的虚拟地址对应的物理地址,并从物理存储模块中确定所述物理地址对应的物理存储单元。
158.可选地,所述宿主机502,还被配置为:
159.接收所述虚拟机504发送的所述虚拟地址存储单元的虚拟地址,其中,所述虚拟地址存储单元为所述虚拟机504中存储所述虚拟存储单元的虚拟地址的单元;
160.确定所述虚拟地址存储单元对应的虚拟地址映射单元,基于所述虚拟地址映射单元,确定所述虚拟地址存储单元的虚拟地址对应的物理地址;
161.从物理存储模块中确定所述物理地址对应的物理地址存储单元,并从所述物理地址存储单元中获取所述虚拟存储单元的虚拟地址;
162.基于所述虚拟存储单元的虚拟地址从物理存储模块中确定物理存储单元。
163.可选地,所述虚拟机504,还被配置为:
164.确定待划分的虚拟地址存储单元的预设属性信息,基于所述预设属性信息从所述虚拟机内存中划分虚拟地址存储单元;以及
165.为所述虚拟地址存储单元分配对应的虚拟地址,并将所述虚拟存储单元的虚拟地址存储至所述虚拟地址存储单元。
166.可选地,所述宿主机502,还被配置为:
167.基于预设划分规则,通过虚拟机管理模块从所述虚拟机内存划分虚拟存储单元,并确定所述虚拟存储单元的虚拟地址;以及
168.基于所述虚拟地址从物理存储模块中确定物理存储单元,并建立所述物理存储单元与所述虚拟存储单元的对应关系;
169.其中,所述虚拟机管理模块为所述宿主机502中对所述虚拟机504进行管理的模块。
170.可选地,所述宿主机502,还被配置为:
171.通过虚拟机管理模块确定待划分虚拟存储单元的预设属性信息;以及
172.基于所述预设属性信息从所述虚拟机内存中划分虚拟存储单元,并为所述虚拟存储单元分配对应的虚拟地址。
173.可选地,所述虚拟机504,还被配置为
174.响应于所述数据采集指令,基于数据采集模块确定获取运行状态数据;以及
175.从虚拟地址存储单元中确定虚拟存储单元的虚拟地址,其中,所述虚拟地址存储模块为所述宿主机502从虚拟机内存中划分的,且用于存储所述虚拟存储单元的虚拟地址的单元;
176.基于所述虚拟地址将所述运行状态数据存储至虚拟存储单元。
177.可选地,所述运行状态数据为pebs信息。
178.本说明书提供的数据处理系统,通过宿主机向当前运行的虚拟机发送数据采集指令的情况下,该虚拟机基于该数据采集指令将运行状态数据存储至虚拟存储单元,并向该宿主机发送数据获取指令;而宿主机则响应于该数据获取指令,确定虚拟存储单元的对应的物理存储单元,并从物理存储单元中获取所述运行状态数据,从而避免了宿主机无法高效采集虚拟机的运行状态数据的问题,进一步便于后续宿主机能够基于该运行状态数据,
达到监测虚拟机性能并对其进行优化工作的目的。
179.上述为本实施例的一种数据处理系统的示意性方案。需要说明的是,该数据处理系统的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理系统的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
180.图6示出了根据本说明书一个实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。
181.计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
182.在本说明书的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
183.计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
184.其中,处理器620用于执行如下计算机可执行指令,该计算机可执行指令被处理器620执行时实现上述数据处理方法的步骤。
185.上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
186.本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
187.上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
188.本说明书一实施例还提供一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述数据处理方法的步骤。
189.上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的数据处理方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
190.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来
执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
191.所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
192.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
193.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
194.以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
再多了解一些

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

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

相关文献