内存与Linux操作系统的兼容性测试方法技术方案

技术编号:24120709 阅读:51 留言:0更新日期:2020-05-13 03:00
本发明专利技术涉及一种内存与Linux操作系统的兼容性测试方法,包括如下步骤:步骤S1:设定加压内存,且加压内存大于物理内存;步骤S2:判断交换分区大小是否为0,并判断交换分区是否大于预定值,任一条件不满足则返回测试失败的信息,两个条件均满足则进行下一步的测试;步骤S3:利用内存映射测试内存的读写功能,并通过多线程并行的方式,利用负载加压测试验证内存在高负载系统下的稳定性;步骤S4:返回测试结果。本发明专利技术提供的内存与Linux操作系统的兼容性测试方法,利用内存映射实现内存读写功能测试,利用多线程并行的方式实现内存稳定性测试,测试准确性高、效率高、测试稳定。

Test method of compatibility between memory and Linux operating system

【技术实现步骤摘要】
内存与Linux操作系统的兼容性测试方法
本专利技术涉及计算机性能检测
,具体涉及一种内存与Linux操作系统的兼容性测试方法。
技术介绍
鉴于内存的重要性,内存测试是必不可少的。传统的内存测试方式包括:通过对内存进行全部读写操作,以测试内存的读写性能。然而,如此测试带来的结果就是测试缓慢,耗时较长。综上,需要提供一种新的内存与Linux操作系统的兼容性测试方法。
技术实现思路
为解决现有技术存在的不足,本专利技术提供了一种内存与Linux操作系统的兼容性测试方法,包括如下步骤:步骤S1:设定加压内存,且加压内存大于物理内存;步骤S2:判断交换分区大小是否为0,并判断交换分区是否大于预定值,任一条件不满足则返回测试失败的信息,两个条件均满足则进行下一步的测试;步骤S3:利用内存映射测试内存的读写功能,并通过多线程并行的方式,利用负载加压测试验证内存在高负载系统下的稳定性;步骤S4:返回测试结果。其中,在利用负载加压测试验证内存在高负载系统下的稳定性时,所述步骤S3包括:步骤S31:获取、确认包括线程数量及运行时间在内的初始参数;步骤S32:创建线程,直至所创建线程的数量达到步骤S31所确认的初始线程数量;步骤S33:初始化线程,直至初始化的线程数量达到步骤S31所确认的初始线程数量;步骤S34:获取当前时间准备测试;步骤S35:唤醒当前所有等待中的线程;步骤S36:持续检测运行中的线程数量,直至运行中的线程数量达到步骤S31所确认的初始线程数量;步骤S37:持续检测所有的线程是否运行完毕;步骤S38:在所有线程运行完毕的情况下,判断并返回所有线程运行完毕的时间是否与步骤S31所确定的运行时间一致;步骤S39:一一停止所有线程的运行,获取结束时间并返回步骤S38的判断结果。其中,所述步骤S32中,利用pthread_create函数创建线程;所述步骤S33中,在线程初始化未完成时,利用pthread_cond_wait函数阻塞主进程;所述步骤S35中,利用pthread_cond_signal函数唤醒主进程,利用pthread_cond_broadcast函数唤醒完成初始化的线程;所述步骤S39中,利用pthread_join函数阻塞部分线程直到所有线程停止。其中,所述步骤S32中,在创建多个线程的过程中,使用互斥锁来确保线程与线程之间公共变量互不干扰;所述步骤S33中,在线程初始化未完成时,利用互斥锁init_mutex以及条件变量init_cond结合pthread_cond_wait函数阻塞主进程;所述步骤S35中,利用互斥锁init_mutex以及条件变量init_cond结合pthread_cond_signal函数唤醒主进程。其中,所述步骤S39中,若返回的结果是所有线程运行完毕的时间与步骤S31所确定的运行时间一致,则内存兼容性测试合格,若不一致,则内存兼容性测试不合格。其中,在通过多线程并行的方式,利用负载加压测试验证内存在高负载系统下的稳定性时,所述步骤S3包括:步骤S3a:获取、确认包括线程数量及映射内存、运行时间在内的初始参数;步骤S3b:设置线程号并将该线程绑定到特定CPU上;步骤S3c:获取包括内存页大小及内存页数量在内的映射内存变量;步骤S3d:初始化内存映射区域;步骤S3e:向内存中每个内存页前三个位置写数据;步骤S3f:创建线程,直至所创建线程的数量达到步骤S3a所确认的初始线程数量;步骤S3g:持续检测线程的运行状态;步骤S3h:检测到运行信号后,随机选择一个线程以及其中的内存页;步骤S3i:判断内存页的前三个字段是否和写入的字符数据一致,并返回结果,若一致,则内存兼容性测试合格,若不一致,则内存兼容性测试不合格。其中,在通过多线程并行的方式,利用负载加压测试验证内存在高负载系统下的稳定性时,所述步骤S3还包括:步骤S3j:向所选择的内存页的第三个字符后面的随机位置写入数据,并验证写入和写出的是否一致;步骤S3k:继续持续检测线程的运行状态,在线程处于运行中时,返回步骤S3h,再随机选择另一个线程进行检测;在达到运行时间时,执行步骤S3l;步骤S3l:一一停止所有线程的运行;步骤S3m:munmap所有内存。其中,所述步骤S3e中,每个内存页的前三个位置所写入的数据为三个字符:0XDEADBEEF、线程号及内存页号。其中,所述步骤S3f中,利用pthread_create函数创建线程。其中,所述步骤S3f中,在创建多个线程的过程中,使用互斥锁来确保线程与线程之间公共变量互不干扰;并且,所述步骤S3l中,在停止多个线程的过程中,也使用互斥锁来确保线程与线程之间公共变量互不干扰。本专利技术提供的内存与Linux操作系统的兼容性测试方法,利用内存映射实现内存读写功能测试,利用多线程并行的方式实现内存稳定性测试,测试准确性高、效率高、测试稳定。附图说明图1:本专利技术的内存与Linux操作系统的兼容性测试方法的总流程示意图。图2:本专利技术的内存与Linux操作系统的兼容性测试方法的详细的测试流程示意图。图3:本专利技术的内存与Linux操作系统的兼容性测试方法的稳定性测试流程图。图4:本专利技术的内存与Linux操作系统的兼容性测试方法的读写功能测试流程图。具体实施方式为了对本专利技术的技术方案及有益效果有更进一步的了解,下面结合附图详细说明本专利技术的技术方案及其产生的有益效果。内存兼容性测试的重点是内存页的读写测试以及高负载下系统的稳定性。内存读写成功、高负载下系统不崩溃则能表示该内存与该操作系统相互兼容。因此,本专利技术提供的内存与Linux操作系统的兼容性测试方法,为了完成内存与操作系统的兼容性测试,通过将多线程与内存映射结合起来达到给内存加压的目的,一方面完成内存的读写功能以及高负载情况下系统的稳定性测试,另一方面提高了内存测试的效率,其中,内存的读写功能测试利用内存映射实现,负载加压测试通过使用多线程并行的方式实现。图1为本专利技术的内存与Linux操作系统的兼容性测试方法的总流程示意图,如图1所示,为了占用所有物理内存,本专利技术在测试时将加压的内存设置为空闲内存大小的(1+0.5%),即memFree*(1+0.5%)。加压内存设置既可以占满物理内存并使用部分交换分区,可以达到充分测试内存的效果。由于需要使用到交换分区,因此,必须判断交换分区大小是否为0。图中关键部分即threadeds_memtest脚本,实际测试中的完成内存读写以及创建多线程等功能,具体测试过程的实现详述如后。该脚本需要使用多个参数:内存、加压时间等。通过加压以及内存读写测试的返回结果判断测试是否成功。图2为本专利技术的内本文档来自技高网...

【技术保护点】
1.一种内存与Linux操作系统的兼容性测试方法,其特征在于,包括如下步骤:/n步骤S1:设定加压内存,且加压内存大于物理内存;/n步骤S2:判断交换分区大小是否为0,并判断交换分区是否大于预定值,任一条件不满足则返回测试失败的信息,两个条件均满足则进行下一步的测试;/n步骤S3:利用内存映射测试内存的读写功能,并通过多线程并行的方式,利用负载加压测试验证内存在高负载系统下的稳定性;/n步骤S4:返回测试结果。/n

【技术特征摘要】
1.一种内存与Linux操作系统的兼容性测试方法,其特征在于,包括如下步骤:
步骤S1:设定加压内存,且加压内存大于物理内存;
步骤S2:判断交换分区大小是否为0,并判断交换分区是否大于预定值,任一条件不满足则返回测试失败的信息,两个条件均满足则进行下一步的测试;
步骤S3:利用内存映射测试内存的读写功能,并通过多线程并行的方式,利用负载加压测试验证内存在高负载系统下的稳定性;
步骤S4:返回测试结果。


2.如权利要求1所述的内存与Linux操作系统的兼容性测试方法,其特征在于:在利用负载加压测试验证内存在高负载系统下的稳定性时,所述步骤S3包括:
步骤S31:获取、确认包括线程数量及运行时间在内的初始参数;
步骤S32:创建线程,直至所创建线程的数量达到步骤S31所确认的初始线程数量;
步骤S33:初始化线程,直至初始化的线程数量达到步骤S31所确认的初始线程数量;
步骤S34:获取当前时间准备测试;
步骤S35:唤醒当前所有等待中的线程;
步骤S36:持续检测运行中的线程数量,直至运行中的线程数量达到步骤S31所确认的初始线程数量;
步骤S37:持续检测所有的线程是否运行完毕;
步骤S38:在所有线程运行完毕的情况下,判断并返回所有线程运行完毕的时间是否与步骤S31所确定的运行时间一致;
步骤S39:一一停止所有线程的运行,获取结束时间并返回步骤S38的判断结果。


3.如权利要求2所述的内存与Linux操作系统的兼容性测试方法,其特征在于:
所述步骤S32中,利用pthread_create函数创建线程;
所述步骤S33中,在线程初始化未完成时,利用pthread_cond_wait函数阻塞主进程;
所述步骤S35中,利用pthread_cond_signal函数唤醒主进程,利用pthread_cond_broadcast函数唤醒完成初始化的线程;
所述步骤S39中,利用pthread_join函数阻塞部分线程直到所有线程停止。


4.如权利要求3所述的内存与Linux操作系统的兼容性测试方法,其特征在于:
所述步骤S32中,在创建多个线程的过程中,使用互斥锁来确保线程与线程之间公共变量互不干扰;
所述步骤S33中,在线程初始化未完成时,利用互斥锁init_mutex以及条件变量init_cond结合pthread_cond_wait函数阻塞主进程;
所述步骤S35中,利用互斥锁init_mutex以及条件变量init_cond结合pthread_cond_signal函数唤醒主进程。...

【专利技术属性】
技术研发人员:穆芳成李金丽陈吉兰杨清玉李志伟
申请(专利权)人:中标软件有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1