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

缓存管理方法、装置、服务器及计算机可读存储介质

2022-10-29 01:16:50 来源:中国专利 TAG:


1.本技术涉及存储技术领域,特别涉及一种缓存管理方法、装置、服务器及计算机可读存储介质。


背景技术:

2.容器技术是指将应用程序打包到容器中,以实现不同应用程序在同一主机上隔离运行,互不影响。为了提了更好的安全性和隔离性,又发展出了安全容器技术,安全容器技术是指将容器放置在独立的虚拟机中运行。但运行于虚拟机中容器在向主机的某个文件发起文件访问请求时,会在主机和虚拟机中各以缓存页的形式创建一份文件缓存,运行在同一主机上的不同虚拟机向同一文件发起访问请求时,均会创建相同的文件缓存,导致大量冗余文件缓存占据内存空间。相关技术中,采用缓存擦洗技术来解决上述问题,该缓存擦洗技术通过对比缓存页的内容,识别出主机中与虚拟机中内容相同的缓存页,从主机中将对应缓存页进行删除。
3.在实现本技术的过程中,发明人发现相关技术至少存在以下问题:上述方法基于内容对比来识别冗余缓存页,需要对主机和虚拟机的缓存页进行扫描,计算开销大,效率低。


技术实现要素:

4.为了解决现有技术缓存管理计算开销大,效率低的问题,本技术实施例提供了一种缓存管理方法、装置、服务器及计算机可读存储介质。该技术方案如下:
5.第一方面,提供了一种缓存管理方法,由服务器中的主机执行,该服务器中包括该主机和多个虚拟机,该虚拟机上运行有容器,该方法包括:
6.接收至少一个第一哈希表,该第一哈希表用于记录对应虚拟机上的多个缓存页对应的文件信息和访问情况信息;
7.基于该至少一个第一哈希表,更新第二哈希表,该第二哈希表用于记录该多个虚拟机上的多个缓存页对应的文件信息和访问情况汇总信息;
8.基于更新后的第二哈希表,确定该多个缓存页的热度信息,该热度信息用于表示对应缓存页的访问情况汇总信息;
9.分别向对应虚拟机发送该多个缓存页的热度信息,该热度信息用于作为该虚拟机删除缓存页的参考信息。
10.在本技术实施例中,主机基于多个虚拟机发送的多个缓存页的访问情况信息,确定该多个缓存页的热度信息,多个虚拟机基于主机发送的多个缓存页的热度信息,对多个缓存页进行处理,降低了缓存页对虚拟机内存的占用,从而提高内存使用效率,由于该方法通过热度信息来进行多个缓存页的管理,计算开销较小,能够实现高效率的缓存管理。
11.在一些实施例中,该基于该至少一个第一哈希表,更新第二哈希表包括:
12.对于任一第一哈希表,基于该第一哈希表中多个缓存页对应的文件信息,确定该
多个缓存页的多个目标表项,该多个目标表项为该多个缓存页在第二哈希表中对应的表项;
13.基于该第一哈希表中多个缓存页对应的访问情况信息,更新该多个目标表项的访问情况汇总信息。
14.在一些实施例中,任一缓存页对应的文件信息包括虚拟块号、文件标识和文件偏移;
15.该基于该第一哈希表中多个缓存页对应的文件信息,确定该多个缓存页的多个目标表项包括:
16.对于该第一哈希表中任一缓存页对应的文件信息,基于该缓存页的虚拟块号,确定该缓存页在第二哈希表中对应的物理块号;
17.基于该第一哈希表对应的虚拟机标识,以及该缓存页的文件标识和文件偏移,在第二哈希表该缓存页对应的物理块号所对应的至少一个表项中,确定该缓存页的目标表项。
18.在一些实施例中,该基于更新后的第二哈希表,确定该多个缓存页的热度信息包括:
19.对于任一虚拟机,基于该更新后的第二哈希表中该虚拟机上的多个缓存页对应的访问情况汇总信息,确定该虚拟机上的多个缓存页在多级队列中的目标队列,该多级队列用于表示多个级别的热度;
20.基于该虚拟机上的多个缓存页在多级队列中的目标队列,确定该虚拟机上的多个缓存页的热度信息。
21.在一些实施例中,该基于该更新后的第二哈希表中该虚拟机上的多个缓存页对应的访问情况汇总信息,确定该虚拟机上的多个缓存页在多级队列中的目标队列包括:
22.对于该虚拟机上的任一缓存页对应的访问情况汇总信息,基于该虚拟机的内存使用信息,对该缓存页的访问情况汇总信息进行缩放;
23.基于缩放后的该缓存页的访问情况汇总信息,确定该缓存页在多级队列中的目标队列。
24.通过对缓存页的访问情况汇总信息进行缩放,使缓存页的访问情况汇总信息与虚拟机的运行状态相对应,为后续确定缓存页的热度信息起到良好的指导作用。
25.在一些实施例中,该基于该虚拟机上的多个缓存页在多级队列中的目标队列,确定该虚拟机上的多个缓存页的热度信息包括:
26.基于该主机的内存使用信息,调整热阈值与冷阈值;
27.基于该虚拟机上的多个缓存页在多级队列中的目标队列、调整后的热阈值和调整后的冷阈值,确定该虚拟机上的多个缓存页的热度信息,该热度信息用于指示对应缓存页是冷页面或热页面。
28.通过对冷阈值和热阈值进行调整,使得所确定的缓存页的热度信息,更加符合主机的运行状态。
29.在一些实施例中,该热度信息用于指示对应缓存页是冷页面、热页面或温页面。
30.通过对缓存页更加细致的冷热分类,使得虚拟机对缓存页的管理粒度更小,从而能够更加符合虚拟机的运行需求。
31.在一些实施例中,该方法还包括:
32.响应于该第二哈希表中存在目标缓存页,将该目标缓存页在多级队列中的目标队列降为低一级队列,该多级队列中低级队列的热度小于高级队列的热度,该目标缓存页指第二哈希表中多个周期没有更新的缓存页。
33.通过对目标缓存页的目标队列进行降级,使得目标队列的级别能够更加准确的表示对应缓存页的访问情况,对确定缓存页的热度信息起到了良好的指导作用。
34.在一些实施例中,该分别向对应虚拟机发送该多个缓存页的热度信息包括下述任一项:
35.分别向对应虚拟机发送该多个缓存页的热度信息;
36.分别向对应虚拟机发送该多个缓存页的热度信息和冗余信息,该冗余信息用于指示对应缓存页在该主机中是否存在冗余缓存页。
37.第二方面,提供了一种缓存管理方法,由服务器中的任一虚拟机执行,该服务器中包括主机和多个虚拟机,该虚拟机上运行有容器,该方法包括:
38.获取第一哈希表,该第一哈希表用于记录该虚拟机上的多个缓存页对应的文件信息和访问情况信息;
39.向该主机发送该第一哈希表;
40.接收该主机基于更新后的第二哈希表返回的该虚拟机上的多个缓存页的热度信息,该第二哈希表用于记录该多个虚拟机上的多个缓存页对应的文件信息和访问情况汇总信息;
41.基于该虚拟机上的多个缓存页的热度信息,对该虚拟机上的多个缓存页进行处理。
42.在一些实施例中,该获取第一哈希表包括:
43.分别统计该虚拟机上的多个缓存页的访问情况信息;
44.基于该虚拟机上的多个缓存页的访问情况信息,对该虚拟机的第一哈希表进行更新,获取更新后的第一哈希表。
45.在一些实施例中,该基于该虚拟机上的多个缓存页的热度信息,对该虚拟机上的多个缓存页进行处理包括:
46.对于该虚拟机上的任一缓存页,响应于该热度信息指示该缓存页为热页面,则保留该缓存页;
47.响应于该热度信息指示该缓存页为冷页面,则删除该缓存页和该第一哈希表中该缓存页对应的文件信息和访问情况信息。
48.在一些实施例中,该方法还包括:
49.接收任一缓存页的冗余信息;
50.该基于该虚拟机上的多个缓存页的热度信息,对该虚拟机上的多个缓存页进行处理还包括:
51.对于该虚拟机上的任一缓存页,响应于该热度信息指示该缓存页为温页面,且该冗余信息指示该缓存页在该主机中存在冗余缓存页,则删除该缓存页和该第一哈希表中该缓存页对应的文件信息和访问情况信息;
52.响应于该热度信息指示该缓存页为温页面,且该冗余信息指示该缓存页在该主机
中不存在冗余缓存页,则保留该缓存页。
53.第三方面,提供了一种缓存管理装置,该装置包括多个功能模块,用于执行如第一方面所提供的缓存管理方法中的对应步骤。
54.第四方面,提供了一种缓存管理装置,该装置包括多个功能模块,用于执行如第二方面所提供的缓存管理方法中的对应步骤。
55.第五方面,提供了一种服务器,该服务器包括通信总线、至少一个网络接口、存储器以及至少一个处理器,该通信总线用于在上述组件之间传送信息,该至少一个网络接口用于与其它设备或通信网络通信,该存储器保存有程序代码,该至少一个处理器通过读取并执行该存储器中保存的程序代码实现上述第一方面或第二方面中缓存管理方法的任一步骤。
56.第六方面,提供了一种计算机可读存储介质,当该计算机可读存储介质中的程序代码由服务器的处理器执行时,使得服务器能够执行上述第一方面或第二方面中缓存管理方法的任一步骤。
附图说明
57.图1是本技术实施例提供的一种缓存管理方法的实施环境示意图;
58.图2是本技术实施例提供的一种服务器200的结构示意图;
59.图3是本技术实施例提供的一种缓存管理方法的步骤流程图;
60.图4是本技术实施例提供的一种第一哈希表的结构示意图;
61.图5是本技术实施例提供的一种缓存管理方法的数据流向示意图;
62.图6是本技术实施例提供的一种缓存管理方法的步骤流程图;
63.图7是本技术实施例提供的一种服务器组件的结构示意图;
64.图8是本技术实施例提供的一种缓存管理方法的步骤流程图;
65.图9是本技术实施例提供的一种多级队列的结构示意图;
66.图10是本技术实施例提供的一种缓存管理装置的结构示意图;
67.图11是本技术实施例提供的一种缓存管理装置的结构示意图。
具体实施方式
68.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
69.容器技术是一种基于命名空间和控制群组实现的轻量级虚拟化技术,目前使用最广泛的容器技术为docker技术,该docker技术能够让开发者打包他们的应用以及依赖包到一个可移植的镜像中,实现不同应用程序在同一系统上隔离运行。为了提了更好的安全性和隔离性,又发展出了安全容器技术,如katacontainer技术,安全容器技术通过将容器放置在独立的虚拟机中运行,为提供了比一般容器技术更安全的容器环境。
70.以安全容器技术为例,本技术实施例提供了如图1所示的实施环境示意图,该实施环境包括服务器100,服务器100包括主机101和多个虚拟机102,该多个虚拟机上分别运行有容器。
71.在一些实施例中,该服务器100为独立的物理服务器,也可以是多个物理服务器构
成的服务器集群或者分布式文件系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器,本技术实施例对此不作限定。
72.其中,该主机101为服务器100提供系统管理服务,用于管理该服务器100中所运行的多个虚拟机102,多个虚拟机102上所运行的容器能够为应用程序提供运行环境,以实现应用程序的相应功能。
73.主机101可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式文件系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器,本技术实施例对此不作限定。
74.多个虚拟机102可以运行于服务器或终端上,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,服务器可以是上述服务器中的任一种,本技术实施例对此不作设定。可选地,多个虚拟机102运行于同一个硬件设备上,或者,存在一个硬件设备上运行有至少两个虚拟机102的情况,本技术实施例对此不做限定。
75.需要说明的是,主机101和多个虚拟机102可以在同一个硬件设备上,也可以在不同的硬件设备上,本技术实施例对此不作限定。
76.图2是本技术实施例提供的一种服务器200的结构示意图。图2所示的服务器200用于执行缓存管理方法所涉及的操作,如图2所示,该服务器200包括至少一个处理器201、通信总线202、存储器203以及至少一个网络接口204。
77.处理器201例如是通用中央处理器(central processing unit,cpu)、网络处理器(network processer,np)、图形处理器(graphics processing unit,gpu)、神经网络处理器(neural-network processing units,npu)、数据处理单元(data processing unit,dpu)、微处理器或者一个或多个用于实现本技术方案的集成电路。例如,处理器201包括专用集成电路(application-specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。pld例如是复杂可编程逻辑器件(complex programmable logic device,cpld)、现场可编程逻辑门阵列(field-programmable gate array,fpga)、通用阵列逻辑(generic array logic,gal)或其任意组合。
78.通信总线202用于在上述组件之间传送信息。通信总线202可选地分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
79.存储器203例如是只读存储器(read-only memory,rom)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,ram)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,
但不限于此。存储器203例如是独立存在,并通过通信总线202与处理器201相连接。或者可选地存储器203和处理器201集成在一起。
80.网络接口204使用任何收发器一类的装置,用于与其它设备或通信网络通信。网络接口204包括有线网络接口,可选地还包括无线网络接口。其中,有线网络接口例如为以太网接口。以太网接口例如是光接口、电接口或其组合。无线网络接口例如为无线局域网(wireless local area networks,wlan)接口,蜂窝网络接口或其组合等。
81.在一些实施例中,处理器201包括一个或多个cpu,如图2中所示的cpu0和cpu1。
82.在一些实施例中,网络设备200可选地包括多个处理器,如图2中所示的处理器201和处理器205。这些处理器中的每一个例如是一个单核处理器,又如是一个多核处理器。这里的处理器可选地指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
83.在一些实施例中,服务器200还包括输出设备和输入设备。输出设备可选地以多种方式来显示信息。例如,输出设备可选地是液晶显示器(liquid crystal display,lcd)、发光二级管(light emitting diode,led)显示设备、阴极射线管(cathode ray tube,crt)显示设备或投影仪(projector)等。输入设备和处理器201通信,可选地以多种方式接收用户的输入。例如,输入设备可选地是鼠标、键盘、触摸屏设备或传感设备等。
84.可选地,处理器201通过读取存储器203中保存的程序代码210实现下述实施例中的方法,或者,处理器201通过内部存储的程序代码实现下述实施例中的方法。在处理器201通过读取存储器203中保存的程序代码210实现下述实施例中的方法的情况下,存储器203中保存实现本技术实施例提供的缓存管理方法的程序代码。
85.处理器201实现上述功能的更多细节请参考下面各个方法实施例中的描述,在这里不再重复。
86.本技术实施例还提供了一种包括程序代码的计算机可读存储介质,例如包括程序代码的存储器203,上述程序代码可由服务器200的处理器201执行以完成缓存管理方法。可选地,计算机可读存储介质可以是只读内存(read-only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact-disc read-only memory,cd-rom)、磁带、软盘和光数据存储设备等。
87.图3是本技术实施例提供的一种缓存管理方法的步骤流程图,该方法应用于服务器中,如图3所示,该缓存管理方法包括以下步骤:
88.301、虚拟机获取第一哈希表,该第一哈希表用于记录该虚拟机上的多个缓存页对应的文件信息和访问情况信息。
89.对于该第一哈希表中的任一缓存页,该缓存页对应的文件信息包括虚拟块号、文件标识和文件偏移。其中,虚拟块号用于表示该缓存页是由该虚拟机访问该虚拟块号对应的虚拟磁盘块生成的,文件标识用于表示该缓存页所对应的文件,文件偏移用于表示该缓存页中的数据在对应文件中的位置。该缓存页对应的访问情况信息指,上一个周期内该缓存页的访问次数。该第一哈希表的结构如图4所示,该第一哈希表包括多个表项,每个表项用一个虚拟块号来标注,一个虚拟块号对应于一个表项,每个表项中包括对应缓存页的文件标识、文件偏移和访问情况信息。
90.其中,虚拟机获取第一哈希表包括下述多种方式。
91.在一些实施例中,虚拟机基于缓存页的访问情况实时更新第一哈希表,也即是,该虚拟机获取第一哈希表的步骤包括:在每个周期中,虚拟机将第一哈希表中的访问情况信息清零,响应于该虚拟机访问任一缓存页,将该缓存页在第一哈希表中对应的访问情况信息加1,完成对第一哈希表的实时更新,虚拟机获取更新后的第一哈希表。
92.在一些实施例中,虚拟机对多个缓存页的访问情况进行统计,每周期基于所统计的多个缓存页的访问次数更新一次第一哈希表。也即是,该虚拟机获取第一哈希表的步骤包括:在任一周期开始时,如图5中501部分所示,虚拟机将监控服务所统计的上一个周期内多个缓存页的访问次数发送给记录服务,并将监控服务所统计的多个缓存页的访问次数清零,记录服务基于该多个缓存页的文件标识和文件偏移,确定该多个缓存页在第一哈希表中对应的表项,并分别用接收到的该多个缓存页的访问次数,替换第一哈希表中对应表项中的访问次数,完成对第一哈希表的更新,以使虚拟机获取更新后的第一哈希表。
93.302、虚拟机向主机发送该第一哈希表。
94.在一些实施例中,如图5中502部分所示,虚拟机基于缓存访问情况同步服务,向主机发送更新后的第一哈希表和该虚拟机的内存使用信息。通过发送该虚拟机的内存使用信息,能够使得主机所确定的缓存页的热度信息更符合该虚拟机的实际运行情况。
95.需要说明的是,上述步骤301至步骤302,是以一个虚拟机获取第一哈希表的过程为例进行说明,服务器上多个虚拟机均采用同理的步骤来进行哈希表的获取和发送,且各个虚拟机的周期一致。
96.303、主机接收至少一个第一哈希表,该第一哈希表用于记录对应虚拟机上的多个缓存页对应的文件信息和访问情况信息。
97.在一些实施例中,主机接收至少一个第一哈希表与多个虚拟机的内存使用信息,该内存使用信息用于指示对应虚拟机的内存使用状态为高水平、中水平或低水平。
98.在一些实施例中,本步骤303还包括,在每个周期内,主机检测是否接收到所有虚拟机的第一哈希表,响应于主机检测到没有接收到所有虚拟机的第一哈希表,则主机向未接收到第一哈希表的虚拟机发送控制消息,该控制消息用于指示虚拟机重新发送第一哈希表,响应于主机检测到已接收到所有虚拟机的第一哈希表,则继续执行下述步骤。通过检测是否接收到所有虚拟机的数据,来确保对虚拟机中缓存页的冷热情况进行准确确定。
99.304、主机基于至少一个第一哈希表中多个缓存页对应的文件信息,确定该多个缓存页的多个目标表项,该多个目标表项为多个缓存页在第二哈希表中对应的表项,该第二哈希表用于记录多个虚拟机上的多个缓存页对应的文件信息和访问情况汇总信息。
100.对于第二哈希表中任一虚拟机上的任一缓存页,该缓存页对应的文件信息包括物理块号、文件标识和文件偏移,其中,物理块号用于表示该缓存页是由虚拟机访问该物理块号对应的物理磁盘块所生成的。在第二哈希表中,该缓存页对应的访问情况汇总信息指,多个周期内该缓存页的访问次数的总和。
101.该第二哈希表包括多个表项,每个表项用一个物理块号来标注,一个物理块号对应于至少一个表项,一个物理块号用于指示一个物理磁盘块,该至少一个表项对应于不同虚拟机访问该物理磁盘块产生的缓存页。每个表项包括对应缓存页的文件标识、文件偏移、访问情况信息和该缓存页对应的虚拟机标识。
102.在一些实施例中,本步骤304由以下步骤304a至步骤304b实现:
103.304a、对于任一第一哈希表中任一缓存页对应的文件信息,主机基于该缓存页的虚拟块号,确定该缓存页在第二哈希表中对应的物理块号。
104.在一些实施例中,主机中记录有物理块号与各个虚拟机的虚拟块号的映射表,主机基于该第一哈希表的虚拟机标识,确定物理块号与该虚拟机的虚拟块号的映射表,基于该缓存页的虚拟块号和该映射表,确定该缓存页在第二哈希表中对应的物理块号。
105.304b、主机基于第一哈希表对应的虚拟机标识,以及该缓存页的文件标识和文件偏移,在第二哈希表该缓存页对应的物理块号所对应的至少一个表项中,确定该缓存页的目标表项。
106.在一些实施例中,主机基于该缓存页在第二哈希表中对应的物理块号,确定该物理块号在第二哈希表中对应的至少一个表项,并将第一哈希表中该缓存页所对应的虚拟机标识、该缓存页的文件标识和文件偏移,与该第二哈希表的该至少一个表项中相应的数据进行对比,响应于第一哈希表中该缓存页所对应的虚拟机标识、该缓存页的文件标识和文件偏移与任一表项中相应的数据相同,则主机将该表项确定为目标表项,该目标表项指该缓存页在第二哈希表中对应的表项。
107.在本技术实施例中,主机基于多个缓存页的文件信息,确定了该多个缓存页在第二哈希表中对应的表项,为后续进行第二哈希表的更新起到了良好的指导作用。
108.305、主机基于至少一个第一哈希表中多个缓存页对应的访问情况信息,更新多个目标表项的访问情况汇总信息。
109.在一些实施例中,对于任一第一哈希表中的任一缓存页的访问情况信息,主机将该缓存页的访问情况信息与第二哈希表中对应目标表项中的访问情况汇总信息相加,完成对该缓存页的目标表项的访问情况汇总信息的更新。
110.306、主机基于更新后的第二哈希表,确定多个缓存页的热度信息,该热度信息用于表示对应缓存页的访问情况汇总信息。
111.在一些实施例中,访问情况汇总信息划分多个级别,对于任一缓存页,主机将该缓存页的访问情况汇总信息分别与各个级别进行对比,响应于该缓存页的访问情况汇总信息符合任一级别,则将该缓存页确定为该级别,主机基于该缓存页的级别确定该缓存页的热度信息。
112.在一些实施例中,对于任一虚拟机上的多个缓存页,如图5中503部分所示,主机采用多级队列来实现级别的划分,进而确定该虚拟机上的多个缓存页的热度信息,下面基于步骤306a至步骤306b对上述确定多个缓存页的热度信息的过程进行说明。
113.306a、主机基于更新后的第二哈希表中该多个缓存页的访问情况汇总信息,确定该多个缓存页在多级队列中的目标队列,该多级队列包含m个级别的队列,m为大于0的整数,低级队列所表示的热度小于高级队列所表示的热度。
114.在一些实施例中,主机基于多个缓存页的访问情况汇总信息,直接确定多个缓存页在多级队列中的目标队列,也即是,该步骤306a包括:对于该虚拟机上的任一缓存页,热度识别模块基于该缓存页在更新后的第二哈希表中对应的访问情况汇总信息,计算得到该缓存页的目标队列的级别,计算方式如公式(1)所示,
[0115][0116]
其中,i表示该缓存页的目标队列的级别,i为大于或等于0的整数,f表示该缓存页
在更新后的第二哈希表中对应的访问情况汇总信息。例如,存在任一虚拟机上的任一缓存页,在更新后的第二哈希表中对应的访问情况汇总信息f为32,则通过公式(1)计算得到该缓存页的目标队列的级别i为5,即该缓存页的目标队列为5级队列。
[0117]
在一些实施例中,主机基于该虚拟机的内存使用信息,对该多个缓存页的访问情况汇总信息进行缩放,再基于缩放后的访问情况汇总信息,确定多个缓存页在多级队列中的目标队列,也即是,该步骤306a包括:对于该虚拟机上的任一缓存页,主机基于该虚拟机的内存使用信息,对该缓存页在更新后的第二哈希表中对应的访问情况汇总信息进行缩放,该内存使用信息用于指示该虚拟机的内存使用状态为高水平、中水平或低水平。主机基于缩放后的该缓存页的访问情况汇总信息,计算得到该缓存页的目标队列的级别,计算方式与上述基于该缓存页的访问情况汇总信息,直接得到该缓存页的目标队列的级别的方式同理,在此不再赘述。
[0118]
其中,缩放方式包括下述任一项:
[0119]
响应于该内存使用信息指示该虚拟机的内存使用状态为高水平,将该缓存页的访问情况汇总信息缩小目标倍数,可选地,该目标倍数为2倍;
[0120]
响应于该内存使用信息指示该虚拟机的内存使用状态为中水平,该缓存页的访问情况汇总信息不变;
[0121]
响应于该内存使用信息指示该虚拟机的内存使用状态为低水平,将该缓存页的访问情况汇总信息放大目标倍数,可选地,该目标倍数为2倍。
[0122]
例如,存在任一虚拟机的任一缓存页,在更新后的第二哈希表中的访问情况汇总信息为32,该虚拟机的内存使用状态为高水平,则将该缓存页的访问情况汇总信息进行缩放,得到缩放后的访问情况汇总信息为16,基于缩放后的访问情况信息计算得到该缓存页的目标队列的级别为4,即该缓存页的目标队列为4级队列。
[0123]
通过对缓存页的访问情况汇总信息进行缩放,使缓存页的访问情况汇总信息与虚拟机的运行状态相对应,为后续确定缓存页的热度信息起到良好的指导作用。
[0124]
306b、主机基于该虚拟机上的多个缓存页在多级队列中的目标队列,确定该虚拟机上的多个缓存页的热度信息。
[0125]
本步骤306b的过程为下述任一项:
[0126]
在一些实施例中,对于该虚拟机上的任一缓存页,主机基于该缓存页的目标队列的级别、冷阈值和热阈值,确定该缓存页的热度信息,其过程如下所述:
[0127]
一种可能的实现方式中,该热度信息用于指示该缓存页为冷页面或热页面,响应于该缓存页的目标队列的级别小于或等于冷阈值,则主机将该缓存页的热度信息确定为冷页面,响应于该缓存页的目标队列的级别大于或等于热阈值,则主机将该缓存页的热度信息确定为热页面。
[0128]
另一种可能的实现方式中,该热度信息用于指示该缓存页为冷页面、热页面或温页面,响应于该缓存页的目标队列的级别小于或等于冷阈值,则主机将该缓存页的热度信息确定为冷页面,响应于该缓存页的目标队列的级别大于或等于热阈值,则主机将该缓存页的热度信息确定为热页面,响应于该缓存页的级别小于热阈值且大于冷阈值,则主机将该缓存页的热度信息确定为温页面。
[0129]
通过对缓存页更加细致的冷热分类,使得虚拟机对缓存页的管理粒度更小,从而
能够更加符合虚拟机的运行需求。
[0130]
在一些实施例中,对于该虚拟机上的任一缓存页,主机基于主机的内存使用信息对冷阈值和热阈值进行调整,该内存使用信息用于指示该主机的内存使用状态为高水平、中水平或低水平,再基于该缓存页的目标队列的级别、调整后的冷阈值和调整后的热阈值,确定该缓存页的热度信息,其过程与上述基于该缓存页的目标队列的级别、冷阈值和热阈值,确定该缓存页的热度信息的过程同理,在此不再赘述。
[0131]
其中,调整方式包括下述任一项:
[0132]
响应于该内存使用信息指示主机的内存使用状态为高水平,将冷阈值和热阈值增加目标数量,可选地,该目标数量为1;
[0133]
响应于该内存使用信息指示主机的内存使用状态为中水平,冷阈值和热阈值不变;
[0134]
响应于该内存使用信息指示主机的内存使用状态为低水平,将冷阈值和热阈值减小目标数量,可选地,该目标数量为1。
[0135]
通过对冷阈值和热阈值进行调整,使得所确定的缓存页的热度信息,更加符合主机的运行状态。
[0136]
在一些实施例中,本步骤306还包括,响应于第二哈希表中存在目标缓存页,则主机将该目标缓存页的目标队列降为低一级队列,该目标缓存页指第二哈希表中n个周期没有更新的缓存页,n为大于1的整数。例如,主机每隔n个周期,检测第二哈希表中所有表项的时间戳,响应于存在任一表项,该表项的时间戳指示该表项n个周期没有更新,则主机将该表项对应的缓存页确定为目标缓存页,将目标缓存页的目标队列降为低一级队列。
[0137]
通过对目标缓存页的目标队列进行降级,使得目标队列的级别能够更加准确的表示对应缓存页的访问情况,对确定缓存页的热度信息起到了良好的指导作用。
[0138]
在一些实施例中,本步骤306还包括,主机基于更新后的第二哈希表中多个缓存页对应的文件信息,确定该多个缓存页的冗余信息,该冗余信息用于指示对应缓存页在在主机中是否存在冗余缓存页(也即是相同的缓存页)。确定该多个缓存页的冗余信息的过程包括:对于任一缓存页,主机将该缓存页在第二哈希表中对应的文件标识和文件偏移,与主机内存中的多个缓存页的文件标识和文件偏移进行对比,响应于主机内存中存在任一缓存页的文件标识与文件偏移与该缓存页在第二哈希表中对应的信息相同,则主机将该缓存页的冗余信息确定为在主机中存在冗余缓存页,响应于主机内存中所有缓存页的文件标识与文件偏移与该缓存页在第二哈希表中对应的信息均不相同,则主机将该缓存页的冗余信息确定为在主机不存在冗余缓存页。
[0139]
通过为多个缓存页确定冗余信息,为后续虚拟机进行多个缓存页的管理提供了参考信息,使虚拟机能够进行更细粒度的缓存管理。
[0140]
307、主机分别向对应虚拟机发送多个缓存页的热度信息。
[0141]
本步骤307的过程为下述任一项:
[0142]
在一些实施例中,主机基于该多个缓存页在第二哈希表中对应的虚拟机标识,确定该多个缓存页对应的虚拟机,并分别向对应的虚拟机发送该多个缓存页的热度信息。
[0143]
在一些实施例中,若在上述步骤306中,主机为该多个缓存页确定了冗余信息,则本步骤307包括:主机基于该多个缓存页在第二哈希表中对应的虚拟机标识,确定该多个缓
存页对应的虚拟机,并分别向对应的虚拟机发送该多个缓存页的热度信息和冗余信息。
[0144]
需要说明的是,主机执行上述步骤307之后,基于多个虚拟机上的多个缓存页的热度信息和冗余信息,对主机内存中的缓存页进行管理。在一些实施例中,对于主机内存中的任一缓存页,响应于该热度信息和冗余信息指示该缓存页为第一类型,则主机保留该缓存页,该第一类型表示该缓存页为任一虚拟机上的任一缓存页的冗余缓存页,且该虚拟机上的该缓存页为热页面,响应于该热度信息和冗余信息指示该缓存页为第二类型,则主机删除该缓存页和第二哈希表中对应的表项,该第二类型表示该缓存页为任一虚拟机上的任一缓存页的冗余缓存页,且该虚拟机上的该缓存页为冷页面或温页面。
[0145]
308、虚拟机接收主机基于更新后的第二哈希表返回的该虚拟机上的多个缓存页的热度信息。
[0146]
本步骤308的过程为下述任一项:
[0147]
在一些实施例中,虚拟机接收主机基于更新后的第二哈希表返回的该虚拟机上的多个缓存页的热度信息。
[0148]
在一些实施例中,若在上述步骤307中,主机向虚拟机发送了该多个缓存页的冗余信息,则本步骤308包括:虚拟机接收主机基于更新后的第二哈希表返回的该虚拟上的多个缓存页的热度信息和冗余信息。
[0149]
309、虚拟机基于多个缓存页的热度信息,对该虚拟机上的多个缓存页进行处理。
[0150]
本步骤309的过程为下述任一项,如图5中504部分所示:
[0151]
在一些实施例中,对于该虚拟机上的任一缓存页,响应于该热度信息指示该缓存页为热页面,则虚拟机保留该缓存页,响应于该热度信息指示该缓存页为冷页面,则虚拟机删除该缓存页和第一哈希表中该缓存页对应的文件信息和访问情况信息。
[0152]
在一些实施例中,若在上述步骤308中,虚拟机接收了该多个缓存页的冗余信息,则该步骤309包括:对于该虚拟机上的任一缓存页,如图6所示,响应于该热度信息指示该缓存页为温页面,且该冗余信息指示该缓存页在主机中存在冗余缓存页,则虚拟机删除该缓存页和第一哈希表中该缓存页对应的文件信息和访问情况信息,响应于该热度信息指示该缓存页为温页面,且该冗余信息指示该缓存页在主机中不存在冗余缓存页,则虚拟机保留该缓存页,响应于该热度信息指示该缓存页为热页面,则虚拟机保留该缓存页,响应于该热度信息指示该缓存页为冷页面,则虚拟机删除该缓存页和第一哈希表中该缓存页对应的文件信息和访问情况信息。
[0153]
需要说明的是,上述步骤308至步骤309,是以一个虚拟机接收热度信息并进行多个缓存页管理的过程为例进行说明,服务器上多个虚拟机均采用同理的步骤来接收热度信息并进行多个缓存页管理,且各个虚拟机的周期一致。
[0154]
本技术实施例提出的缓存管理方法,主机基于多个虚拟机发送的多个缓存页的访问情况信息,确定该多个缓存页的热度信息,多个虚拟机基于主机发送的多个缓存页的热度信息,对多个缓存页进行处理,降低了缓存页对虚拟机内存的占用,从而提高内存使用效率,由于该方法通过热度信息来进行多个缓存页的管理,计算开销较小,能够实现高效率的缓存管理。
[0155]
基于上述图3所对应的实施例中描述的方法,下面以服务器中包括主机和4个虚拟机、且以每个虚拟机中的一个缓存页为例进行说明,为了方便表达,下面分别以v1、v2、v3、
v4代表4个虚拟机,分别以v1p1、v2p1、v3p1、v4p1代表v1、v2、v3、v4中的一个缓存页。图7是本技术实施例提供的一种服务器组件的结构示意图,如图7所示,服务器的组件包括底层硬件、主机内核、虚拟机监视器和4个虚拟机,每个虚拟机包括虚拟机内核和运行于该虚拟机上的容器,该容器包括容器环境和运行于该容器上的应用程序。
[0156]
图8是本技术实施例提供的一种缓存管理方法的步骤流程图,如图8所示,该缓存管理方法的流程包括:
[0157]
801、4个虚拟机分别获取第一哈希表,该第一哈希表用于记录对应虚拟机上的缓存页对应的文件信息和访问情况信息。
[0158]
在一些实施例中,4个虚拟机分别基于与步骤301同理的方法,获取第一哈希表,在此不再赘述。
[0159]
示例性的,在当前周期中,4个虚拟机分别在对应的第一哈希表中,将v1p1、v2p1、v3p1、v4p1的访问情况信息更新为5、12、6、0,4个虚拟机分别获取更新后的第一哈希表。
[0160]
802、4个虚拟机分别向主机发送第一哈希表。
[0161]
在一些实施例中,4个虚拟机分别基于缓存访问情况同步服务,向主机发送更新后的第一哈希表和虚拟机的内存使用信息。
[0162]
803、主机接收4个虚拟机发送的4个第一哈希表,该第一哈希表用于记录对应虚拟机上的缓存页对应的文件信息和访问情况信息。
[0163]
在一些实施例中,主机接收4个虚拟机发送的4个第一哈希表和4个虚拟机的内存使用信息。
[0164]
804、主机基于4个第一哈希表中4个缓存页对应的文件信息,确定该4个缓存页的4个目标表项,该4个目标表项为4个缓存页在第二哈希表中对应的表项,该第二哈希表用于记录4个虚拟机上的缓存页的文件信息和访问情况汇总信息。
[0165]
在一些实施例中,主机基于与步骤304同理的方法,确定该4个缓存页的4个目标表项,在此不再赘述。
[0166]
805、主机基于4个第一哈希表中4个缓存页对应的访问情况信息,更新4个目标表项的访问情况汇总信息。
[0167]
在一些实施例中,主机基于与步骤305同理的方法,更新该4个目标表项的访问情况汇总信息,在此不再赘述。
[0168]
示例性的,在当前周期中,v1p1、v2p1、v3p1、v4p1在第二哈希表中对应的访问情况汇总信息分别为30、52、12、3,4个第一哈希表中v1p1、v2p1、v3p1、v4p1对应的访问情况信息分别为5、12、6、0,则主机将第二哈希表中v1p1、v2p1、v3p1、v4p1对应的访问情况汇总信息更新为35、64、18、3。
[0169]
806、主机基于更新后的第二哈希表,确定4个缓存页的热度信息,该热度信息用于表示对应缓存页的访问情况汇总信息。
[0170]
在一些实施例中,主机基于与步骤306同理的方法,确定4个缓存页的热度信息和冗余信息,在此不再赘述。
[0171]
示例性的,在当前周期中,更新后的第二哈希表中v1p1、v2p1、v3p1、v4p1对应的访问情况汇总信息分别为35、64、18、3,4个虚拟机的内存使用信息分别指示v1、v2、v3、v4的内存使用状态为低水平、高水平、中水平、中水平,则主机将v1p1、v2p1、v3p1、v4p1对应的访问
情况汇总信息分别缩放为70、32、18、3,并基于缩放后的访问情况汇总信息确定4个缓存页在多级队列中的目标队列,如图9所示,多级队列中包括9个级别的队列,在上个周期中,v1p1、v2p1、v3p1、v4p1在多级队列中的目标队列分别为4级队列、5级队列、3级队列、1级队列,主机基于当前周期中4个页面调整后的访问情况汇总信息,将v1p1、v2p1、v3p1、v4p1在多级队列中的目标队列分别确定为6级队列、5级队列、4级队列、1级队列。在当前周期中,热阈值和冷阈值分别5和2,主机的内存使用信息指示主机的内存使用状态为高水平,则主机将热阈值和冷阈值调整为6和3,并确定v1p1、v2p1、v3p1、v4p1的热度信息分别为热页面、温页面、温页面、冷页面。主机基于4个缓存页在第二哈希表中对应的文件信息,确定v1p1、v2p1、v3p1、v4p1的冗余信息分别为在主机中不存在冗余缓存页、在主机中存在冗余缓存页、在主机中不存在冗余缓存页、在主机中不存在冗余缓存页。
[0172]
807、主机分别向对应虚拟机发送缓存页的热度信息。
[0173]
在一些实施例中,主机基于与步骤307同理的方法,分别向对应虚拟机发送缓存页的热度信息和冗余信息,在此不再赘述。
[0174]
808、4个虚拟机分别接收主机基于更新后的第二哈希表返回的缓存页的热度信息。
[0175]
在一些实施例中,4个虚拟机分别接收主机基于更新后的第二哈希表返回的缓存页的热度信息和冗余信息。
[0176]
809、4个虚拟机分别基于4个缓存页的热度信息,对4个缓存页进行处理。
[0177]
在一些实施例中,4个虚拟机分别基于与步骤309同理的方法,对4个缓存页进行处理,在此不再赘述。
[0178]
示例性的,在当前周期中,响应于热度信息指示v1p1为热页面,则v1保留该v1p1,响应于热度信息指示v2p1为温页面,且冗余信息指示v2p1在主机中存在冗余缓存页,则v2删除v2p1和第一哈希表中v2p1对应的文件信息和访问情况信息,响应于热度信息指示v3p1为温页面,且冗余信息指示v3p1在主机中不存在冗余缓存页,则v3保留v3p1,响应于热度信息指示v4p1为冷页面,则v4删除v4p1和第一哈希表中v4p1对应的文件信息和访问情况信息。
[0179]
表1展示了在一个周期中,服务器中4个虚拟机的内存使用情况,如表1所示,第二行展示了未使用本技术实施例提出的缓存管理方法进行缓存管理的场景下,4个虚拟机的内存使用情况,第三行展示了使用该缓存管理方法进行缓存管理的场景下,4个虚拟机的内存使用情况,第四行展示了上述两种场景下4个虚拟机内存使用情况的差异。通过表1展示的数据可以看出,本技术实施例提出的缓存管理方法,能够基于热度信息将虚拟机中的部分缓存页删除,降低缓存页对虚拟机内存的占用,从而提高了服务器的内存使用效率。
[0180]
表1
[0181][0182]
本技术实施例提出的缓存管理方法,主机基于多个虚拟机发送的多个缓存页的访
问情况信息,确定该多个缓存页的热度信息,多个虚拟机基于主机发送的多个缓存页的热度信息,对多个缓存页进行处理,降低了缓存页对虚拟机内存的占用,从而提高内存使用效率,由于该方法通过热度信息来进行多个缓存页的管理,计算开销较小,能够实现高效率的缓存管理。
[0183]
图10是本技术实施例提供的一种缓存管理装置的结构示意图,该缓存管理装置用于执行上述缓存管理方法执行时的步骤,参见图10,该缓存管理装置包括:接收模块1001、更新模块1002、确定模块1003和发送模块1004。
[0184]
接收模块1001,用于接收至少一个第一哈希表,该第一哈希表用于记录对应虚拟机上的多个缓存页对应的文件信息和访问情况信息;
[0185]
更新模块1002,用于基于该至少一个第一哈希表,更新第二哈希表,该第二哈希表用于记录该多个虚拟机上的多个缓存页对应的文件信息和访问情况汇总信息;
[0186]
确定模块1003,用于基于更新后的第二哈希表,确定该多个缓存页的热度信息,该热度信息用于表示对应缓存页的访问情况汇总信息;
[0187]
发送模块1004,用于分别向对应虚拟机发送该多个缓存页的热度信息,该热度信息用于作为该虚拟机删除缓存页的参考信息。
[0188]
在一些实施例中,该更新模块1002包括:
[0189]
第一确定子模块,用于对于任一第一哈希表,基于该第一哈希表中多个缓存页对应的文件信息,确定该多个缓存页的多个目标表项,该多个目标表项为该多个缓存页在第二哈希表中对应的表项;
[0190]
更新子模块,用于基于该第一哈希表中多个缓存页对应的访问情况信息,更新该多个目标表项的访问情况汇总信息。
[0191]
在一些实施例中,任一缓存页对应的文件信息包括虚拟块号、文件标识和文件偏移;
[0192]
该第一确定子模块,用于对于该第一哈希表中任一缓存页对应的文件信息,基于该缓存页的虚拟块号,确定该缓存页在第二哈希表中对应的物理块号,基于该第一哈希表对应的虚拟机标识,以及该缓存页的文件标识和文件偏移,在第二哈希表该缓存页对应的物理块号所对应的至少一个表项中,确定该缓存页的目标表项。
[0193]
在一些实施例中,该确定模块1003包括:
[0194]
第二确定子模块,用于对于任一虚拟机,基于该更新后的第二哈希表中该虚拟机上的多个缓存页对应的访问情况汇总信息,确定该虚拟机上的多个缓存页在多级队列中的目标队列,该多级队列用于表示多个级别的热度;
[0195]
该第二确定子模块,用于基于该虚拟机上的多个缓存页在多级队列中的目标队列,确定该虚拟机上的多个缓存页的热度信息。
[0196]
在一些实施例中,该第二确定子模块,用于对于该虚拟机上的任一缓存页对应的访问情况汇总信息,基于该虚拟机的内存使用信息,对该缓存页的访问情况汇总信息进行缩放;
[0197]
基于缩放后的该缓存页的访问情况汇总信息,确定该缓存页在多级队列中的目标队列。
[0198]
在一些实施例中,该第二确定子模块,用于基于该主机的内存使用信息,调整热阈
值与冷阈值;
[0199]
基于该虚拟机上的多个缓存页在多级队列中的目标队列、调整后的热阈值和调整后的冷阈值,确定该虚拟机上的多个缓存页的热度信息,该热度信息用于指示对应缓存页是冷页面或热页面。
[0200]
在一些实施例中,该热度信息用于指示对应缓存页是冷页面、热页面或温页面。
[0201]
在一些实施例中,该装置还包括:
[0202]
调整模块,用于响应于该第二哈希表中存在目标缓存页,将该目标缓存页在多级队列中的目标队列降为低一级队列,该多级队列中低级队列的热度小于高级队列的热度,该目标缓存页指第二哈希表中多个周期没有更新的缓存页。
[0203]
在一些实施例中,该发送模块1004,用于分别向对应虚拟机发送该多个缓存页的热度信息;
[0204]
分别向对应虚拟机发送该多个缓存页的热度信息和冗余信息,该冗余信息用于指示对应缓存页在该主机中是否存在冗余缓存页。
[0205]
需要说明的是:上述实施例提供的缓存管理装置在缓存管理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的缓存管理装置与缓存管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0206]
图11是本技术实施例提供的一种缓存管理装置的结构示意图,该缓存管理装置用于执行上述缓存管理方法执行时的步骤,参见图11,该缓存管理装置包括:获取模块1101、发送模块1102、接收模块1103和处理模块1104。
[0207]
获取模块1101,用于获取第一哈希表,该第一哈希表用于记录该虚拟机上的多个缓存页对应的文件信息和访问情况信息;
[0208]
发送模块1102,用于向该主机发送该第一哈希表;
[0209]
接收模块1103,用于接收该主机基于更新后的第二哈希表返回的该虚拟机上的多个缓存页的热度信息,该第二哈希表用于记录该多个虚拟机上的多个缓存页对应的文件信息和访问情况汇总信息;
[0210]
处理模块1104,用于基于该虚拟机上的多个缓存页的热度信息,对该虚拟机上的多个缓存页进行处理。
[0211]
在一些实施例中,该获取模块1101,用于分别统计该虚拟机上的多个缓存页的访问情况信息;
[0212]
基于该虚拟机上的多个缓存页的访问情况信息,对该虚拟机的第一哈希表进行更新,获取更新后的第一哈希表。
[0213]
在一些实施例中,该处理模块1104,用于对于该虚拟机上的任一缓存页,响应于该热度信息指示该缓存页为热页面,则保留该缓存页;
[0214]
响应于该热度信息指示该缓存页为冷页面,则删除该缓存页和该第一哈希表中该缓存页对应的文件信息和访问情况信息。
[0215]
在一些实施例中,该接收模块1103,还用于接收任一缓存页的冗余信息;
[0216]
该处理模块1104,用于对于该虚拟机上的任一缓存页,响应于该热度信息指示该
缓存页为温页面,且该冗余信息指示该缓存页在该主机中存在冗余缓存页,则删除该缓存页和该第一哈希表中该缓存页对应的文件信息和访问情况信息;
[0217]
响应于该热度信息指示该缓存页为温页面,且该冗余信息指示该缓存页在该主机中不存在冗余缓存页,则保留该缓存页。
[0218]
需要说明的是:上述实施例提供的缓存管理装置在缓存管理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的缓存管理装置与缓存管理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0219]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0220]
以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献