本发明涉及内存测试,尤其涉及一种内存带宽测试方法、装置、设备及计算机可读存储介质。
背景技术:
1、现有技术中,stream测试工具,在numa(non uniform memory accessarchitecture,非统一内存访问架构)架构下,需要不断通过cpu(central processingunit,中央处理器)节点间的noc(network-on-chip,片上网络)接口访问远端内存区,性能会受到限制,测试结果无法反映numa架构下国产服务器内存带宽的真实情况。
技术实现思路
1、本发明的主要目的在于提供一种内存带宽测试方法、装置、设备及计算机可读存储介质,旨在提高测试numa架构下的内存带宽的准确性。
2、为实现上述目的,本发明提供一种内存带宽测试方法,所述内存带宽测试方法包括以下步骤:
3、获取系统中cpu节点的总节点数;
4、根据所述总节点数对所述测试数组进行分割,得到分片数组;
5、将所述分片数组存储至所述cpu节点对应的近端内存区,其中,所述cpu节点根据所述近端内存区的分片数组执行内存带宽测试线程对应的读写操作。
6、可选地,所述获取系统中cpu节点的总节点数的步骤之前包括:
7、若系统中的cpu结构为numa架构,则读取系统中的系统空余内存值;
8、判断所述系统空余内存值是否满足预设的测试需求;
9、若所述系统空余内存值满足所述测试需求,则执行所述获取系统中cpu节点的总节点数的步骤。
10、可选地,所述根据所述总节点数对所述测试数组进行分割,得到分片数组的步骤包括:
11、根据所述系统空余内存值确定测试数组的数组数量值;
12、根据所述数组数量值和所述总节点数,对所述测试数组进行分割,得到分片数组。
13、可选地,所述判断所述系统空余内存值是否满足预设的测试需求的步骤之后,还包括:
14、若所述系统空余内存值不满足所述测试需求,则检测系统中是否存在运行的应用进程;
15、若系统中存在所述应用进程,则终止所述应用进程的运行,并返回执行所述读取系统中的系统空余内存值的步骤。
16、可选地,所述判断所述系统空余内存值是否满足预设的测试需求的步骤包括:
17、获取系统中的cpu数量、cpu节点的总节点数,以及cpu节点对应的三级缓存容量值;
18、将所述cpu数量、所述总节点数和所述三级缓存容量值输入至预设的校验公式进行计算,得到校验结果;
19、基于所述校验结果确定所述系统空余内存值是否满足预设的测试需求。
20、可选地,所述校验公式包括:
21、
22、其中,freemen为系统空余内存值,socketnum为cpu数量,nodenum为cpu节点的总节点数,nodel3size(n)为第n个cpu节点的三级缓存容量值。
23、可选地,所述将所述分片数组存储至所述cpu节点对应的近端内存区的步骤之后包括:
24、将预设的内存带宽测试项目绑定至所述cpu节点,得到所述cpu节点对应的内存带宽测试线程。
25、此外,为实现上述目的,本发明还提供一种内存带宽测试装置,包括:
26、参数获取模块,用于获取系统中cpu节点的总节点数;
27、数组分割模块,用于根据所述总节点数对所述测试数组进行分割,得到分片数组;
28、数组绑定模块,用于将所述分片数组存储至所述cpu节点对应的近端内存区,其中,所述cpu节点根据所述近端内存区的分片数组执行内存带宽测试线程对应的读写操作。
29、此外,为实现上述目的,本发明还提供一种内存带宽测试设备,内存带宽测试设备包括存储器、处理器及存储在存储器上并可在处理器上运行的内存带宽测试程序,内存带宽测试程序被处理器执行时实现如上述的内存带宽测试方法的步骤。
30、此外,为实现上述目的,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有内存带宽测试程序,内存带宽测试程序被处理器执行时实现如上述的内存带宽测试方法的步骤。
31、本发明通过获取系统中cpu节点的总节点数;根据所述总节点数对所述测试数组进行分割,得到分片数组的步骤,从而实现对其测试数组按cpu节点数进行分片,并通过将所述分片数组存储至所述cpu节点对应的近端内存区的步骤,从而把分片后的测试数组分别存储到每个cpu节点对应的近端内存区里,最后通过cpu节点根据所述近端内存区的分片数组执行内存带宽测试线程对应的读写操作的步骤,从而实现采用多线程的方式,使各cpu节点分别负责各自近端内存区中分片数组的读写计算,这样使得原本需要各cpu节点多次通过noc接口访问远端内存区的过程,变成只用就近访问就好,符合numa架构的特性。这样的测试结果才能真实反映numa架构下国产服务器内存带宽情况,进而提高了测试numa架构下内存带宽的准确性。
1.一种内存带宽测试方法,其特征在于,所述内存带宽测试方法包括以下步骤:
2.如权利要求1所述的内存带宽测试方法,其特征在于,所述获取系统中cpu节点的总节点数的步骤之前包括:
3.如权利要求2所述的内存带宽测试方法,其特征在于,所述根据所述总节点数对所述测试数组进行分割,得到分片数组的步骤包括:
4.如权利要求2所述的内存带宽测试方法,其特征在于,所述判断所述系统空余内存值是否满足预设的测试需求的步骤之后,还包括:
5.如权利要求2所述的内存带宽测试方法,其特征在于,所述判断所述系统空余内存值是否满足预设的测试需求的步骤包括:
6.如权利要求5所述的内存带宽测试方法,其特征在于,所述校验公式包括:
7.如权利要求1所述的内存带宽测试方法,其特征在于,所述将所述分片数组存储至所述cpu节点对应的近端内存区的步骤之后包括:
8.一种内存带宽测试装置,其特征在于,所述内存带宽测试装置包括:
9.一种内存带宽测试设备,其特征在于,所述内存带宽测试设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的内存带宽测试程序,所述内存带宽测试程序被所述处理器执行时实现如权利要求1至7中任一项所述的内存带宽测试方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有内存带宽测试程序,所述内存带宽测试程序被处理器执行时实现如权利要求1至7中任一项所述的内存带宽测试方法的步骤。