持久性内存性能测试方法、系统、终端及存储介质与流程

文档序号:31672056发布日期:2022-09-28 01:10阅读:256来源:国知局
持久性内存性能测试方法、系统、终端及存储介质与流程

1.本发明属于存储技术领域,具体涉及一种持久性内存性能测试方法、系统、终端及存储介质。


背景技术:

2.近年来,新兴的非易失性存储器(nvm)具有字节可寻址、非易失性、存储密度高以及访问延迟低的特性,其经由内存总线与cpu连接的非易失性存储器也被称为持久性内存(pm)。在整个计算机的体系架构中,持久性内存处在外存(hdd或者ssd)与内存(dram)之间,其不论在容量、性能、价格上都是处于两者的中间位置。也就是说,它即可以当作内存使用,也可以当作持久化外存设备使用。持久性内存(cps)有以下三大特征:大、快、持久性。1.大:目前持久内存单条内存容量最大可以达到512gb,而目前服务器单条内存一般最多到32/64gb。也就是说,单台服务器使用持久内存可以轻松到达tb级别的内存容量。另一方面,单位价格来说,持久内存为普通内存的一半左右。2.快:持久内存相比较于普通ssd有1-2个数量级的延迟性能优势,相比较于硬盘优势更加巨大。当然对比与dram,其会有一定的性能差距。但是实际使用中由于性能瓶颈不一定在内存上,所以一般不会有特别明显的差距,一般性能衰退会在一倍之内。3.持久性:通俗来说,就是持久内存有跟硬盘一样的特性,断电以后重启,内存中的数据依然存在。此项特性可以说是秒杀内存,内存中的数据在断电或者程序以外退出以后就不复存在。此项特性使得持久内存即可以当做一个高速持久化设备使用,也可以满足内存应用某些场景下的快速恢复的需求。
3.目前针对内存性能压力的相关测试,大多会使用stream、mlc等测试工具直接运行测试。通过对内存数据的读、写以及数据的加、减、乘和混合运算,来计算出一定时间内处理的内存数据总量,进而计算出内存的带宽、延迟等性能数据;通过使内存长时间进行数据的处理工作,进而得到内存的压力测试结果。现有内存测试方案只针对dram,仅仅能够测试cps内存在mm模式下的性能数据,很难针对持久性内存的持久性进行考察。2.测试多为手动测试,需要自行调节测试工具参数,修改持久性内存的工作模式,并调节优化cpu、内存相关参数,效率低,操作麻烦。


技术实现要素:

4.针对现有技术的上述不足,本发明提供一种持久性内存性能测试方法、系统、终端及存储介质,以解决上述技术问题。
5.第一方面,本发明提供一种持久性内存性能测试方法,包括:
6.将持久性内存设置为内存模式,在内存模式下利用内存延迟测试工具对所述持久性内存进行测试;
7.将持久性内存设置为应用程序直接访问模式,并利用内存延迟测试工具和读写测试工具对持久性内存进行混合测试。
8.进一步的,将持久性内存设置为内存模式,在内存模式下利用内存延迟测试工具
对所述持久性内存进行测试,包括:
9.将内存延迟测试工具的缓冲区容量设置为cpu三级缓存大小的10倍;
10.设定内存延迟测试工具的测试次数,并启动所述内存延迟测试工具;
11.从内存延迟测试工具输出的测试结果数据中提取最大值和最小值。
12.进一步的,将持久性内存设置为应用程序直接访问模式,并利用内存延迟测试工具和读写测试工具对持久性内存进行混合测试,包括:
13.在应用程序直接访问模式下,利用内存延迟测试工具对持久性内存进行循环测试;
14.利用读写测试工具循环对持久性内存执行顺序读写和随机读写,并采集持久性内存在顺序读写和随机读写过程中的混合性能参数、读性能参数和写性能参数。
15.进一步的,所述方法还包括:
16.在内存延迟测试工具或读写测试工具执行期间,通过对持久性内存不断进行混合读写以对所述持久性内存施加压力。
17.第二方面,本发明提供一种持久性内存性能测试系统,包括:
18.第一测试单元,用于将持久性内存设置为内存模式,在内存模式下利用内存延迟测试工具对所述持久性内存进行测试;
19.第二测试单元,用于将持久性内存设置为应用程序直接访问模式,并利用内存延迟测试工具和读写测试工具对持久性内存进行混合测试。
20.进一步的,所述第一测试单元包括:
21.容量设置模块,用于将内存延迟测试工具的缓冲区容量设置为cpu三级缓存大小的10倍;
22.次数设置模块,用于设定内存延迟测试工具的测试次数,并启动所述内存延迟测试工具;
23.结果筛选模块,用于从内存延迟测试工具输出的测试结果数据中提取最大值和最小值。
24.进一步的,所述第二测试单元包括:
25.延迟测试模块,用于在应用程序直接访问模式下,利用内存延迟测试工具对持久性内存进行循环测试;
26.读写测试模块,用于利用读写测试工具循环对持久性内存执行顺序读写和随机读写,并采集持久性内存在顺序读写和随机读写过程中的混合性能参数、读性能参数和写性能参数。
27.进一步的,所述系统还包括:
28.压力施加单元,用于在内存延迟测试工具或读写测试工具执行期间,通过对持久性内存不断进行混合读写以对所述持久性内存施加压力。
29.第三方面,提供一种终端,包括:
30.处理器、存储器,其中,
31.该存储器用于存储计算机程序,
32.该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
33.第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
34.本发明的有益效果在于,本发明提供的持久性内存性能测试方法、系统、终端及存储介质,可以针对cps内存的mm模式与apd模式分别测试其内存性能压力。针对mm模式,可将cps内存当作常规的darm一样进行内存性能压力测试。针对apd模式,对其“内存特性”使用mlc工具来进行测试。针对其“存储特性”,使用fio工具来进行测试;然后,通过自动化部署,该方案可以实现大规模快速测试cps内存性能压力,并对测试过程中的日志收集、检测,以提升测试效率,节约人力。
35.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
36.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
37.图1是本发明一个实施例的方法的示意性流程图。
38.图2是本发明一个实施例的系统的示意性框图。
39.图3为本发明实施例提供的一种终端的结构示意图。
具体实施方式
40.为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
41.下面对本发明中出现的关键术语进行解释。
42.英文缩写:1.cps
43.2.pm
44.3.mm
45.4.apd
46.英文全称:1.crow pass
47.2.persistent memory
48.3.memory mode
49.4.app direct
50.中文全称:1.cps持久性内存
51.2.持久性内存
52.3.内存模式
53.4.应用程序直接访问模式
54.图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种持久性内存性能测试系统。
55.如图1所示,该方法包括:
56.步骤110,将持久性内存设置为内存模式,在内存模式下利用内存延迟测试工具对所述持久性内存进行测试;
57.步骤120,将持久性内存设置为应用程序直接访问模式,并利用内存延迟测试工具和读写测试工具对持久性内存进行混合测试。
58.为了便于对本发明的理解,下面以本发明持久性内存性能测试方法的原理,结合实施例中对持久性内存性能进行测试的过程,对本发明提供的持久性内存性能测试方法做进一步的描述。
59.具体的,所述持久性内存性能测试方法包括:
60.s1、将持久性内存设置为内存模式,在内存模式下利用内存延迟测试工具对所述持久性内存进行测试。
61.在待测os下执行测试程序,选择待测模式:内存性能或者压力测试。程序会自动在os下通过ipmctl工具将cps内存配置为mm模式,并重启系统以便修改bios下的mm模式配置。修改成功后进入os,根据cpu的三级缓存的大小设置mlc测试工具的buffer size,通常将buffer size设置为cpu三级缓存大小的10倍,并根据选择的模式执行性能测试或者压力测试。性能测试中会进行20次的mlc内存性能测试,对比20次内存性能测试数据的偏差,并提取最大值、最小值呈现。待测试完成后收集os下的系统日志与内存信息,并自动检测有无异常信息。
62.s2、将持久性内存设置为应用程序直接访问模式,并利用内存延迟测试工具和读写测试工具对持久性内存进行混合测试。
63.程序会自动通过ipmctl配置cps内存为apd模式,同样重启系统以便修改bios下的apd模式配置。修改成功后进入os,脚本会自动为cps内存创建namespace,并将pmem设备挂载。然后根据所选模式,进行fio与mlc的混合性能测试或者压力测试。性能测试中会根据cpu的三级缓存的大小设置mlc测试工具的buffer size,通常将buffer size设置为cpu三级缓存大小的10倍;fio工具中会自动设置不同job、不同size、不同qd参数,分别测试顺序读写和随机读写下mix、read、write的性能。并收集os下的系统日志与cps内存的相关信息,自动检测有无异常信息。
64.通过脚本自动化性能测试。选择进行性能测试or压力测试,若选择性能测试,则按照前文所述分别设置参数与cps内存模式,进行性能测试;若选择压力测试,则将性能测试的时间拉长,对cps内存长时间进行混合读写,以检验其可靠性;接着在测试结束时,自动收集os下的messages、dmesg、mce等系统日志,收集内存相关的os信息等,并自动检查有无报错信息等
65.如图2所示,该系统200包括:
66.第一测试单元210,用于将持久性内存设置为内存模式,在内存模式下利用内存延迟测试工具对所述持久性内存进行测试;
67.第二测试单元220,用于将持久性内存设置为应用程序直接访问模式,并利用内存延迟测试工具和读写测试工具对持久性内存进行混合测试。
68.可选地,作为本发明一个实施例,所述第一测试单元包括:
69.容量设置模块,用于将内存延迟测试工具的缓冲区容量设置为cpu三级缓存大小
的10倍;
70.次数设置模块,用于设定内存延迟测试工具的测试次数,并启动所述内存延迟测试工具;
71.结果筛选模块,用于从内存延迟测试工具输出的测试结果数据中提取最大值和最小值。
72.可选地,作为本发明一个实施例,所述第二测试单元包括:
73.延迟测试模块,用于在应用程序直接访问模式下,利用内存延迟测试工具对持久性内存进行循环测试;
74.读写测试模块,用于利用读写测试工具循环对持久性内存执行顺序读写和随机读写,并采集持久性内存在顺序读写和随机读写过程中的混合性能参数、读性能参数和写性能参数。
75.可选地,作为本发明一个实施例,所述系统还包括:
76.压力施加单元,用于在内存延迟测试工具或读写测试工具执行期间,通过对持久性内存不断进行混合读写以对所述持久性内存施加压力。
77.图3为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的持久性内存性能测试方法。
78.其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
79.其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
80.处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(integrated circuit,简称ic)组成,例如可以由单颗封装的ic所组成,也可以由连接多颗相同功能或不同功能的封装ic而组成。举例来说,处理器310可以仅包括中央处理器(central processing unit,简称cpu)。在本发明实施方式中,cpu可以是单运算核心,也可以包括多运算核心。
81.通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
82.本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:rom)或随机存储记忆体(英文:random access memory,简称:ram)等。
83.因此,本发明可以针对cps内存的mm模式与apd模式分别测试其内存性能压力。针
对mm模式,可将cps内存当作常规的darm一样进行内存性能压力测试。针对apd模式,对其“内存特性”使用mlc工具来进行测试。针对其“存储特性”,使用fio工具来进行测试;然后,通过自动化部署,该方案可以实现大规模快速测试cps内存性能压力,并对测试过程中的日志收集、检测,以提升测试效率,节约人力等,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
84.本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
85.本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
86.在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
87.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
88.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
89.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1