SSD性能测试方法及相关组件与流程

文档序号:22124260发布日期:2020-09-04 17:00阅读:244来源:国知局
SSD性能测试方法及相关组件与流程

本申请涉及云计算数据中心技术领域,特别涉及ssd性能测试方法、系统、一种服务器及一种fpga加速板卡。



背景技术:

随着互联网、云计算、物联网等技术的发展,固态硬盘(ssd)作为新的一代存储被广泛应用。在固态硬盘研发测试的过程中,固态硬盘的性能是被重点关注的,因此对于固态硬盘的性能测试评估也尤为重要。

相关对于固态硬盘的测试技术中一般是基于裸盘或者文件系统进行顺序读、顺序写以及混合读写的三项操作性能测试。然而由于实际固态硬盘应用过程中环境复杂,而基于单纯的读、写、混合读写操作的性能难以确定硬盘在复杂场景下多种操作随机执行时ssd硬盘实际的运行性能,无法实现固态硬盘的性能精准确定。

因此,如何实现精准的固态硬盘性能的测试,是本领域技术人员继续解决的问题。



技术实现要素:

本申请的目的是提供一种ssd性能测试方法,该方法既可以充分利用cpu资源,又可以降低互斥等锁的情形,有效提升数据处理效率;本申请的另一目的是提供一种ssd性能测试装置、设备及一种可读存储介质。

为解决上述技术问题,本申请提供一种ssd性能测试方法,包括:

测试端确定待测试ssd,并将所述待测试ssd的文件系统与postgresql数据库绑定;其中,所述测试端中安装有所述postgresql数据库以及postgresql压力测试工具;

调用所述postgresql压力测试工具向所述待测试ssd下发管理命令;

提取所述待测试ssd在所述管理命令的响应阶段在所述postgresql数据库中生成的目标性能数据,并根据所述目标性能数据就对所述待测试ssd进行性能分析。

可选地,将所述待测试ssd的文件系统与postgresql数据库绑定,包括:

停止所述postgresql数据库的服务进程;

将所述postgresql数据库中的data文件迁移至所述待测试ssd的文件系统中,并赋予可执行性的权限;

重启操作系统,以使迁移操作生效。

可选地,在将所述postgresql数据库中的data文件拷贝至所述待测试ssd的文件系统中之前,还包括:

查看所述postgresql数据库的运行状态;

判断所述运行状态是否为停止状态;

若是,执行将所述postgresql数据库中的data文件拷贝至所述待测试ssd的文件系统中的步骤;

若否,执行停止所述postgresql数据库的服务进程的步骤。

可选地,查看所述postgresql数据库的运行状态,包括:

调用sudosystemctlstatuspostgresql-10指令查看所述postgresql数据库的运行状态。

可选地,将所述postgresql数据库中的data文件迁移至所述待测试ssd的文件系统中,并赋予可执行性的权限,包括:

将data文件目录拷贝至所述待测试ssd的文件系统中的目标地址;

修改所述data文件的归属以及权限;

将所述data文件的配置文件调整至迁移后的目录。

可选地,在重启操作系统之后,还包括:

初始化所述postgresql数据库;

判断所述data文件的目录是否为空;

若否,删除所述目录中的文件,并执行初始化所述postgresql数据库的步骤。

可选地,在调用所述postgresql压力测试工具向所述待测试ssd下发管理命令之前,还包括:

初始化所述待测试ssd。

本申请还提供了一种ssd性能测试装置,包括:

数据库迁移单元,用于确定待测试ssd,并将所述待测试ssd的文件系统与postgresql数据库绑定;其中,所述测试端中安装有所述postgresql数据库以及postgresql压力测试工具;

管理命令下发单元,用于调用所述postgresql压力测试工具向所述待测试ssd下发管理命令;

性能数据提取分析单元,用于提取所述待测试ssd在所述管理命令的响应阶段在所述postgresql数据库中生成的目标性能数据,并根据所述目标性能数据就对所述待测试ssd进行性能分析。

本申请还提供了一种ssd性能测试设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现所述的ssd性能测试方法的步骤。

本申请还提供了一种可读存储介质,所述可读存储介质上存储有程序,所述程序被处理器执行时实现所述ssd性能测试方法的步骤。

本申请所提供的ssd性能测试方法,该方法中引入了postgresql数据库,基于postgresql数据库实现各种数据管理需求下对于ssd文件系统的运行性能测试,通过引入postgresql建设ssd在各种实际应用场景下的操作,操作类型、操作顺序以及操作时间相较传统裸盘读写操作都存在极大的丰富,ssd性能测试的内容更全面,可以实现基于各种实际应用场景下ssd硬盘的管理命令响应的全采集,为ssd性能测试提供了更全面的数据,基于该测试数据,可以进一步辅助研发测试过程中及时发现ssd在实际应用中可能存在的性能问题,以便尽早解决,提高研发测试的效率。

本申请还提供了一种ssd性能测试装置、设备及一种可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种应用于服务器的ssd性能测试方法的流程图;

图2为本申请实施例提供的一种ssd性能测试装置的结构框图;

图3为本申请实施例提供的一种ssd性能测试设备的结构示意图。

具体实施方式

本申请的核心是提供ssd性能测试方法,该方法适合于不同厂商不同类型的fpga加速卡,可以实现产品静态信息的固化;本申请的另一核心是提供一种ssd性能测试装置、设备及一种可读存储介质。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在ssd硬盘实际运行下,操作类型复杂,除了读写数据外,还存在数据擦除、数据搬迁等操作,仅仅基于硬盘的读写性能难以实现对于硬盘性能的全面性评估,而且在实际运行中,操作的先后顺序、每个操作的执行时间以及是否存在并行操作等具体应用场景下的因素都可能会对硬盘的性能(比如读写性能)产生影响,使硬盘出现性能波动。为保证ssd硬盘的精准测试评估,本实施例提供一种ssd性能测试方法,请参考图1,图1为本实施例提供的一种ssd性能测试方法的流程图,该方法主要包括:

步骤s110、测试端确定待测试ssd,并将待测试ssd的文件系统与postgresql数据库绑定;

测试端指用于测试ssd的终端,对于具体的终端类型不做限定,可以根据实际测试需要进行测试端的选择。

另外,本实施例中对待测试ssd的具体硬盘类型不做限定,可以为nvmessd,也可以为其他硬盘类型,可以根据实际测试需要进行待测试ssd的设定。待测试ssd中包含有文件系统,以构建固态硬盘的实际应用环境,且该文件系统与postgresql数据库(对象关系型数据库)绑定,即将数据库迁移至ssd的文件系统中,以实现基于postgresql数据库的ssd性能测试,而具体的绑定实现步骤在此不做赘述,可以实现将数据库迁移至ssd即可。

测试端中安装有postgresql数据库以及postgresql压力测试工具(pgbench),目前postgresql数据库主要用于ssd硬盘的数据管理,可以实现对于ssd硬盘的在实际应用场景下的操作控制,实现比如写入数据、擦除数据、数据搬迁等,可实现的操作类型复杂,且可以实现不同场景下的操作顺序以及操作时间的管理。而postgresql压力测试工具是对ssd硬盘下发管理命令的实现基础,实际对于待测试ssd的管理命令的下发需要调用postgresql压力测试工具实现。需要说明的是,postgresql数据库以及postgresql压力测试工具的安装具体实现过程在此不做限定,具体可以参见相关技术中的实现过程。

本实施例中基于postgresql数据库测试ssd的性能,可以极大的丰富ssd性能测试的内容,达到全面测试nvmessd性能的效果,为nvmessd性能测试提供了更全面的数据,在研发测试过程中可以及时发现nvmessd在实际应用中可能存在的性能问题,以便尽早解决,可以提高研发测试的效率。

步骤s120、调用postgresql压力测试工具向待测试ssd下发管理命令;

将待测试ssd的文件系统与postgresql数据库绑定后,便可基于postgresql数据库实现对于ssd的控制,此时,调用postgresql压力测试工具向待测试ssd下发管理命令,具体的管理命令的下发过程的实现可以通过配置不同的管理命令参数来实现,具体参数举例如下:pgbench-mprepared-v-r-p1-btpcb-like-cxxxx-jxxxx-txxxx-dscale=xxxx-drange=xxxx,具体管理命令的参数配置可以参见postgresql压力测试工具的具体配置,调用数据库系统对待测试盘基于各种实际应用场景执行各种动作,实现全面的ssd性能测试。

步骤s130、提取待测试ssd在管理命令的响应阶段在postgresql数据库中生成的目标性能数据,并根据目标性能数据就对待测试ssd进行性能分析。

性能数据的提取可以在测试过程中进行,比如在某管理命令下发后,立即采集相应性能数据,也可以在全部管理命令测试完成后,统计所有管理命令下的性能数据,在此对性能数据的提取时间节点不做限定,可以根据实际获取数据的需要进行设定。

从数据库系统中提取我们需要的性能数据进行性能测试的分析,性能分析的过程本实施例中也不做限定,可以根据实际侧重的ssd能力进行性能分析。

基于上述介绍,本实施例提供的ssd性能测试方法,引入了postgresql数据库,基于postgresql数据库实现各种数据管理需求下对于ssd文件系统的运行性能测试,通过引入postgresql建设ssd在各种实际应用场景下的操作,操作类型、操作顺序以及操作时间相较传统裸盘读写操作都存在极大的丰富,ssd性能测试的内容更全面,可以实现基于各种实际应用场景下ssd硬盘的管理命令响应的全采集,为ssd性能测试提供了更全面的数据,基于该测试数据,可以进一步辅助研发测试过程中及时发现ssd在实际应用中可能存在的性能问题,以便尽早解决,提高研发测试的效率。

上述实施例中对于将待测试ssd的文件系统与postgresql数据库绑定的具体实现步骤不做限定,本实施例中以一种实现方式为例进行介绍。

一种将待测试ssd的文件系统与postgresql数据库绑定的实现过程主要包括以下步骤:

(1)停止postgresql数据库的服务进程;

停止服务,避免服务过程中的迁移异常。

(2)将postgresql数据库中的data文件迁移至待测试ssd的文件系统中,并赋予可执行性的权限;

对于ssd的管理操作是基于data文件实现的,因此为实现对于ssd的管理操作,需要将data文件迁移至ssd的文件系统中。

而本步骤具体的实现过程不做限定,可以根据不同的迁移习惯进行设定,可选地,一种将postgresql数据库中的data文件迁移至待测试ssd的文件系统中,并赋予可执行性的权限的实现步骤具体包括:

(2.1)将data文件目录拷贝至待测试ssd的文件系统中的目标地址;

(2.2)修改data文件的归属以及权限;

(2.3)将data文件的配置文件调整至迁移后的目录。

例如:将/var/lib/pgsql/10/data目录拷贝到目标地址,执行命令sudochown-rpostgres:postgresdata以修改文件夹的owner,执行sudochmod700data修改权限;

再找到/usr/lib/systemd/system/postgresql-10.service;

将文件中的environment=pgdata=/var/lib/pgsql/10/data/修改成迁移后的目录;找到/var/lib/pgsql目录;执行vim.bash_profile,将文件中的pgdata=/var/lib/pgsql/10/data改成迁移后的目录。

(3)重启操作系统,以使迁移操作生效。

该方法实现步骤简单,且可以保证数据库的迁移效果,有助于提升测试效率。

而在执行停掉服务的步骤之后,可能会存在步骤执行失败的情况,为避免继续服务的数据库迁移过程中出现异常,可选地,在将postgresql数据库中的data文件拷贝至待测试ssd的文件系统中之前,可以进一步查看postgresql数据库的运行状态;判断运行状态是否为停止状态;若是,执行将postgresql数据库中的data文件拷贝至待测试ssd的文件系统中的步骤;若否,执行停止postgresql数据库的服务进程的步骤。

其中,查看postgresql数据库的运行状态的实现方式不做限定,可选地,可以调用sudosystemctlstatuspostgresql-10指令(一种数据库系统状态关闭指令)查看postgresql数据库的运行状态,该状态查看方式稳定性较高,且状态获取精准,本实施例中仅以该种状态获取方式为例进行介绍,其他实现方式均可参照本实施例的介绍,在此不再赘述。

在重启系统后,为保证迁移操作生效,可选地,在重启操作系统之后,可以进一步执行以下步骤:

初始化postgresql数据库;

判断data文件的目录是否为空;

若否,删除目录中的文件,并执行初始化postgresql数据库的步骤。

上述步骤在重启系统后初始化数据库,重新初始化数据库并启动服务,若data目录不为空,指示操作未生效,则需先删除该目录中所有文件再初始化数据库。

基于上述介绍,本实施例提供的数据库绑定(迁移)策略实现过程简单,且稳定,不易出错,可以为后续的测试过程提供可靠保障。

为加深对上述实施例的理解,本实施例中以待测试ssd具体为nvmessd为例,对nvmessd的性能测试方法进行介绍,其他类型下的ssd性能测试可以按照其类型下的目录存放以及设置规则、nvmessd的测试方法的进行相应设置,在此不再赘述。

本实施例中主要对整体的数据库以及测试工具的安装过程,ssd文件系统的创建过程、数据库的绑定(迁移)过程以及测试过程为例进行整体实现步骤的介绍,其他基于本申请的实现过程均可参照本实施例的介绍。

主要包括以下步骤:

1、安装pgbench(postgresql压力测试工具)以及postgresql数据库。

1)首先访问postgresql官网的安装页面;

2)选择安装版本;

3)yuminstall–yhttps://download.postgresql.org/pub/repos/yum/reporpms/el-7-x86_64/pgdg-redhat-repo-latest.norch.rpm下载安装依赖包;

4)执行yum–yinstallpostgresql10*直接安装postgresql10的全部组件,修改postgresql后的版本号即可安装其他版本;

5)初始化数据库并启动postgresql服务,命令如下:

/usr/pgsql-10/bin/postgresql-10-setupinitdb

systemctlenablepostgresql-10

systemctlstartpostgresql-10

6)查看是否安装成功,输入su–postgres进入交互界面。

2、nvmessd创建文件系统并挂载,以构建一个固态硬盘的实际应用环境。

1)按照实际测试的需求对nvmessd创建需要的文件系统类型;

2)将创建好的文件系统进行挂载,记录挂载目录。

3、数据库的迁移,将数据库与文件系统绑定。

1)首先要停止postgresql服务,执行命令:sudosystemctlstoppostgresql-10

2)执行之后可以使用sudosystemctlstatuspostgresql-10指令查看postgresql的运行状态,判断服务是否正常停止;

3)将/var/lib/pgsql/10/data目录拷贝到目标地址;

4)执行命令sudochown-rpostgres:postgresdata,修改文件夹的owner;

5)通过执行sudochmod700data修改权限;

6)修改data文件的配置文件;

找到/usr/lib/systemd/system/postgresql-10.service;

将文件中的environment=pgdata=/var/lib/pgsql/10/data/修改成迁移后的目录;

找到/var/lib/pgsql目录;执行vim.bash_profile;

将文件中的pgdata=/var/lib/pgsql/10/data改成迁移后的目录。

7)reboot系统;

8)重新初始化数据库并启动服务,同步骤1中5);若data目录不为空,则先删除该目录中所有文件再初始化数据库;

4、基于postgresql数据库测试nvmessd的性能;

1)执行pgbench–i将待测试的盘初始化;

2)配置不同参数对待测试盘基于各种实际应用场景执行各种动作实现性能测试,记录测试结果,从数据库系统中提取我们需要的性能数据进行性能测试的分析,得出性能分析结果。

本实施例中详细介绍了各步骤的具体实现方法,其他基于本申请的实现过程均可参照本实施例的介绍。

请参考图2,图2为本实施例提供的一种ssd性能测试装置的结构框图;该装置主要包括:数据库迁移单元210、管理命令下发单元220以及性能数据提取分析单元230。本实施例提供的ssd性能测试装置可与上述ssd性能测试方法相互对照。

其中,数据库迁移单元210主要用于确定待测试ssd,并将待测试ssd的文件系统与postgresql数据库绑定;其中,测试端中安装有postgresql数据库以及postgresql压力测试工具;

管理命令下发单元220主要用于调用postgresql压力测试工具向待测试ssd下发管理命令;

性能数据提取分析单元230主要用于提取待测试ssd在管理命令的响应阶段在postgresql数据库中生成的目标性能数据,并根据目标性能数据就对待测试ssd进行性能分析。

本实施例提供一种ssd性能测试设备,主要包括:存储器以及处理器。

其中,存储器用于存储程序;

处理器用于执行程序时实现如上述实施例介绍的ssd性能测试方法的步骤,具体可参照上述ssd性能测试方法的介绍。

请参考图3,为本实施例提供的ssd性能测试设备的结构示意图,该ssd性能测试设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)322(例如,一个或一个以上处理器)和存储器332。其中,存储器332可以是短暂存储或持久存储。更进一步地,中央处理器322可以设置为与存储器332通信,在ssd性能测试设备301上执行存储器332中的一系列指令操作。

ssd性能测试设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上面图1所描述的ssd性能测试方法中的步骤可以由本实施例介绍的ssd性能测试设备的结构实现。

本实施例公开一种可读存储介质,其上存储有程序,程序被处理器执行时实现如上述实施例介绍的ssd性能测试方法的步骤,具体可参照上述实施例中对ssd性能测试方法的介绍。

该可读存储介质具体可以为u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可存储程序代码的可读存储介质。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的ssd性能测试方法、装置、设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1