数据处理方法、存储介质以及系统与流程

文档序号:30218091发布日期:2022-05-31 19:16阅读:81来源:国知局
1.本发明涉及数据处理领域,具体而言,涉及一种数据处理方法、存储介质以及系统。
背景技术
::2.目前,在多个虚拟主机(vm)共享一物理主机(host)时,运行在vm中各个操作系统(guestos)会对自身内存(guestphysicalmemory)进行着色,并应用缓存着色。但guestos的缓存着色基于guestphysicalmemory,而无法作用于主机的缓存,存在虚拟主机和物理主机之间无法协作应用缓存着色的技术问题。3.针对上述的问题,目前尚未提出有效的解决方案。技术实现要素:4.本发明实施例提供了一种数据处理方法、存储介质以及系统,以至少解决虚拟主机和物理主机之间无法协作应用缓存着色的技术问题。5.根据本发明实施例的一个方面,提供了一种数据处理方法,包括:确定多个虚拟主机,其中,多个虚拟主机共享相同的物理主机;向每个虚拟主机分配第一颜色,其中,第一颜色用于对物理主机的物理内存进行着色处理,以得到第一内存;基于第一颜色的种类和每个虚拟主机的第二颜色的种类,对第一内存和第二内存进行映射处理,得到映射结果,其中,第二颜色用于对每个虚拟主机的物理内存进行着色处理,以得到第二内存;基于映射结果对物理主机的缓存行和/或虚拟主机的缓存行进行着色处理。6.根据本发明实施例的另一方面,还提供了一种数据处理方法,包括:通过调用第一接口确定多个虚拟主机,其中,第一接口包括第一参数,第一参数的参数值为多个虚拟主机的信息,多个虚拟主机共享相同的物理主机;向每个虚拟主机分配第一颜色,其中,第一颜色用于对物理主机的物理内存进行着色处理,以得到第一内存;基于第一颜色的种类和每个虚拟主机的第二颜色的种类,对第一内存映射和第二内存进行映射处理,得到映射结果,其中,第二颜色用于对每个虚拟主机的物理内存进行着色处理,以得到第二内存;基于映射结果对物理主机和/或虚拟主机进行缓存着色,得到着色结果;通过调用第二接口输出着色结果,其中,第二接口包括第二参数,第二参数的参数值为着色结果。7.根据本技术实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述任意一个实施例中的数据处理方法。8.根据本技术实施例的另一方面,还提供了一种计算机终端,包括:处理器和存储器,处理器用于运行存储器中存储的程序,其中,程序运行时执行上述任意一个实施例中的数据处理方法。9.在本发明实施例中,首先可以确定多个虚拟主机,其中,多个虚拟主机共享相同的物理主机;向每个虚拟主机分配第一颜色,其中,第一颜色用于对物理主机的物理内存进行着色处理,以得到第一内存;基于第一颜色的种类和每个虚拟主机的第二颜色的种类,对第一内存和第二内存进行映射处理,得到映射结果,其中,第二颜色用于对每个虚拟主机的物理内存进行着色处理,以得到第二内存;基于映射结果对物理主机的缓存行和/或虚拟主机的缓存行进行着色处理。容易注意到的是,可以获取到物理主机的第一颜色和虚拟主机的第二颜色,通过结合第一颜色的种类和第二颜色的种类可以对颜色进行合理的分配,在对第一内存和第二内存进行映射处理时,可以映射得到一个连续但是颜色相间的内存,可以提高缓存的利用率,进而解决了虚拟主机和物理主机之间无法协作应用缓存着色的技术问题。附图说明10.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:11.图1是根据本发明实施例的一种用于实现数据处理方法的计算机终端(或移动设备)的硬件结构框图;12.图2是根据本发明实施例的一种数据处理方法的流程图;13.图3是根据本发明实施例的一种颜色分配的示意图;14.图4是根据本发明实施例的另一种数据处理方法的流程图;15.图5是根据本发明实施例的一种数据处理装置的示意图;16.图6是根据本发明实施例的另一种数据处理装置的示意图;17.图7是根据本技术实施例的一种计算机终端的结构框图。具体实施方式18.为了使本
技术领域
:的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。19.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。20.首先,在对本技术实施例进行描述的过程中出现的部分名词或术语适用于如下解释:21.缓存着色技术,根据最后一级缓存(lastlevelcache,简称为llc)的缓存行(cacheline)调度策略对物理内存进行着色,相同颜色的内存会被映射到同一个缓存行。在内存分配时,为了减少llc的缓存行冲突(cacheconflict),使用不同颜色的物理内存来映射成一个连续但是颜色相间的虚拟内存;22.excessivevcpuspinning,由于过度申请(oversubscribe)处理器(vcpu),即申请使用的vcpu的数量大于物理cpu的数量,此时,vcpu之间可能存在自旋锁(spinblock)依赖,从而引入额外的性能开销;23.基于linux内核的虚拟化技术,kernel-basedvirtualmachine,简称为kvm。24.目前,物理主机也会应用缓存着色技术来减少cacheconflict,但是物理主机无法干涉guestos的内存分配,无法确保guestos使用不同颜色的hostphysicalmemory来映射成一个连续但是颜色相间的虚拟内存。由于多个vm之间无法相互感知,不能协同调度缓存行,难以在最大化缓存的利用率的同时减少cacheconflict。25.另外,开源工具包通过限制具体的物理cpu所能访问的llc的范围,从而将缓存分割成不同的cacheslice,并分配给不同的vm,通过该方式来减少vm之间的cacheconflict。但是,开源工具包没有解决vm和host之间无法协作应用缓存着色技术的问题。26.为了解决上述问题,本技术提供了一种数据处理方法,可以综合考虑vm和host的缓存着色因素,综合hostcolor与guestcolor进行调度,实现由guest进行着色决策,host进行决策的实施(调度cache)实现了host和guest之间的协作。27.实施例128.根据本发明实施例,还提供了一种数据处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。29.本技术实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现数据处理方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。30.应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本技术实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。31.存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的数据处理方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的数据处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。32.传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。33.显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。34.此处需要说明的是,在一些可选实施例中,上述图1所示的计算机设备(或移动设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备)中的部件的类型。35.在上述运行环境下,本技术提供了如图2所示的数据处理方法,图2是根据本技术实施例的数据处理方法的流程图。36.步骤s202,确定多个虚拟主机。37.其中,多个虚拟主机共享相同的物理主机。38.上述的多个虚拟主机可以为vm(virtualmachine)。上述的物理主机可以为host。39.上述的多个虚拟主机可以使用物理主机中的处理器(cpu)来运行。40.步骤s204,向每个虚拟主机分配第一颜色。41.其中,第一颜色用于对物理主机的物理内存进行着色处理,以得到第一内存。42.上述的第一内存可以为主物理内存(hostphysicalmemory)。上述的第一颜色可以为物理主机的物理内存颜色(hostcolor)。43.在一种可选的实施例中,物理主机可以根据多个虚拟主机使用的物理cpu的数量来向每个虚拟主机分配第一颜色。在得到第一颜色之后,可以根据第一颜色对物理主机的物理内存进行着色处理,得到物理机的第一内存。44.步骤s206,基于第一颜色的种类和每个虚拟主机的第二颜色的种类,对第一内存和第二内存进行映射处理,得到映射结果。45.上述的第一内存可以是物理主机内存,上述的第二内存可以是虚拟主机内存。46.其中,第二颜色用于对每个虚拟主机的物理内存进行着色处理,以得到第二内存。上述的第二颜色可以为虚拟主机的物理内存颜色(guestcolor)。47.上述的第一颜色的种类可以为第一颜色中包含的不同的颜色和不同颜色的数量。48.上述的第二颜色的种类可以为第二颜色中包含的不同的颜色和不同颜色的数量。49.上述的映射结果可以是通过对第一颜色和第二颜色进行分配,得到的一个连续但是颜色相间的内存。50.在一种可选的实施例中,可以根据第一颜色的数量和每个虚拟主机的第二颜色的数量,对第一内存和第二内存进行映射处理,得到映射结果。具体的,当物理主机第一颜色的数量小于虚拟主机中第二颜色的数量时,说明存在多个第二颜色对应于一个第一颜色,此时,物理主机在对虚拟主机进行缓存着色时,需要尽可能减少相同的颜色的内存相邻,得到上述的第二内存;当物理机第一颜色的数量大于或等于虚拟主机中第二颜色的数量时,说明可以保证一种第二颜色对应一种第一颜色,此时,通过第二颜色对虚拟主机的物理内存进行着色处理得到第二内存可以映射到不同的第一内存上。51.在另一种可选的实施例中,虚拟主机可以先自行进行一次着色分配,当物理主机进行调度之后,再根据物理主机的调度结果来对虚拟主机进行着色分配,得到虚拟主机的物理内存,也就是说,虚拟主机中的物理内存实际需要物理主机进行确定,即,虚拟主机可以将自行着色分配得到的第二颜色发送到物理主机中,通过物理主机确定适用于虚拟主机的缓存行着色,也即,上述的映射结果。52.步骤s208,基于映射结果对物理主机的缓存行和/或虚拟主机的缓存行进行着色处理。53.在一种可选的实施例中,可以根据映射结果中第二内存的颜色对物理主机的第一内存进行缓存着色,还可以根据映射结果中第一内存的颜色对虚拟主机的第二内存进行缓存着色。54.上述的缓存行着色技术需要先对物理内存进行着色,在着色后,可以把不同颜色的物理内存来组成虚拟内存,以保证在同一缓存不会放入相同的颜色。可选的,在进行缓存行着色技术时,首次需要确定缓存的一个调度方式,可以根据调度方式对物理内存进行着色操作,在着色之后,在将不同颜色的物理内存组成一种虚拟内存,最终可以实现对缓存和物理内存的着色,并且缓存中同一组里面的颜色不相同。也就是说,当物理内存的颜色一旦确定,就可以根据物理内存的颜色对调度到缓存的颜色进行确定。55.通过上述步骤,首先可以确定多个虚拟主机,其中,多个虚拟主机共享相同的物理主机;向每个虚拟主机分配第一颜色,其中,第一颜色用于对物理主机的物理内存进行着色处理,以得到第一内存;基于第一颜色的种类和每个虚拟主机的第二颜色的种类,对第一内存和第二内存进行映射处理,得到映射结果,其中,第二颜色用于对每个虚拟主机的物理内存进行着色处理,以得到第二内存;基于映射结果对物理主机的缓存行和/或虚拟主机的缓存行进行着色处理。容易注意到的是,可以获取到物理主机的第一颜色和虚拟主机的第二颜色,通过结合第一颜色的种类和第二颜色的种类可以对颜色进行合理的分配,在对第一内存和第二内存进行映射处理时,可以映射得到一个连续但是颜色相间的内存,可以提高缓存的利用率,进而解决了虚拟主机和物理主机之间无法协作应用缓存着色的技术问题。56.在本技术上述实施例中,该方法还包括:基于每个虚拟主机所使用的目标处理器的数量,确定第一颜色的种类的数量。57.上述的目标处理器可以为cpu。58.上述的目标处理器可以是物理机中的处理器。59.在一种可选的实施例中,物理主机可以根据每个虚拟主机所使用的目标处理器的数量,按照使用目标处理器的比例来确定第一颜色的种类的数量。60.示例性的,多个虚拟主机中若第一个虚拟主机使用4个目标处理器,则可以确定分配给第一个虚拟主机的第一颜色的种类的数量为4,若第二个虚拟主机使用3个目标处理器,则可以确定分配给第二个虚拟主机的第一颜色的种类的数量为3,若第三个虚拟主机使用2个目标处理器,则可以确定分配给第三个虚拟主机的第一颜色的种类的数量为2。61.在本技术上述实施例中,基于每个虚拟主机所使用的处理器的数量,确定第一颜色的种类的数量,包括:基于每个虚拟主机所使用的处理器的数量占多个虚拟主机所使用的处理器的数量之和的比例,确定第一颜色的种类的数量。62.在一种可选的实施例中,可以先获取到每个虚拟主机所使用的处理器的数量,然后获取到多个虚拟主机所使用的处理器的数量之和,再根据每个虚拟主机所使用的处理器的数量和多个虚拟主机所使用的处理器的数量,确定出每个虚拟主机所使用的处理器的数量占多个虚拟主机所使用的处理器的数量之和的比例,确定出分配给每个虚拟主机第一颜色的种类的数量。63.图3为根据本发明实施例的一种颜色分配的示意图,如图3所示,在虚拟主机确定hostcolor的种类数量时,管理程序(hypervisor)会根据各个vm使用的物理cpu的数量按比例分配颜色。如图左边部分所示,vm1、vm2、vm3依据所拥有的物理cpu的比例(4:3:2),分别获得4种、3种、2种hostcolor。各个vm的guestos也会尝试应用缓存着色,每个vm都有3种guestcolor(图左边部分中,不同的字母表示不同的颜色)。host上的cache(内存)结构如图右边部分所示,其中,不同的形状代表不同的颜色,其中,a可以所处位置的形状可以代表紫色、b所处的位置的形状可以代表橘色、c所处位置的形状可以代表黄色,vm1最后一层的形状所代表的颜色可以为米色,vm2中d所处位置的形状可以代表红色、e所处位置的形状可以代表绿色、f所处位置的形状可以代表蓝色,vm3中h和g所处位置的形状可以代表紫色,i所处位置的形状可以代表灰色。当hostcolor的数量大于或等于当前vm的guestcolor时(vm1中),不同颜色的guestphysicalmemory,会被映射到不同颜色的hostphysicalmemory上。当hostcolor的数量小于当前vm的guestcolor时(在vm3中),存在多个guestcolor对应同一种hostcolor,host尽可能减少相同颜色hostphysicalmemory相邻,以减少cacheconflict的概率。64.在本技术上述实施例中,基于第一颜色的种类和每个虚拟主机的第二颜色的种类,对第一内存映射和第二内存进行映射处理,得到映射结果,包括:基于第一颜色的种类的第一数量和第二颜色的种类的第二数量,将第二内存映射至第一内存上,得到映射结果。65.在一种可选的实施例中,因为guestcolor由虚拟机的物理地址(guestphysicaladdress,简称为gpa)中的某几位bit决定,host可以通过虚拟机的物理页(guestphysicalpage,gpp)的gpa的值来区分各个gpp的guestcolor。host在获得guestcolor的信息后,可以按照以下不同的情况实施缓存着色,可选地,可以通过比较第一颜色的种类的第一数量和第二颜色的种类的第二数量,确定是否可以将第二内存映射到不同颜色的第一内存上,以降低内存冲突的风险,若第一颜色的种类的数量大于或等于第二颜色的种类的数量,说明第一内存的第一颜色充足,可以将第二内存的第二颜色的一一映射到第一内存上,从而降低内存冲突的风险;若第一颜色的种类的数量小于第二颜色的种类的数量,说明第一颜色的第一颜色不充分,为了避免内存冲突,可以尽量减少第二颜色在第一内存上相同颜色相邻。通过结合物理主机的第一颜色和虚拟主机的第二颜色来进行调度,实现了物理主机和虚拟主机之间的协同,可以提高缓存的利用率,降低缓存冲突。66.在本技术上述实施例中,基于第一颜色的种类的第一数量和第二颜色的种类的第二数量,将第二内存映射至第一内存上,得到映射结果,包括:响应于第一数量大于或等于第二数量,则将第二数量的第二内存一一映射至第二数量的第一内存上。67.在一种可选的实施例中,若第一数量大于或等于第二数量,则说明虚拟主机中的不同颜色内存可以被映射到物理主机中不同颜色的内存中,可以达到相邻内存的颜色各不相同,能够有效的降低缓存冲突。68.在本技术上述实施例中,基于第一颜色的种类的第一数量和第二颜色的种类的第二数量,将第二内存映射至第一内存上,得到映射结果,包括:响应于第一数量小于第二数量,则将第二数量中第一子数量的第二内存一一映射至第一子数量的第一内存,且将第二数量中第二子数量的第二内存映射至相同第二颜色数据对应的第二子数量的第一内存。69.在一种可选的实施例中,若第一数量小于第二数量,则可以先获取到第一内存中具有不同种类的第一颜色,可以根据不同种类的第一颜色中数量最少的颜色来确定上述的第一子数量,若第一颜色为一个灰色和两个紫色,则可以确定出第一子数量为1,可以确定出第二子数量为2,可以将第二数量中1个第二内存映射到1个第一内存中,也即,可以将第二数量中的1个第二内存映射到灰色的第一内存中;可以将第二数量中的2个第二内存映射到相同的紫色对应的2个第一内存中。70.如图3所示,可以先将一个i着色的第二内存映射到灰色着色的一个第二内存上,可以将由h、g着色的两个第二内存映射到由相同紫色着色的2个第一内存上。71.在本技术上述实施例中,第二子数量的第一内存未相邻。72.在一种可选的实施例中,为了避免出现缓存冲突,可以将第二自数量的第二内存设置为不相邻。73.在本技术上述实施例中,该方法还包括:响应于虚拟主机释放资源数据,则将新增加的第二颜色数据对应的物理页映射至虚拟主机中;和/或,响应于虚拟主机释放资源数据,则在虚拟主机中对减少的第二颜色数据对应的物理页进行替换。74.在一种可选的实施例中,在虚拟主机释放资源之后,释放出的第一颜色会被回收,然后再根据物理主机cpu的比例再分配给虚拟主机,同时,在新的虚拟主机启动时,第一颜色也会被重新进行分配。具体的,当vm增加hostcolor时,可以在ept(extendpagetable,扩展页表)变化时,将新增加的hostcolor对应的物理页映射到该vm中;当vm减少hostcolor时,可以在ept变化时,不再将减少的hostcolor对应的对应的物理页映射到该vm中,随着程序内存的置换,需要减少的hostcolor对应的物理页会被替换出该vm。如果在指定时间内(如5分钟),减少的hostcolor对应的物理页没有被替换出该vm,这时可以通过内存迁移来强制替换物理页。75.在本技术上述实施例中,该方法还包括:基于虚拟主机的第一处理器的调度优先级和虚拟主机的第二处理器的调度优先级确定目标优先级,其中,第一处理器基于目标数据执行,目标数据为将第二处理器调度至物理主机的第三处理器上执行而得到;基于目标优先级确定虚拟主机待调度的目标处理器。76.上述的第一处理器可以为waitervcpu,上述的第二处理器可以为pioneervcpu,上述的目标数据可以为自旋锁(spinlock),上述的第三处理器可以为pcpu。77.在一种可选的实施例中,由于分配的vcpu的数量要大于物理cpu(pcpu)的数量,因此存在两个vcpu:vcpu1和vcpu2,存在以下情况:vcpu1需要获取某个自旋锁(spinlock)才能继续执行,该自旋锁现在由vcpu2持有,但是vcpu2已经被调度出pcpu(即,vcpu2没有执行),因此需要先调度vcpu2到pcpu上执行,之后再执行vcpu1。该过程阻碍了vcpu1的执行,引入了额外的性能开销。为了解决该问题,可以将所有的waitervcpu和pioneervcpu综合在一起考虑调度的优先级,具体的优先级的计算,如公式所示:78.p=tpioneer*pw_vcpu+twaiter*pp_vcpu79.其中,p是最终得到的调度优先级数值;tpioneer与twaiter(0《tpioneer,twaiter《1)是两个常数,用来分别与pioneervcpu原本的优先级数值(pw_vcpun)和waitervcpu原本的优先级数值(pp_vcpum)相乘。80.在调度时,存在以下两种情况:81.第一,p代表的优先级在所有需要调度的vcpu中最高,可以优先调度p中相关的pioneervcpu;82.第二,p代表的优先级不是所有需要调度的vcpu中最高,可以优先调度优先级高的其他vcpu,在调度完成后,提高p中pioneervcpu一个优先级,通过这种方式,避免excessivevcpuspinning问题长期无法解决。83.通过上述步骤,考虑了waitervcpu与pioneervcpu的优先级,保证了waitervcpu的调度公平性。84.在本技术上述实施例中,基于目标优先级确定虚拟主机待调度的处理器,包括:响应于目标优先级为虚拟主机需要调度的处理器的优先级中最高优先级,则将第二处理器确定为目标处理器;响应于目标优先级不为虚拟主机需要调度的处理器的优先级中最高优先级,则将虚拟主机需要调度的处理器中优先级高于目标阈值的处理器,确定为目标处理器。85.在一种可选的实施例中,若目标优先级为虚拟主机需要调度的处理器的优先级中最高优先级,则可以将第二处理器确定为目标处理器,可以通过优先级来确定待调度的目标处理器,可以优先调度p中相关的pioneervcpu。若目标优先级不为虚拟主机需要调度的处理器的优先级中最高优先级,则可以将虚拟主机需要调度的处理器中优先级高于目标阈值的处理器确定为待调度的目标处理器,在调度完成之后,可以提高p的一个优先级,以避免excessivevcpuspinning问题长期无法解决。86.在本技术上述实施例中,该方法还包括:在对目标处理器调度完成之后,增加目标优先级,并按照增加后的目标优先级调度第二处理器。87.在一种可选的实施例中,在对目标处理器调度完成之后,可以增加目标优先级,并按照增加后的目标优先级调度第二处理器,以避免excessivevcpuspinning问题长期无法解决。88.需要说明的是,目前kvm针对excessivevcpuspinning调度策略为,如果存在vcpu(waitervcpu)需要的spinlock,由其他vcpu(pioneervcpu)持有,但是pioneervcpu没有被调度到pcpu上时,hypervisor将需要调度pioneervcpu的请求发送给hostos,hostos调度pioneervcpu到pcpu上。但是,如果调度pioneervcpu的请求与hostos的本身的调度策略违背时(出于调度公平性考虑),hostos会忽略调度pioneervcpu的请求,存在pioneervcpu长期无法调度到pcpu的情况,导致该excessivevcpuspinning问题没有有效解决。通过上述步骤,可以在每轮调度pioneervcpu失败后,会提高pioneervcpu的优先级,保证excessivevcpuspinning问题能在有限时间能解决。89.以上,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。90.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。91.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的数据处理方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。92.实施例293.根据本发明实施例,还提供了一种数据处理方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。94.图4是本剧本技术实施例的一种数据处理方法的流程图,如图4所示,该方法可以包括如下步骤:95.步骤s402,通过调用第一接口确定多个虚拟主机。96.其中,第一接口包括第一参数,第一参数的参数值为多个虚拟主机的信息,多个虚拟主机共享相同的物理主机。97.在本发明上述步骤s402提供的技术方案中,第一接口可以是服务器与客户端之间进行数据交互的接口。98.步骤s404,向每个虚拟主机分配第一颜色。99.其中,第一颜色用于对物理主机的物理内存进行着色处理,以得到第一内存。100.步骤s406,基于第一颜色的种类和每个虚拟主机的第二颜色的种类,对第一内存映射和第二内存进行映射处理,得到映射结果。101.其中,第二颜色用于对每个虚拟主机的物理内存进行着色处理,以得到第二内存。102.步骤s408,基于映射结果对物理主机的缓存行和/或虚拟主机的缓存行进行着色处理,得到着色结果。103.步骤s410,通过调用第二接口输出着色结果。104.其中,第二接口包括第二参数,第二参数的参数值为着色结果。105.在本发明上述步骤s410提供的技术方案中,第二接口可以是服务器与客户端之间进行数据交互的接口,服务器可以将检测结果传入第二接口,作为第二接口的一个参数,实现将着色结果下发至客户端的目的。106.需要说明的是,本技术上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。107.实施例3108.根据本技术实施例,还提供了一种用于实施上述数据处理方法的数据处理装置,如图5所示,该装置500包括:确定模块502、分配模块504、映射模块506、着色模块508。109.其中,确定模块用于确定多个虚拟主机,其中,多个虚拟主机共享相同的物理主机;分配模块,用于向每个虚拟主机分配第一颜色,其中,第一颜色用于对物理主机的物理内存进行着色处理,以得到第一内存;映射模块,用于基于第一颜色的种类和每个虚拟主机的第二颜色的种类,对第一内存和第二内存进行映射处理,得到映射结果,其中,第二颜色用于对每个虚拟主机的物理内存进行着色处理,以得到第二内存;着色模块,用于基于所述映射结果对所述物理主机的缓存行和/或所述虚拟主机的缓存行进行着色处理。110.此处需要说明的是,上述确定模块502、分配模块504、映射模块506、着色模块508对应于实施例1中的步骤s202至步骤s208,四个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。111.本技术上述实施例中,确定模块还用于基于每个虚拟主机所使用的目标处理器的数量,确定第一颜色的种类的数量。112.本技术上述实施例中,确定模块还用于基于每个虚拟主机所使用的处理器的数量占多个虚拟主机所使用的处理器的数量之和的比例,确定第一颜色的种类的数量。113.本技术上述实施例中,映射模块还用于基于第一颜色的种类的第一数量和第二颜色的种类的第二数量,将第二内存映射至第一内存上,得到映射结果。114.本技术上述实施例中,映射模块还用于响应于第一数量大于或等于第二数量,则将第二数量的第二内存一一映射至第二数量的第一内存上。115.本技术上述实施例中,映射模块还用于响应于第一数量小于第二数量,则将第二数量中第一子数量的第二内存一一映射至第一子数量的第一内存,且将第二数量中第二子数量的第二内存映射至相同第二颜色数据对应的第二子数量的第一内存。116.本技术上述实施例中,第二子数量的第一内存未相邻。117.本技术上述实施例中,映射模块还用于响应于虚拟主机释放资源数据,则将新增加的第二颜色数据对应的物理页映射至虚拟主机中;和/或,响应于虚拟主机释放资源数据,则在虚拟主机中对减少的第二颜色数据对应的物理页进行替换。118.本技术上述实施例中,确定模块还用于基于虚拟主机的第一处理器的调度优先级和虚拟主机的第二处理器的调度优先级确定目标优先级,其中,第一处理器基于目标数据执行,目标数据为将第二处理器调度至物理主机的第三处理器上执行而得到;确定模块还用于基于目标优先级确定虚拟主机待调度的目标处理器。119.本技术上述实施例中,确定模块还用于响应于目标优先级为虚拟主机需要调度的处理器的优先级中最高优先级,则将第二处理器确定为目标处理器;确定模块还用于响应于目标优先级不为虚拟主机需要调度的处理器的优先级中最高优先级,则将虚拟主机需要调度的处理器中优先级高于目标阈值的处理器,确定为目标处理器。120.本技术上述实施例中,确定模块还用于在对目标处理器调度完成之后,增加目标优先级,并按照增加后的目标优先级调度第二处理器。121.需要说明的是,本技术上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。122.实施例4123.根据本技术实施例,还提供了一种用于实施上述数据处理方法的数据处理装置,如图6所示,该装置600包括:确定模块602、分配模块604、映射模块606、着色模块608、输出模块610。124.其中,确定模块用于通过调用第一接口确定多个虚拟主机,其中,第一接口包括第一参数,第一参数的参数值为多个虚拟主机的信息,多个虚拟主机共享相同的物理主机;分配模块用于向每个虚拟主机分配第一颜色,其中,第一颜色用于对物理主机的物理内存进行着色处理,以得到第一内存;映射模块用于基于第一颜色的种类和每个虚拟主机的第二颜色的种类,对第一内存映射和第二内存进行映射处理,得到映射结果,其中,第二颜色用于对每个虚拟主机的物理内存进行着色处理,以得到第二内存;着色模块用于基于映射结果对物理主机的缓存行和/或虚拟主机的缓存行进行着色处理,得到着色结果;输出模块用于通过调用第二接口输出着色结果,其中,第二接口包括第二参数,第二参数的参数值为着色结果。125.此处需要说明的是,上述确定模块602、分配模块604、映射模块606、着色模块608、输出模块610对应于实施例2的步骤s402至步骤s410,五个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。126.需要说明的是,本技术上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。127.实施例5128.本发明的实施例可以提供一种数据处理系统,其可以包括计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。129.可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。130.在本实施例中,上述计算机终端可以执行应用程序的数据处理方法中以下步骤的程序代码:确定多个虚拟主机,其中,多个虚拟主机共享相同的物理主机;向每个虚拟主机分配第一颜色,其中,第一颜色用于对物理主机的物理内存进行着色处理,以得到第一内存;基于第一颜色的种类和每个虚拟主机的第二颜色的种类,对第一内存和第二内存进行映射处理,得到映射结果,其中,第二颜色用于对每个虚拟主机的物理内存进行着色处理,以得到第二内存;基于映射结果对物理主机的缓存行和/或虚拟主机的缓存行进行着色处理。131.可选地,图7是根据本发明实施例的一种计算机终端的结构框图。如图7所示,该计算机终端可以包括:一个或多个(图中仅示出一个)处理器、存储器。132.其中,存储器可用于存储软件程序以及模块,如本发明实施例中的安全数据处理方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的系统漏洞攻击的检测方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。133.处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:确定多个虚拟主机,其中,多个虚拟主机共享相同的物理主机;向每个虚拟主机分配第一颜色,其中,第一颜色用于对物理主机的物理内存进行着色处理,以得到第一内存;基于第一颜色的种类和每个虚拟主机的第二颜色的种类,对第一内存和第二内存进行映射处理,得到映射结果,其中,第二颜色用于对每个虚拟主机的物理内存进行着色处理,以得到第二内存;基于映射结果对物理主机的缓存行和/或虚拟主机的缓存行进行着色处理。134.可选的,上述处理器还可以执行如下步骤的程序代码:基于每个虚拟主机所使用的目标处理器的数量,确定第一颜色的种类的数量。135.可选的,上述处理器还可以执行如下步骤的程序代码:基于每个虚拟主机所使用的处理器的数量占多个虚拟主机所使用的处理器的数量之和的比例,确定第一颜色的种类的数量。136.可选的,上述处理器还可以执行如下步骤的程序代码:基于第一颜色的种类的第一数量和第二颜色的种类的第二数量,将第二内存映射至第一内存上,得到映射结果。137.可选的,上述处理器还可以执行如下步骤的程序代码:响应于第一数量大于或等于第二数量,则将第二数量的第二内存一一映射至第二数量的第一内存上。138.可选的,上述处理器还可以执行如下步骤的程序代码:响应于第一数量小于第二数量,则将第二数量中第一子数量的第二内存一一映射至第一子数量的第一内存,且将第二数量中第二子数量的第二内存映射至相同第二颜色数据对应的第二子数量的第一内存。139.可选的,上述处理器还可以执行如下步骤的程序代码:第二子数量的第一内存未相邻。140.可选的,上述处理器还可以执行如下步骤的程序代码:响应于虚拟主机释放资源数据,则将新增加的第二颜色数据对应的物理页映射至虚拟主机中;和/或,响应于虚拟主机释放资源数据,则在虚拟主机中对减少的第二颜色数据对应的物理页进行替换。141.可选的,上述处理器还可以执行如下步骤的程序代码:基于虚拟主机的第一处理器的调度优先级和虚拟主机的第二处理器的调度优先级确定目标优先级,其中,第一处理器基于目标数据执行,目标数据为将第二处理器调度至物理主机的第三处理器上执行而得到;基于目标优先级确定虚拟主机待调度的目标处理器。142.可选的,上述处理器还可以执行如下步骤的程序代码:响应于目标优先级为虚拟主机需要调度的处理器的优先级中最高优先级,则将第二处理器确定为目标处理器;响应于目标优先级不为虚拟主机需要调度的处理器的优先级中最高优先级,则将虚拟主机需要调度的处理器中优先级高于目标阈值的处理器,确定为目标处理器。143.可选的,上述处理器还可以执行如下步骤的程序代码:在对目标处理器调度完成之后,增加目标优先级,并按照增加后的目标优先级调度第二处理器。144.采用本发明实施例,提供了一种数据处理的方法,首先可以确定多个虚拟主机,其中,多个虚拟主机共享相同的物理主机;向每个虚拟主机分配第一颜色,其中,第一颜色用于对物理主机的物理内存进行着色处理,以得到第一内存;基于第一颜色的种类和每个虚拟主机的第二颜色的种类,对第一内存和第二内存进行映射处理,得到映射结果,其中,第二颜色用于对每个虚拟主机的物理内存进行着色处理,以得到第二内存;基于映射结果对物理主机的缓存行和/或虚拟主机的缓存行进行着色处理。容易注意到的是,可以获取到物理主机的第一颜色和虚拟主机的第二颜色,通过结合第一颜色的种类和第二颜色的种类可以对颜色进行合理的分配,在对第一内存和第二内存进行映射处理时,可以映射得到一个连续但是颜色相间的内存,可以提高缓存的利用率,进而解决了虚拟主机和物理主机之间无法协作应用缓存着色的技术问题。145.本领域普通技术人员可以理解,图7所示的结构仅为示意,计算机终端也可以是智能手机(如android手机、ios手机等)、平板电脑、掌声电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图7其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。146.本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。147.需要说明的是,本技术上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。148.实施例6149.本发明的实施例还提供了一种计算机可读存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的数据的处理方法所执行的程序代码。150.可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。151.可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:确定多个虚拟主机,其中,多个虚拟主机共享相同的物理主机;向每个虚拟主机分配第一颜色,其中,第一颜色用于对物理主机的物理内存进行着色处理,以得到第一内存;基于第一颜色的种类和每个虚拟主机的第二颜色的种类,对第一内存和第二内存进行映射处理,得到映射结果,其中,第二颜色用于对每个虚拟主机的物理内存进行着色处理,以得到第二内存;基于映射结果对物理主机的缓存行和/或虚拟主机的缓存行着色处理。152.可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:基于每个虚拟主机所使用的目标处理器的数量,确定第一颜色的种类的数量。153.可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:基于每个虚拟主机所使用的处理器的数量占多个虚拟主机所使用的处理器的数量之和的比例,确定第一颜色的种类的数量。154.可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:基于第一颜色的种类的第一数量和第二颜色的种类的第二数量,将第二内存映射至第一内存上,得到映射结果。155.可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:响应于第一数量大于或等于第二数量,则将第二数量的第二内存一一映射至第二数量的第一内存上。156.可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:响应于第一数量小于第二数量,则将第二数量中第一子数量的第二内存一一映射至第一子数量的第一内存,且将第二数量中第二子数量的第二内存映射至相同第二颜色数据对应的第二子数量的第一内存。157.可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:第二子数量的第一内存未相邻。158.可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:响应于虚拟主机释放资源数据,则将新增加的第二颜色数据对应的物理页映射至虚拟主机中;和/或,响应于虚拟主机释放资源数据,则在虚拟主机中对减少的第二颜色数据对应的物理页进行替换。159.可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:基于虚拟主机的第一处理器的调度优先级和虚拟主机的第二处理器的调度优先级确定目标优先级,其中,第一处理器基于目标数据执行,目标数据为将第二处理器调度至物理主机的第三处理器上执行而得到;基于目标优先级确定虚拟主机待调度的目标处理器。160.可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:响应于目标优先级为虚拟主机需要调度的处理器的优先级中最高优先级,则将第二处理器确定为目标处理器;响应于目标优先级不为虚拟主机需要调度的处理器的优先级中最高优先级,则将虚拟主机需要调度的处理器中优先级高于目标阈值的处理器,确定为目标处理器。161.可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在对目标处理器调度完成之后,增加目标优先级,并按照增加后的目标优先级调度第二处理器。162.采用本发明实施例,提供了一种数据处理的方法,首先可以确定多个虚拟主机,其中,多个虚拟主机共享相同的物理主机;向每个虚拟主机分配第一颜色,其中,第一颜色用于对物理主机的物理内存进行着色处理,以得到第一内存;基于第一颜色的种类和每个虚拟主机的第二颜色的种类,对第一内存和第二内存进行映射处理,得到映射结果,其中,第二颜色用于对每个虚拟主机的物理内存进行着色处理,以得到第二内存;基于映射结果对物理主机的缓存行和/或虚拟主机的缓存行进行着色处理。容易注意到的是,可以获取到物理主机的第一颜色和虚拟主机的第二颜色,通过结合第一颜色的种类和第二颜色的种类可以对颜色进行合理的分配,在对第一内存和第二内存进行映射处理时,可以映射得到一个连续但是颜色相间的内存,可以提高缓存的利用率,进而解决了虚拟主机和物理主机之间无法协作应用缓存着色的技术问题。163.需要说明的是,本技术上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。164.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。165.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。166.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。167.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。168.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。169.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。170.以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1