一种自动进行ssd性能、功能及稳定性测试的方法

文档序号:6631510阅读:394来源:国知局
一种自动进行ssd性能、功能及稳定性测试的方法【专利摘要】本发明公开了一种自动进行SSD性能、功能及稳定性测试的方法,其具体实现过程为:搭建测试平台;安装系统及测试工具;被测试服务器依次进行fio性能测试;输出fio性能测试结果后,被测服务器对机械硬盘进行TPCC测试;输出TPCC测试结果后,被测服务器使用SSD硬盘制作缓存区cache;对使用了cache的硬盘进行TPCC测试;删除cache缓存;被测试服务器的SSD硬盘使用dd命令进行读写稳定性测试;将测试后的结果收集整理,结束测试值。该一种自动进行SSD性能、功能及稳定性测试的方法与现有技术相比,该测试方法操作简单,自动化程度高,实用性较强,能够节省人力,有效确保了服务器的稳定性,是验证产品质量的非常有效的方法。【专利说明】一种自动进行SSD性能、功能及稳定性测试的方法【
技术领域
】[0001]本发明涉及计算机服务器【
技术领域
】,具体地说是一种实用性强、自动进行SSD性能、功能及稳定性测试的方法。【
背景技术
】[0002]目前国内的服务器供应商中,已经开拓各个领域服务器的应用,比如互联网、金融…等;客户的应用较之过去,变得复杂多样,普通机械硬盘的使用已经不能满足各种客户的所有需求。SSD和PCIESSD的使用极大的提高了系统的1性能,对于那些对1性能要求很高的客户,提高了时候用性能。对于SSD的迅猛发展,如何保证SSD在服务器上的性能、功能和读写稳定运行,这是需要深思的地方。满足不同用户多样化的需求,确保各种应用环境的稳定、可靠是我们必须要做到的,因此对于SSD在于服务器上的使用,必须经过充分的对于性能、功能和读写稳定性的测试,从而确保该产品的质量。[0003]随着客户对于1性能的不断提高,普通机械硬盘已经不能满足需求,SSD和PCIESSD的使用范围越来越广。SSD在服务器上的兼容性测试至关重要,包括性能、功能和稳定性的测试。[0004]基于此,现提供一种自动进行SSD性能、功能及稳定性测试的方法,本测试方法改进了现有服务器的SSD性能测试工具,使系统能够自动对SSD进行性能、功能和稳定性的测试,并能够输出测试结果,达到测试SSD的目的,同时输出的测试结果能够为以后的SSD测试提供对比结果,此测试结果可以为以后的SSD测试提供测试对照值。[0005]【
发明内容】本发明的技术任务是针对以上不足之处,提供一种实用性强、自动进行SSD性能、功能及稳定性测试的方法。[0006]一种自动进行SSD性能、功能及稳定性测试的方法,其具体实现过程为:一、搭建测试平台;二、安装系统及测试工具;三、被测试服务器依次进行f1性能测试;四、输出f1性能测试结果后,被测服务器对机械硬盘进行TPCC测试;五、输出TPCC测试结果后,被测服务器使用SSD硬盘制作缓存区cache;六、对使用了cache的硬盘进行TPCC测试;七、删除cache缓存;八、被测试服务器的SSD硬盘使用dd命令进行读写稳定性测试;九、将测试后的结果收集整理,结束测试值。[0007]所述步骤二中安装的系统为从PXE上安装的Linux系统,安装完成后通过wget命令从PXE服务器上下载测试工具和脚本。[0008]所述被测试服务器依次进行f1性能测试是指4K、8K、16K、32K、64K、128K、216K、512Κ、1024Κ的顺序读、顺序写、随机读、随机写、混合读写的性能测试。[0009]所述DD命令对SSD硬盘进行读写稳定性测试是指进行顺序读、顺序写测试,块大小为1M,每个策略测试200G大小,同时在测试过程中,每一秒收集一次1stat输出的tps大小。[0010]本发明的一种自动进行SSD性能、功能及稳定性测试的方法,具有以下优点:该发明的一种自动进行SSD性能、功能及稳定性测试的方法适用x86架构红帽以及Centos操作系统6系列,此方法通过f1、tpcc和dd读写测试能够达到验证SSD性能、功能和读写稳定性的效果,同时能够获取测试结果,为以后SSD测试提供对比参数值;该测试方法操作简单,自动化程度高,实用性较强,能够节省人力,有效确保了服务器的稳定性,是验证产品质量的非常有效的方法,适用范围广泛,易于推广。【专利附图】【附图说明】[0011]附图1为本发明实现流程图。【具体实施方式】[0012]下面结合附图和具体实施例对本发明作进一步说明。[0013]现提供一种自动进行SSD性能、功能及稳定性测试的方法,如附图1所示,其具体实现过程为:一、搭建测试平台;二、安装系统及测试工具;三、被测试服务器依次进行f1性能测试;四、输出f1性能测试结果后,被测服务器对机械硬盘进行TPCC测试;五、输出TPCC测试结果后,被测服务器使用SSD硬盘制作缓存区cache;六、对使用了cache的硬盘进行TPCC测试;七、删除cache缓存;八、被测试服务器的SSD硬盘使用dd命令进行读写稳定性测试;九、将测试后的结果收集整理,结束测试值。[0014]所述步骤二中安装的系统为从PXE上安装的Linux系统,安装完成后通过wget命令从PXE服务器上下载测试工具和脚本。[0015]所述被测试服务器依次进行f1性能测试是指4K、8K、16K、32K、64K、128K、216K、512Κ、1024Κ的顺序读、顺序写、随机读、随机写、混合读写的性能测试。[0016]在上述技术方案中,f1性能测试:f1是一个开源的硬件1/0压力测试工具,主要是用来测试磁盘/SSD的1性能,这个工具的可定制性非常强,可以根据测试者的想法进行各种混合1的测试,一种是命令形式,即f1[-opt1ns];另一种则是f1+负载说明文件形式。此测试方法使用f1+负载说明文件形式将分别测试SSD的4K8K16K32K64K256K512K1024K的f1性能,包括顺序读、顺序写、随机读、随机写、混合读写。[0017]Cache功能是SSD的一大主要功能,做了cache之后能够极大的提高10效率。TPCC能够很好地测试cache的效果。[0018]TPCC是TPC推出的四套基准程序之一,在线事务处理(OLTP)的基准程序。TPC-C模拟一个批发商的货物管理环境。该批发公司有N个仓库,每个仓库供应10个地区,其中每个地区为3000名顾客服务。在每个仓库中有10个终端,每一个终端用于一个地区。在运行时,1XN个终端操作员向公司的数据库发出5类请求。由于一个仓库中不可能存储公司所有的货物,有一些请求必须发往其它仓库,因此,数据库在逻辑上是分布的。N是一个可变参数,测试者可以随意改变N,以获得最佳测试效果。TPC-C使用三种性能和价格度量,其中性能由TPC-C吞吐率衡量,单位是tpmC。tpm是transact1nsperminute的简称;C指TPC中的C基准程序。它的定义是每分钟内系统处理的新订单个数。[0019]此测试方法,利用tpcc测试工具,模拟货仓的数据处理,分别对机械硬盘和使用SSD制作cache之后的硬盘进行tpcc测试,然后对输出的结果进行整理,形成对照。两次测试的结果前后对比可以看到使用SSD制作cache之后能够带来多大的提升。[0020]测试程序具体如下:#!/bin/bash#usageif[$#-neI];thenecho“Usage:$0〈devname〉”exitIfi#setEnvironmentulimit-dunlimitedulimit-sunlimitedulimit-munlimitedulimit-vunlimitedulimit-tunlimitedulimit-1unlimitedulimit-n500000exportLD—LIBRARY—PATH=/usr/local/mysql_5.5.24/lib/basedir=〃tpcc_test〃cur_dir='pwd'#cleanuprm-f${basedir}木>/dev/nullmkdir-p$basedirdevice=$lmount—pnt=/datalif[!-d$mount—pnt];thenmkdir$mount—pntfigroupaddmysql2>/dev/nulluseraddmysql-gmysql2>/dev/nullchownmysql:mysql$mount—pntMYSQLPID=///tmp/mysqld.sock"if[!-f$MYSQLPID];thentouch$MYSQLPIDfichownmysql:mysql$MYSQLPIDcat/proc/cpuinfo>$basedir/cpuinfocat/proc/meminfo>$basedir/meminfofree>$basedir/free—memstime=60rtime=600sample=30count=720tpcc—wh—arr=(1000)tpcc—client=(48163264)tpcc—wmtime=600tpcc—rtime=10800#fortestlogecho〃tarzxvf$cur—dir/mysql-5.5.24.tar.gz-C/usr/local/〃tarzxvf$cur_dir/mysql-5.5.24.tar.gz-C/usr/local/echo〃cp$cur_dir/tpcc_my.cnf/etc/my.cnf-f〃cp$cur_dir/tpcc_my.cnf/etc/my.cnf-fecho〃cp$cur_dir/mysql.server/etc/init.d/-f〃cp$cur_dir/mysql.server/etc/init.d/-ftlog(){time='date_dtoday+〃%Y-%m_%d%T"'echo"[$time]$1"}#testpreparefs_sync(){tlog〃syncfs〃syncecho3>/proc/sys/vm/drop_cachessleep$stime}tpcc_test(){#stopmysqlecho"tpcc—test........"servicemysql.serverstop2>/dev/nullumount$device2>/dev/null#mkfsandmountyesy|mkfs.ext3$device#mounttodatalmount$device$mount—pnt/usr/local/mysql-5.5.24/scripts/mysql_install_db—user=mysql—basedir=/usr/local/mysql-5.5.24—datadir=$mount—pntservicemysql.serverstartsleep10while['servicemysql.serverstatus|awk’{print$1==〃ERR0R!〃]dosleep300servicemysql.serverstartdone/usr/local/mysql-5.5.24/bin/mysqladmin_urootpassword1-S/tmp/mysqld.sock#/usr/local/mysql-5.5.24/bin/mysqladmin_urootpasswordIfs_sync#loadcreatetableandloaddata/usr/local/mysql-5.5.24/bin/mysqladmin_uroot-picreatetpcc/usr/local/mysql-5.5.24/bin/mysql_uroot-pitpcc<create_table.sql/usr/local/mysql-5.5.24/bin/mysql_uroot-pitpcc<add_fkey_idx.sql$cur_dir/load.shtpcc$tpcc_whjob—name=tpcc_load#waitfortpcc_loadwhile((I))donum=psaux|grep$job—name|grep-vgrep|wc-1if[$num-eq0];thenbreakelsesleep300fidonetlog〃tpcc_loadcomplete!"foriin${tpcc_client[@]}dotlog〃tpcc_start_h127.0.0.1_dtpcc_uroot-pIi$tpcc_wh_c$1-r$tpcc—wmtime-1$tpcc—rtime〃$cur_dir/tpcc_start_h127.0.0.1_dtpcc_uroot-pIi$tpcc_wh-c$1-r$tpcc—wmtime-1$tpcc_rtime-f${basedir}/tpcc_result_${tpcc_wh}_${i}.log>>${basedir}/tpcc_ouput_${tpcc_wh}_${i}.logdoneservicemysql.serverstoprm-rf/tmp/tmp/mysqld.sockrm-rfout}collect—result(){cp./collect—data,shtpcc—test/cdtpcc—test./collect—data,shmvres_dir/cd..}main(){#第一次只对机械硬盘测试,第二次先制作cache,然后测试tpcc。[0021]for(j=l;j〈3;j++){if[$j=2];then{tar-zxvfflashcache.tar.gzcdflashcachemakemakeinstallflashcache_create-pback-s100gmycache/dev/dfa/dev/sdb}fifortpcc—whin${tpcc—wh_arr[@]}doecho〃for........................〃tpcc—testdonecollect—resultmvres_dirres_dir_$j}}Main。[0022]使用DD命令,对SSD进行顺序读、顺序写测试,块大小为1M,每个策略测试200G大小。[0023]在测试过程中,每一秒收集一次1stat输出的tps大小,最后可以拷贝出来使用excle制作线图,看读写是否稳定,是否会忽高忽低。[0024]#!/bin/bashecho〃Thisis$atestSff〃ddif=/dev/zeroof=/mnt/sdb/200gbs=lMcount=200000000;1stat-tIgrep“sdb,,>>/root/test-Sff.txtecho"Thisis$atestSR〃ddif=/mnt/sdb/200gof=/dev/nullbs=lMcount=200000000;1stat-tI|grep“sdb,,|>>/root/test-SR.txtrm-rf/mnt/sdb/200g;cattest-Sff.txt|awk‘{print$2},>>tps-Sff.txtcattest-SR.txtIawk“{print$2}’>>tps_SR.txt。[0025]本发明提供的方法自动化的依次利用Linux下的f1性能测试,tpcc对制作cache前和后分别测试SSD的性能和功能,输出两次tpcc测试数据进行对比。然后利用dd工具测试长时间运行稳定性,抓取tps值,输出测试结果,查看稳定性,为以后的新的SSD测试提供对比数据。节约测试时间,减少人力投入,提升产品质量,为公司节约成本。[0026]上述【具体实施方式】仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述【具体实施方式】,任何符合本发明的一种自动进行SSD性能、功能及稳定性测试的方法的权利要求书的且任何所属【
技术领域
】的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。【权利要求】1.一种自动进行SSD性能、功能及稳定性测试的方法,其特征在于,其具体实现过程为:一、搭建测试平台;二、安装系统及测试工具;三、被测试服务器依次进行f1性能测试;四、输出f1性能测试结果后,被测服务器对机械硬盘进行tpcc测试;五、输出TPCC测试结果后,被测服务器使用SSD硬盘制作缓存区cache;六、对使用了cache的硬盘进行TPCC测试;七、删除cache缓存;八、被测试服务器的SSD硬盘使用dd命令进行读写稳定性测试;九、将测试后的结果收集整理,结束测试值。2.根据权利要求1所述的一种自动进行SSD性能、功能及稳定性测试的方法,其特征在于,所述步骤二中安装的系统为从PXE上安装的Linux系统,安装完成后通过wget命令从PXE服务器上下载测试工具和脚本。3.根据权利要求2所述的一种自动进行SSD性能、功能及稳定性测试的方法,其特征在于,所述被测试服务器依次进行f1性能测试是指4K、8K、16K、32K、64K、128K、216K、512K、1024Κ的顺序读、顺序写、随机读、随机写、混合读写的性能测试。4.根据权利要求2所述的一种自动进行SSD性能、功能及稳定性测试的方法,其特征在于,所述DD命令对SSD硬盘进行读写稳定性测试是指进行顺序读、顺序写测试,块大小为1Μ,每个策略测试200G大小,同时在测试过程中,每一秒收集一次1stat输出的tps大小。【文档编号】G06F11/26GK104360919SQ201410576683【公开日】2015年2月18日申请日期:2014年10月24日优先权日:2014年10月24日【发明者】闫硕,梁文俊申请人:浪潮电子信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1