本技术涉及计算机领域,尤其涉及一种存储管理方法及装置。
背景技术:
1、终端设备使用不同可靠性等级的存储器的场景称为存储器混插场景。在存储器混插场景中,无论存储器上存放数据的风险等级如何,该数据被存储器发生故障影响的概率都一样,会降低终端设备的运行可靠性和性能。因而,急需一种存储管理方法,提高存储器混插场景中终端设备的运行可靠性和性能。
2、数据的风险等级为读写数据过程中该数据出现错误的频率,数据出现错误的频率越高则该数据的风险等级越高,反之,该数据的风险等级越低。
技术实现思路
1、本技术实施例能够充分考虑存储器混插场景中影响数据风险等级的相关因素,提供了一种提高存储器混插场景中终端设备的运行可靠性和性能的存储管理方法及相关装置。
2、第一方面,本技术实施例提供了一种存储管理方法,该方法包括:
3、获取第一信息,该第一信息包括目标进程在第一时间段对第一存储空间的第一访存信息。该第一时间段为获取该第一信息前的第一预设时间段。基于该第一信息评估该第一存储空间中存储的数据的风险等级。基于该风险等级将该第一存储空间中存储的数据迁移到第二存储空间。
4、本方案通过获取目标进程在过去某一时间段对目标数据块的访存信息评估该目标数据块的风险等级。其中该访存信息包括该目标进程对缓存或内存的读写操作以及最后一级缓存的命中率。通过分析对目标数据块的访存信息,可以得到目标进程在一段时间内对该目标数据块的读数据频率和写数据频率,进而评估出该目标数据块的风险等级。进一步,基于该风险等级对目标数据块进行存储位置的迁移,可以将目标数据块迁移到合适的存储位置,提高存储该目标数据块的可靠性,降低该数据块发生内存故障的概率,从而达到提升终端设备运行的可靠性和性能。
5、一种可能的实施例中,该第一访存信息包括n个第二访存信息,该n为大于1的整数。该第一时间段包括n个子时间段,该n个子时间段中的第m个子时间段获取的访存信息为该n个第二访存信息中的第m个第二访存信息。该m为1到n的整数。
6、基于上述第一信息评估上述第一存储空间中存储的数据的风险等级,包括:
7、基于该n个第二访存信息评估在第二时间段上述第一存储空间的第三访存信息。该第二时间段为获取第一信息后的第二预设时间段。
8、基于该第三访存信息评估该风险等级。
9、本方案中,首先将第一时间段划分为多个连续的子时间段,并基于该多个连续的子时间段评估多个子访存信息。其次,还可以基于该多个子访存信息预测出下一时间段的访存信息。该风险评估模型根据该下一时间段的访存信息评估的目标数据块的风险等级可以预测该目标数据块风险等级的变化趋势。该风险等级的变化趋势可以使目标数据块被迁移到更加合适的存储位置,进一步提高存储该目标数据块的可靠性,降低该数据块发生内存故障的概率,从而达到提升终端设备运行的可靠性和性能。
10、一种可能的实施例中,上述第一存储空间包括多个缓存行。上述n个第二访存信息中的每一个第二访存信息由多个缓存行的访存信息组成。
11、本方案中,目标数据块包含多个缓存行,相当于访存信息的最小粒度为缓存行。评估该目标数据块的风险等级,是以缓存行为最小评估单元进行逐一评估。因此,可以更加精确的评估得到该目标数据块的风险等级。更加精确的风险等级可以使目标数据块被迁移到更加合适的存储位置,进一步提高存储该目标数据块的可靠性,降低该数据块发生内存故障的概率,从而达到提升终端设备运行的可靠性和性能。
12、一种可能的实施例中,该第一信息还包括在第一时间点获取的目标存储空间的使用情况。该目标存储空间为该目标进程占用的存储空间,该目标存储空间包括该第一存储空间。该目标存储空间的使用情况包括:目标存储空间的地址、目标存储空间的类型以及目标存储空间的脏页比例。该第一时间点为获取第一信息前的预设时间点。
13、本方案中,上述第一信息还包括该目标进程的内存使用情况。上述风险评估模型可以同时基于访存信息和内存使用情况,对该目标数据块的风险等级进行评估。由于内存使用情况是该目标进程的一个个性化特征,所以基于内存使用情况评估出的风险等级可以根据进程的不同进行自适应的调整。因此,本方案中目标数据块的风险等级还可以跟随目标进程进行自适应的调整,可以进一步提高评估该风险等级的准确性。使得,目标数据块基于该风险等级可以迁移到一个更加合适的存储位置,进一步提高存储该目标数据块的可靠性,降低该数据块发生内存故障的概率,从而达到提升终端设备运行的可靠性和性能。
14、一种可能的实施例中,上述目标存储空间的使用情况还包括:目标进程的常驻内存集rss的大小和/或目标进程在第三时间段对该目标存储空间的访存信息。该第三时间段为该第一时间点前的第三预设时间段。
15、本方案中,该目标进程的存储空间使用情况还包括:该目标进程的常驻内存集rss的大小和/或该目标进程在第二时间段使用存储空间的访存信息。由于目标进程的存储空间使用情况可以更加完整的体现该目标进程运行过程中使用存储空间的特征,因此基于该信息可以进一步提高该风险评估模型的评估精度。
16、一种可能的实施例中,上述基于第一信息评估上述第一存储空间中存储的数据的风险等级,包括:
17、通过风险评估模型来基于第一信息评估上述第一存储空间中存储的数据的风险等级。
18、基于模拟的访存信息和模拟的存储空间使用情况训练得到该风险评估模型。
19、所述模拟的访存信息和模拟的存储空间使用情况,通过模拟所述目标进程的运行获得。
20、本方案中,通过风险评估模型来基于第一信息评估上述第一存储空间中存储的数据的风险等级,可以更加迅速、更加准确的生成该数据的风险等级。获取该风险评估模型的步骤为,首先在目标进程没有运行的情况下,通过模拟该目标进程的运行,获取该目标进程的第一访存信息和/或第一内存使用情况。然后,基于该第一访存信息和/或第一内存使用情况,获取上述风险评估模型。因为,该风险评估模型是在目标进程还没有运行的情况下获得的,所以,在需要使用该风险评估模型的时候,只需要加载该风险评估模型的相关参数即可,节约大量的模型训练时间。而且,可以使用大量的样本数据用于训练该风险评估模型,使训练得到的风险评估模型有较高的评估准确性。
21、一种可能的实施例中,上述基于第一信息评估上述第一存储空间中存储的数据的风险等级,包括:
22、通过风险评估模型来基于所述第一信息评估所述第一存储空间中存储的数据的风险等级。
23、基于第四访存信息和所述目标存储空间的使用情况训练得到所述风险评估模型。
24、所述第四访存信息和所述目标存储空间的使用情况,通过运行所述目标进程获得。
25、本方案中,通过风险评估模型来基于第一信息评估上述第一存储空间中存储的数据的风险等级,可以更加迅速、更加准确的生成该数据的风险等级。获取该风险评估模型的步骤为,在目标进程运行的情况下,获取该目标进程的第二访存信息和第二内存使用情况。然后基于该第一访存信息和第一内存使用情况,获取该风险评估模型。由于,本方案不需要提前训练风险评估模型,因此,节省了用于存储该风险评估模型的空间,在进程运行的情况下即使的评估风险评估模型,具有更高的灵活性。
26、一种可能的实施例中,上述方法应用于终端设备。上述基于风险等级将第一存储空间中存储的数据迁移到第二存储空间,包括:基于该风险等级和第二信息将该第一存储空间中存储的数据迁移到第二存储空间。该第二信息包括如下的一项或多项:该终端设备的运行负载、该目标进程的非统一内存访问numa的亲和性以及该终端设备的存储空间可靠性。
27、本方案基于目标数据块的风险等级和第二信息对该目标数据块进行存储位置的迁移,该第二信息包括如下的一项或多项:终端设备的运行负载、目标进程的非统一内存访问numa的亲和性以及终端设备的内存可靠性。在迁移目标数据块结合终端设备的运行负载的情况下,可以选择合适的时机对目标数据进行存储位置迁移。在迁移目标数据结合该目标进程的numa亲和性的情况下,便于让目标数据迁移到同一个节点,避免出现访问内存的时延不同。在迁移目标数据结合了终端设备的内存可靠性的情况下,可以使目标数据选择合适可靠性的存储空间进行迁移。因此,本方案可以使目标数据块在进行存储位置迁移的过程中,选择合适的迁移时间、迁移节点以及迁移位置。
28、一种可能的实施例中,上述存储管理方法,还包括:获取第一存储空间中存储的数据的迁移频率。该基于风险等级和第二信息将该第一存储空间中存储的数据迁移到第二存储空间,包括:基于上述迁移频率、上述风险等级以及上述第二信息将该第一存储空间中存储的数据迁移到该第二存储空间。
29、本方案中,按照该目标数据块的迁移频率,对目标数据块进行存储位置的迁移,可以灵活的设定迁移目标数据块的频率,在及时完成目标数据块存储位置迁移的同时,尽可能的减少数据迁移对终端设备性能的影响。
30、一种可能的实施例中,上述一种存储管理方法,还包括:建立该目标进程管理的虚拟存储地址与该第二存储空间之间的映射关系。
31、本方案中,在目标数据块迁移到第二存储空间之后,建立目标进程管理的虚拟内存地址与该目标内存段之间的映射关系,可以使该目标进程在后续的运行过程中直接访问该目标内存段,减少数据迁移的数量。
32、第二方面,本技术实施例提供了一种终端设备,其特征在于,该终端设备包括:
33、获取单元,用于获取第一信息,该第一信息包括上述目标进程在第一时间段对第一存储空间的第一访存信息。该第一时间段为获取上述第一信息前的第一预设时间段。
34、评估单元,用于基于上述第一信息评估上述第一存储空间中存储的数据的风险等级。
35、迁移单元,用于基于上述风险等级将上述第一存储空间中存储的数据迁移到第二存储空间。
36、一种可能的实施例中,上述第一访存信息包括n个第二访存信息,上述n为大于1的整数。上述第一时间段包括n个子时间段,上述n个子时间段中的第m个子时间段获取的访存信息为上述n个第二访存信息中的第m个第二访存信息,上述m为1到上述n的整数。
37、上述基于上述第一信息评估上述第一存储空间中存储的数据的风险等级,包括:
38、基于上述n个第二访存信息评估在第二时间段上述第一存储空间的第三访存信息。上述第二时间段为获取上述第一信息后的第二预设时间段。
39、基于上述第三访存信息评估上述风险等级。
40、一种可能的实施例中,上述第一存储空间包括多个缓存行。上述n个第二访存信息中的每一个第二访存信息由上述多个缓存行的访存信息组成。
41、一种可能的实施例中,上述第一信息还包括在第一时间点获取的上述目标存储空间的使用情况。上述目标存储空间为上述目标进程占用的存储空间,上述目标存储空间包括上述第一存储空间。
42、上述目标存储空间的使用情况包括:上述目标存储空间的地址、上述目标存储空间的类型以及上述目标存储空间的脏页比例。上述第一时间点为获取上述第一信息前的预设时间点。
43、一种可能的实施例中,上述目标存储空间的使用情况还包括:
44、上述目标进程的常驻内存集rss的大小和/或上述目标进程在第三时间段对上述目标存储空间的访存信息。
45、上述第三时间段为上述第一时间点前的第三预设时间段。
46、一种可能的实施例中,上述评估单元,具体用于:通过风险评估模型来基于第一信息评估上述第一存储空间中存储的数据的风险等级。
47、基于模拟的访存信息和模拟的存储空间使用情况训练得到该风险评估模型。
48、所述模拟的访存信息和模拟的存储空间使用情况,通过模拟所述目标进程的运行获得。
49、一种可能的实施例中,上述评估单元,具体用于:通过风险评估模型来基于所述第一信息评估所述第一存储空间中存储的数据的风险等级。
50、基于第四访存信息和所述目标存储空间的使用情况训练得到所述风险评估模型。
51、所述第四访存信息和所述目标存储空间的使用情况,通过运行所述目标进程获得。
52、一种可能的实施例中,上述迁移单元具体用于,基于上述风险等级和第二信息将上述第一存储空间中存储的数据迁移到第二存储空间。
53、上述第二信息包括如下的一项或多项:上述终端设备的运行负载、上述目标进程的非统一内存访问numa的亲和性以及上述终端设备的存储空间可靠性。
54、一种可能的实施例中,上述获取单元,具体用于获取上述第一存储空间中存储的数据的迁移频率。
55、上述迁移单元,具体用于基于上述迁移频率、上述风险等级以及上述第二信息将上述第一存储空间中存储的数据迁移到上述第二存储空间。
56、一种可能的实施例中,上述终端设备还包括:
57、建立单元,用于建立上述目标进程管理的虚拟存储地址与上述第二存储空间之间的映射关系。
58、第三方面,本技术实施例提供了一种终端设备,该终端设备包括处理器和存储器。该存储器与处理器耦合,处理器执行存储器中存储的计算机程序或计算机指令时,可以实现该第一方面任一项描述的方法。该终端设备还可以包括通信接口,通信接口用于该终端设备与其它终端设备进行通信,示例性的,通信接口可以是收发器、电路、总线、模块或其它类型的通信接口。
59、在一种可能的实现中,该终端设备可以包括:
60、存储器,用于存储计算机程序或计算机指令。
61、处理器,用于:
62、获取第一信息,该第一信息包括目标进程在第一时间段对第一存储空间的第一访存信息。该第一时间段为获取该第一信息前的第一预设时间段。
63、基于该第一信息评估该第一存储空间中存储的数据的风险等级。
64、基于该风险等级将该第一存储空间中存储的数据迁移到第二存储空间。
65、需要说明的是,本技术中存储器中的计算机程序或计算机指令可以预先存储也可以使用该终端设备时从互联网下载后存储,本技术对于存储器中计算机程序或计算机指令的来源不进行具体限定。本技术实施例中的耦合是终端设备、单元或模块之间的间接耦合或连接,其可以是电性,机械或其它的形式,用于终端设备、单元或模块之间的信息交互。
66、第四方面,本技术实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序或计算机指令,前述计算机程序或计算机指令被处理器执行以实现该第一方面任意一项该的方法。
67、第五方面,本技术实施例提供一种计算机程序产品,该计算机程序产品被处理器执行时,该第一方面任意一项该的方法将被实现。
68、第六方面,本技术实施例提供一种芯片,该芯片包括处理器和存储器,其中,该存储器用于存储计算机程序或计算机指令,该处理器用于执行该存储器中存储的计算机程序或计算机指令,使得该芯片执行该第一方面任一项该的方法。
69、该第二方面至第六方面提供的方案,用于实现或配合实现该第一方面中对应提供的方法,因此可以与第一方面中对应的方法达到相同或相应的有益效果,此处不再进行赘述。