CN102750221B - 一种针对Linux文件系统的性能测试方法 - Google Patents

一种针对Linux文件系统的性能测试方法 Download PDF

Info

Publication number
CN102750221B
CN102750221B CN201210171936.1A CN201210171936A CN102750221B CN 102750221 B CN102750221 B CN 102750221B CN 201210171936 A CN201210171936 A CN 201210171936A CN 102750221 B CN102750221 B CN 102750221B
Authority
CN
China
Prior art keywords
test
file
read
write
affairs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210171936.1A
Other languages
English (en)
Other versions
CN102750221A (zh
Inventor
兰雨晴
颜佩琼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongbiao Huian Information Technology Co Ltd
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201210171936.1A priority Critical patent/CN102750221B/zh
Publication of CN102750221A publication Critical patent/CN102750221A/zh
Application granted granted Critical
Publication of CN102750221B publication Critical patent/CN102750221B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种针对Linux文件系统的性能测试方法,该方法从三个维度来对Linux文件系统的性能进行评估,具体包括:微观读写带宽测试,通过模拟多个IO操作的应用场景对Linux文件系统微观读写带宽进行测试;事务操作吞吐量测试,通过基于随机概率的事务交叉循环操作方式对Linux文件系统的文件操作吞吐量进行测试;宏观典型应用模拟测试,通过基于多线程的可扩展负载模型构建方式对典型应用场景进行模拟从而评估Linux文件系统的真实工作性能。本发明提出的方法在保证正确性的前提下有效提高了测试覆盖率。

Description

一种针对Linux文件系统的性能测试方法
技术领域
本发明涉及开源操作系统技术领域,尤其涉及针对Linux文件系统的性能测试方法。
背景技术
目前,针对Linux文件系统的性能测试方法主要是基准测试方法。所谓基准测试就是通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试。基准测试工具大体分为三类:Micro-benchmarks(即微观基准测试工具)、Macro-benchmarks(宏观基准测试工具)和Replaying traces(可重放跟踪文件)。
Linux文件系统的Micro-benchmarks测试主要针对文件系统某一个或多个具体的操作性能进行测试,其测试负载通常由不同类型的操作组成,并以此来凸现文件系统某一方面或者某些方面的特征。Micro-benchmarks测试的优点是能从微观的角度帮助用户了解文件系统某些特点方面的性能,且测试结果容易分析和理解;但存在的主要问题是:测试覆盖率低;硬件上的微观性能难以反映文件系统的真实工作性能。
Linux文件系统的Macro-benchmarks测试是通过模拟文件系统的真实工作负载来对文件系统的综合性能进行评估。这种测试方法的目标是尽可能真实地产生符合文件系统实际行为的测试负载。Macro-benchmarks测试的优点是能从宏观的角度确定合适的工作量来模拟有代表性的负载和用户作业;但也存在如所模拟的应用负载并不是用户所关心的负载、工作负载不能灵活配置、默认负载过于陈旧、针对的Linux文件系统类型过于单一等问题。
Linux文件系统的Replaying traces测试收集到现实负载下的文件系统操作日志记录,并按照一定格式记录在trace文件中,然后在测试时按照收集的trace文件中的跟踪记录重播程序向文件系统发出I/O请求,从而对文件系统的真实应用行为进行性能评估。Replaying traces的目标与Macro-benchmarks类似,都是产生能充分反映真实应用环境的工作负载。但是由于它们需要一个权威的机构对其进行统一存储管理,包括录制、发布、存储、使用说明等都应该有统一的标准的管理,就使得它们的使用变得复杂和繁琐。
发明内容
本发明提供了一种针对Linux文件系统性能进行评估的方法,有效解决了当前针对Linux文件系统基准测试工具中存在的测试覆盖率低、可扩展性差、难以反应文件系统的真实工作性能的问题。
本发明所采取的技术方案是:一种针对Linux文件系统的性能评估方法,该方法从三个维度来对Linux文件系统的性能进行评估,具体包括:
微观读写带宽测试,通过模拟多个IO操作的应用场景对Linux文件系统微观读写带宽进行测试;
事务操作吞吐量测试,通过基于随机概率的事务交叉循环操作方式对Linux文件系统的文件操作吞吐量进行测试;
宏观典型应用模拟测试,通过基于多线程的可扩展负载模型构建方式对典型应用场景进行模拟从而评估Linux文件系统的真实工作性能。
与现有技术相比,本发明的优点是:
(1)本发明针对微观读写带宽测试,对常用的读写测试点进行了扩充,有效提高了测试覆盖率。
(2)本发明针对事务操作吞吐量的测试,设计了丰富的可扩展测试负载配置参数和丰富的指标集,并采取基于随机概率的事务循环交叉操作方式来模拟现实应用中的文件操作行为。有效提高了测试负载的可扩展性和测试结果的真实性与可对比性。
(3)本发明针对宏观典型应用的模拟测试,采取了基于多线程的可扩展负载模型构建方式来模拟文件在实际应用中的真实工作负载,在保证了负载的现实性同时也提高了负载的可扩展性。
附图说明
图1是本发明的针对Linux文件系统的事务操作吞吐量测试的实施流程图。
图2是本发明的针对Linux文件系统的宏观典型应用模拟测试中的网络代理应用默认测试负载。
图3是本发明的针对Linux文件系统的宏观典型应用模拟测试中的网络代理应用模拟测试流程图。
具体实施方式
本发明是一种针对Linux文件系统的性能评估方法,该方法从三个维度来对Linux文件系统的性能进行评估,具体包括:微观读写带宽测试,通过模拟多个IO操作的应用场景对Linux文件系统微观读写带宽进行测试;事务操作吞吐量测试,通过基于随机概率的事务交叉循环操作方式对Linux文件系统的文件操作吞吐量进行测试;宏观典型应用模拟测试,通过基于多线程的可扩展负载模型构建方式对典型应用场景进行模拟从而评估Linux文件系统的真实工作性能。
一、微观读写带宽测试
对于微观读写测试场景的设计主要分为6个步骤。具体描述如下:
步骤1:选取微观测试点。
需要对IO操作的发生规律进行统计,包括读写位置选取、读写文件的存在与否等,并在此基础之上建立相应的存取模型。本发明选取顺序读写、随机读写、倒序读、跳跃读、写与覆盖写、内存映射读写六种存取模型对文件系统的微观读写操作性能进行测试。并针对不同的存取模型了设计了12个微观测试点来从不同的角度对Linux文件系统的读写性能进行测试。如表1所示:
表1
如表1所示,顺序读写存取模型又分为四个测试操作场景,分别为Read、Re-read、Write和Re-write;其中,Read是测试顺序读一个已存在的文件的性能,Re-read是测试对最近读过的一个文件进行再次读取的性能,Write是测试向一个新文件进行数据写入的性能,Re-write是测试向一个已存在的文件进行数据写入的性能。
如表1所示,随机读写存取模型又分为3个测试操作场景,分别为Random-read、Random-write、Random-mix;其中,Random-read是指测试从一个已有文件的随机偏移量处进行数据读取的性能,Random-write是指测试向一个已有文件的随机偏移量处进行数据写入的性能,Random-mix是指测试对文件进行数据读取和数据写入随机混合操作时的性能。
如表1所示,内存映射读写存取模型又分为2个测试操作场景,分别为Mmap-read和Mmap-write;其中,Mmap-read是测试通过内存映射机制对文件进行数据读取的性能,Mmap-write是测试通过内存映射机制对文件进行数据写入的性能。
步骤2:配置测试负载
在测试开始之前,用户需要指定测试的文件大小上下限和数据块大小上下限,其中数据块大小的上限需低于或者等于文件大小的下限。测试的过程则按照所设置的文件和数据块大小的上下限进行双重循环测试,用以反映不同文件大小和不同数据块大小下的读写性能差异。
步骤3:测试初始化
按照本轮测试的测试文件大小完成初始化操作,可包括创建文件、生成文件内容、生成随机节点、生成待写入内容等。不同的测试操作对应的测试初始化操作不同。如顺序读写模型中的Read是测试对已有文件进行顺序读取的性能,需要进行初始测试文件的创建以及测试文件内容的生成。
步骤4:执行单轮测试流程
启动测试监控,按照单轮测试的文件大小和数据块大小执行相应的测试操作。如Read测试是按照本轮测试所设置数据块大小将测试文件的内容顺序读入缓冲区,直至数据读取完毕。
步骤5:统计单轮测试带宽
停止测试监控,统计本轮测试下的单位时间内的读写数据量,并记录相应文件大小和数据块大小。
步骤6:双重循环控制
单轮读写测试执行流程结束后,将检查本轮测试的数据块大小是否达到上限,如果没有达到上限,则将数据块大小增倍,测试文件大小保持不变,转到步骤4启动下一轮测试;如果本轮测试数据块大小已经达到上限,则检查本轮测试文件大小是否达到上限,如果没有达到上限则测试文件大小增倍,并将数据块大小重置为下限,转到步骤4启动下一轮测试;如果本轮测试的数据块大小和测试文件大小都达到了上限,则退出测试循环并删除所有测试文件。
二、事务操作吞吐量测试
事务操作吞吐量测试需要模拟事务批量操作和事务交叉操作来对文件事务操作的真实工作性能进行评估,并提供灵活的测试配置参数与丰富的测试指标帮助用户从多个角度对文件系统事务操作性能进行直观分析。针对事务操作吞吐量的测试场景设计如图1所示,事务操作吞吐量的测试场景包括步骤2中描述的文件批量创建测试操作、步骤3中描述的循环事务交叉测试操作、步骤4中描述的批量文件删除3个阶段。
事务操作吞吐量测试包括5个步骤,具体描述如下:
步骤1:设计测试配置参数
为了提供灵活的测试负载配置机制,需要对文件系统的实际事务操作特点进行分析,从而设计丰富的符合实际负载特点的测试配置参数。如表2所示:
表2
配置参数名称 简要描述
文件尺寸上下限 可设置文件尺寸的最小值和最大值
并发文件数量 可设置测试文件集的数量
子目录数量 可设置该参数来配置事务操作的目录环境
读操作数据块大小 可设置单次读取文件的数据块大小
写操作数据块大小 可设置单次写入文件的数据块大小
Read/Append比例 可设置该参数指定读/追加操作的混合比例
Create/Delete比例 可设置该参数指定创建/删除操作的混合比例
事务执行次数 可设置测试中需要执行的事务次数
步骤2:执行文件批量创建测试操作
该阶段执行的操作包括:启动测试,然后记录测试开始时间start_time,并按照用户所设置的并发文件数量以及文件平均大小顺序批量创建文件,最后记录事务随机交叉循环测试操作开始时间t_start_time。
步骤3:执行事务随机交叉循环测试操作
该阶段以用户设置的事务操作比例为依据随机交叉执行不同的事务操作。在单次事务操作循环中,如图1所示,具体步骤包括:
步骤31:判断是否执行Read/Append操作,若否则转向步骤32,若是则按照Read/Append操作比例产生一个随机数用来判断本次循环是否执行Read操作,如果是,则执行一次Read操作,如果否,则执行一次Append操作;
步骤32:判断是否执行Create/Delete操作,若否则转向步骤33,若是则按照Create/Delete操作比例产生一个随机数用来判断本次循环是否执行Create操作,如果是,则执行一次Create操作,如果否,则执行一次Delete操作;
步骤33:将事务执行次数加1,若事务执行次数达到用户设定的值,则事务随机交叉循环操作阶段结束,进入文件批量删除阶段;否则转向步骤31:。
步骤4:执行批量文件删除测试操作
该阶段执行的操作包括:首先记录事务随机交叉循环测试操作结束时间t_end_time,然后批量删除所有剩余测试文件并记录测试结束时间end_time。
步骤5:统计各项测试指标
为了更加清晰地划分事务批量操作和事务随机交叉循环操作的工作性能,该测试过程的监控点分为四个:测试执行开始时间(start_time)、测试执行结束时间(end_time)、事务随机交叉循环执行开始时间(t_start_time)、事务随机交叉循环执行结束时间(t_end_time);
在运行测试操作的过程中除了记录4个测试监控点之外,还需实时记录和更新相关的文件操作信息,这些信息包括:创建的文件数量、删除的文件数量、文件的读取次数、文件的写入次数。在测试执行过程结束后根据这些信息完成测试指标的统计。事务操作吞吐量测试的测试指标如表3所示:
表3
其中事务总吞吐量是指单位时间内执行的事务次数,计算方式为transactions/t_elapsed(transactions为用户执行的事务执行次数,t_elapsed=t_end_time-t_start_time);t_start_time为所述事务随机交叉循环执行开始时间,t_end_time为所述事务随机交叉循环执行结束时间。文件创建/删除总吞吐量是指单位时间内创建/删除的文件数量,计算方式为files_created/elapsed(files_created为测试过程中所创建的文件数量,elapsed为end_time-start_time)。,start_time为所述测试执行开始时间,end_time为测试执行结束时间;
文件批量创建吞吐量是指单位时间内批量创建的文件数量,计算方式为files_init/interval1(其中files_init为用户指定的并发文件数量,interval1=t_start_time-start_time);文件批量删除吞吐量是指单位时间内批量删除的文件数量,计算方式为deleted/interval2(其中deleted为文件批量删除阶段所删除的文件数量,interval2=end_time-t_end_time)。
交叉操作吞吐量包括事务交叉时读操作吞吐量、事务交叉时追加文件吞吐量、事务交叉时创建文件吞吐量、事务交叉时删除文件吞吐量,事务交叉时读操作吞吐量是指事务交叉时单位时间内的文件读取次数,计算方式为files_read/t_elapsed(其中files_read是指测试过程中读文件的次数);事务交叉时追加文件吞吐量是指事务交叉时单位时间内文件追加次数,计算方式为files_appended/t_elapsed(其中files_appended是指测试过程中写文件的次数);事务交叉时创建文件吞吐量是指事务交叉时单位时间内文件创建个数,计算方式为(files_created-files_init)/t_elapsed(其中files_created是指测试过程中的文件创建总数);事务交叉时删除文件吞吐量是指事务交叉时单位时间内文件删除个数,计算方式为(files_deleted-deleted)/t_elapsed(其中files_deleted是指测试过程中的文件删除总数)。
三、宏观典型应用模拟测试
采用基于多线程的负载模型驱动测试方法对多个典型应用场景进行模拟,从而构造出符合真实应用场景负载特点的测试场景,以帮助用户从宏观应用的角度了解文件系统的真实工作性能。该部分主要分为6个步骤,如下以网页代理应用为例进行描述:
步骤1:分析真实应用的负载特点
网页代理是常见的一种代理程序,网页代理的目的是给客户端提供远程网站上的网页和文件高速缓存,使客户端可以更加快速安全地浏览远程网站。网页代理网站需要时常进行更新,且访问链接速度较快。网页代理的原理可以简单地该书为:用户访问◇网页代理服务器◇目标网站◇返回用户。
分析网页代理的应用场景,可以得出网页代理的负载通常具有如下特点:文件数量较多;所有文件都存放与代理缓存目录下;并发访问数量多;少量文件更新的同时伴随大量的读文件操作。
步骤2:定义仿真线程树
定义仿真线程树指的是指定义模拟测试场景中的线程类型、线程比例和不同线程所执行的操作类型。
根据网页代理应用场景的负载特点,定义了一种线程类型,即网页代理模拟线程,并通过多个并发的网页代理模拟线程用来模拟代理服务器真实应用环境;代理缓存线程执行的操作类型包括文件删除、文件创建、文件内容追加、文件内容读取,且由于网页代理应用中最主要的是读取操作,因此在网页代理仿真线程树中将读取操作次数定义为其他操作次数的5倍。
步骤3:定义测试配置参数
定义可扩展配置测试参数是指根据负载模型仿真线程树、并结合典型应用场景的负载特点定义供用户自定义测试负载的配置参数。
针对网页代理仿真线程树中定义的线程操作种类,并结合网页代理应用的负载特点,将网页代理的测试配置参数定义为:文件初始数量、并发线程个数、平均文件大小、单次追加文件内容的数据量平均大小。
步骤4:定义默认测试负载
默认测试负载定义是指根据应用负载特点,初始化测试配置参数以尽可能真实地对不同典型应用的实际工作负载进行模拟。
根据网页代理应用的负载特点:文件数量较多,所有文件都存放与代理缓存目录下,并发访问数量多,少量文件更新的同时伴随大量的读文件操作;可以定义网页代理的默认测试负载为:文件初始数量8000,并发线程个数100,文件平均大小16KB,单次追加文件内容的数据量平均大小16KB,具体如图2所示。
步骤5:启动测试执行操作
该过程主要是进行测试的实时监控与记录,并进行不同线程的同步控制。网页代理应用的测试操作执行流程如图3所示,具体操作包括:
步骤51:启动主线程测试,并按照指定的初始文件数量、单个目录下的平均文件数量以及平均文件大小分配测试初始文件集。其中文件集的目录分配与文件大小分配均服从gamma分布,gamma分布是一种统计学的连续概率函数,使用该分布函数可有效保证测试数据的随机性和真实性。
步骤52:启动测试监控,并按照测试负载中指定的并发线程个数并开启多个测试线程,用于模仿多个用户对文件服务器进行并发访问的情况;
步骤53:多个网页代理线程并发执行仿真线程树中定义的文件操作,依次为删除文件、创建文件、向文件追加内容、然后连续执行5次随机读操作。
步骤54:在步骤53进行的同时,主线程对所有网页代理线程进行测试监控,直到所有的线程执行完毕。
步骤6:统计测试指标
根据测试过程中实时记录的文件操作信息(如文件的操作次数、读写数据量等)统计模拟测试场景中的文件操作总吞吐量、文件读写总带宽和CPU占用率。
文件操作总吞吐量是指单位时间内所完成的文件操作次数,单位为ops/s。这里的文件操作包括文件创建、删除、读取和写入等多种操作。该项测试指标的值是通过测试过程中完成的文件操作总次数除以测试执行总时间而获得。
文件读写总带宽是指单位时间内的文件数据传输总量,单位为MB/s。该项测试指标是通过测试过程中所有读写操作完成的数据传输量除以测试执行总时间而获得。
这里的CPU占用率是指单个文件操作所占用的CPU时间,单位为us/op。该项指标通过测试执行过程的总CPU占用时间除以从文件操作次数而获得。
以上所述,仅为本发明的较佳实施例而已,当不能以此限定本发明实施范围;故,凡依本发明权利要求书及说明书内容所作的简单的等效变化与修饰,皆应仍属本发明专利涵盖的范围内。

Claims (8)

1.一种针对Linux文件系统的性能评估方法,其特征在于,该方法从三个维度来对Linux文件系统的性能进行评估,具体包括:
微观读写带宽测试,通过模拟多个IO操作的应用场景对Linux文件系统微观读写带宽进行测试;
事务操作吞吐量测试,通过基于随机概率的事务交叉循环操作方式对Linux文件系统的文件操作吞吐量进行测试;
宏观典型应用模拟测试,通过基于多线程的可扩展负载模型构建方式对典型应用场景进行模拟从而评估Linux文件系统的真实工作性能;
所述的微观读写带宽测试主要分为6个步骤:
步骤1:选取微观测试点,需要统计真实的IO操作发生规律,包括读写位置选取、读写文件的存在与否,并在此基础上建立典型的微观读写存取模型;
步骤2:配置测试负载,指定测试的文件大小上下限和数据块大小上下限,其中数据块大小的上限需低于或者等于文件大小的下限;
步骤3:测试初始化,包括创建文件、生成文件内容、生成随机节点、生成待写入内容;
步骤4:执行单轮测试流程,启动测试监控,按照单轮测试的文件大小和数据块大小执行相应的测试操作;
步骤5:统计单轮测试带宽,停止测试监控,统计本轮测试下的单位时间内的读写数据量,并记录相应文件大小和数据块大小;
步骤6:双重循环控制,单轮读写测试执行流程结束后,检查本轮测试的数据块大小是否达到上限,如果没有达到上限,则将数据块大小增倍,测试文件大小保持不变,转到步骤4启动下一轮测试;如果本轮测试数据块大小已经达到上限,则检查本轮测试文件大小是否达到上限,如果没有达到上限则测试文件大小增倍,并将数据块大小重置为下限,转到步骤4启动下一轮测试;如果本轮测试的数据块大小和测试文件大小都达到了上限,则退出测试循环并删除所有测试文件。
2.如权利要求1所述的对Linux文件系统的性能评估方法,其特征在于,所述典型的微观读写存取模型包括:顺序读写存取模型;随机读写存取模型;倒序读存取模型;跳跃读存取模型;写与覆盖写存取模型;内存映射读写存取模型;
所述的顺序读写存取模型又分为4个测试操作场景,分别为Read、Re-read、Write和Re-write;其中,Read是测试顺序读一个已存在的文件的性能,Re-read是测试对最近读过的一个文件进行再次读取的性能,Write是测试向一个新文件进行数据写入的性能,Re-write是测试向一个已存在的文件进行数据写入的性能;
所述的随机读写存取模型又分为3个测试操作场景,分别为Random-read、Random-write、Random-mix;其中,Random-read是指测试从一个已有文件的随机偏移量处进行数据读取的性能,Random-write是指测试向一个已有文件的随机偏移量处进行数据写入的性能,Random-mix是指测试对文件进行数据读取和数据写入随机混合操作时的性能;
所述的内存映射读写存取模型又分为2个测试操作场景,分别为Mmap-read和Mmap-write;其中,Mmap-read是测试通过内存映射机制对文件进行数据读取的性能,Mmap-write是测试通过内存映射机制对文件进行数据写入的性能。
3.如权利要求1所述的对Linux文件系统的性能评估方法,其特征在于,所述的事务操作吞吐量测试,具体包括5个步骤:
步骤1:设计测试配置参数;
步骤2:执行文件批量创建测试操作,该步骤2执行的操作包括:启动测试,然后记录测试开始时间start_time,并按照用户所设置的并发文件数量以及文件平均大小顺序批量创建文件,最后记录事务随机交叉循环测试操作开始时间t_start_time;
步骤3:执行事务随机交叉循环测试操作,该步骤3以用户设置的事务操作比例为依据随机交叉执行不同的事务操作;
步骤4:执行批量文件删除测试操作,该步骤4执行的操作包括:首先记录事务随机交叉循环测试操作结束时间t_end_time,然后批量删除所有剩余测试文件并记录测试结束时间end_time;
步骤5:统计各项测试指标。
4.如权利要求3所述的对Linux文件系统的性能评估方法,其特征在于,所述测试配置参数,具体包括:
文件尺寸的上下限;
并发文件集的数量;
子目录数量;
读操作数据块大小;
写操作数据块大小;
读/写操作比例;
创建/删除操作比例;
事务执行次数。
5.如权利要求3所述的对Linux文件系统的性能评估方法,其特征在于,所述的事务随机交叉循环测试操作,针对Create、Delete、Read、Append 这4种文件操作类型,分为两大类:Create/Delete和Read/Append,然后根据用户设置的读/写操作比例和创建/删除操作比例为依据随机交叉循环执行不同的文件操作,具体步骤包括:
步骤31:判断是否执行Read/Append操作,若否则转向步骤32,若是则按照Read/Append操作比例产生一个随机数用来判断本次循环是否执行Read操作,如果是,则执行一次Read操作,如果否,则执行一次Append操作;
步骤32:判断是否执行Create/Delete操作,若否则转向步骤33,若是则按照Create/Delete操作比例产生一个随机数用来判断本次循环是否执行Create操作,如果是,则执行一次Create操作,如果否,则执行一次Delete操作;
步骤33:将事务执行次数加1,若事务执行次数达到用户设定的值,则事务随机交叉循环测试操作结束,进入文件批量删除阶段;否则转向步骤31。
6.如权利要求3所述的对Linux文件系统的性能评估方法,其特征在于,所述的事务操作吞吐量的测试指标包括:总吞吐量、批量操作吞吐量和交叉操作吞吐量;
其中,总吞吐量包括事务总吞吐量和文件创建/删除总吞吐量;事务总吞吐量是指单位时间内执行的事务次数,计算方式为transactions/t_elapsed,transactions为用户执行的事务执行次数,t_elapsed= t_end_time-t_start_time,t_start_time为所述事务随机交叉循环测试操作执行开始时间,t_end_time为所述事务随机交叉循环测试操作执行结束时间;文件创建/删除总吞吐量是指单位时间内创建/删除的文件数量,计算方式为files_created/elapsed,files_created为测试过程中所创建的文件数量,elapsed=end_time-start_time,start_time为所述测试执行开始时间,end_time为测试执行结束时间;
批量操作吞吐量包括文件批量创建吞吐量和文件批量删除吞吐量,文件批量创建吞吐量是指单位时间内批量创建的文件数量,计算方式为files_init/interval1,files_init为用户指定的并发文件数量,interval1=t_start_time-start_time;文件批量删除吞吐量是指单位时间内批量删除的文件数量,计算方式为deleted/interval2,deleted为文件批量删除阶段所删除的文件数量,interval2= end_time-t_end_time;
交叉操作吞吐量包括事务交叉时读操作吞吐量、事务交叉时追加文件吞吐量、事务交叉时创建文件吞吐量、事务交叉时删除文件吞吐量;事务交叉时读操作吞吐量是指事务交叉时单位时间内的文件读取次数,计算方式为files_read/t_elapsed,files_read是指测试过程中读文件的次数;事务交叉时追加文件吞吐量是指事务交叉时单位时间内文件追加次数,计算方式为files_appended/t_elapsed,files_appended是指测试过程中写文件的次数;事务交叉时创建文件吞吐量是指事务交叉时单位时间内文件创建个数,计算方式为(files_created-files_init)/t_elapsed,files_created是指测试过程中的文件创建总数;事务交叉时删除文件吞吐量是指事务交叉时单位时间内文件删除个数,计算方式为(files_deleted-deleted)/t_elapsed,files_deleted是指测试过程中的文件删除总数。
7.如权利要求1所述的对Linux文件系统的性能评估方法,其特征在于,所述宏观典型应用模拟测试,主要分为6个步骤:
步骤1:分析真实应用的负载特点 ;
步骤2:定义仿真线程树;
步骤3:定义测试配置参数;
步骤4:定义默认测试负载;
步骤5:启动测试执行操作,该步骤5主要是进行测试的实时监控与记录,并进行不同线程的同步控制;
步骤6:统计测试指标,根据测试过程中实时记录的文件操作信息统计模拟测试场景中的文件操作总吞吐量、文件读写总带宽和CPU占用率;
其中,文件操作总吞吐量是指单位时间内所完成的文件操作次数,所述文件操作包括文件创建、删除、读取和写入,该项文件操作总吞吐量的测试指标的值是通过测试过程中完成的文件操作总次数除以测试执行总时间而获得;
文件读写总带宽是指单位时间内的文件数据传输总量,单位为MB/s,该项文件读写总带宽的测试指标是通过测试过程中所有读写操作完成的数据传输量除以测试执行总时间而获得;
CPU占用率是指单个文件操作所占用的CPU时间,该项CPU占用率的指标通过测试执行过程的总CPU占用时间除以总文件操作次数而获得。
8.如权利要求7所述的对Linux文件系统的性能评估方法,其特征在于,所述启动测试执行操作为网页代理应用的测试操作,其执行流程具体操作包括:
步骤51:启动主线程测试,并按照指定的初始文件数量、单个目录下的平均文件数量以及平均文件大小分配测试初始文件集;其中文件集的目录分配与文件大小分配均服从gamma分布;
步骤52:启动测试监控,并按照测试负载中指定的并发线程个数并开启多个测试线程,用于模仿多个用户对文件服务器进行并发访问的情况;
步骤53:多个网页代理线程并发执行仿真线程树中定义的文件操作,依次为删除文件、创建文件、向文件追加内容、然后连续执行5次随机读操作;
步骤54:在步骤53进行的同时,主线程对所有网页代理线程进行测试监控,直到所有的线程执行完毕。
CN201210171936.1A 2012-05-29 2012-05-29 一种针对Linux文件系统的性能测试方法 Active CN102750221B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210171936.1A CN102750221B (zh) 2012-05-29 2012-05-29 一种针对Linux文件系统的性能测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210171936.1A CN102750221B (zh) 2012-05-29 2012-05-29 一种针对Linux文件系统的性能测试方法

Publications (2)

Publication Number Publication Date
CN102750221A CN102750221A (zh) 2012-10-24
CN102750221B true CN102750221B (zh) 2015-07-15

Family

ID=47030431

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210171936.1A Active CN102750221B (zh) 2012-05-29 2012-05-29 一种针对Linux文件系统的性能测试方法

Country Status (1)

Country Link
CN (1) CN102750221B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103744696A (zh) * 2013-12-26 2014-04-23 浪潮电子信息产业股份有限公司 一种基于Linux的测试USB总线宽度的方法
CN104461848B (zh) * 2014-12-03 2017-11-10 浪潮(北京)电子信息产业有限公司 一种文件系统评估方法及系统
CN106685747A (zh) * 2015-11-05 2017-05-17 北京出入境检验检疫局检验检疫技术中心 一种云存储均衡性能测试系统
CN107451048A (zh) * 2016-03-31 2017-12-08 阿里巴巴集团控股有限公司 一种线上压力模拟测试的方法和设备
CN105912639B (zh) * 2016-04-08 2020-05-29 浪潮(北京)电子信息产业有限公司 一种数据写入文件系统的自动测试方法及装置
CN108073502B (zh) * 2016-11-16 2021-06-08 中国移动通信有限公司研究院 一种测试方法及其系统
CN106844184A (zh) * 2017-02-20 2017-06-13 郑州云海信息技术有限公司 一种分布式系统元数据性能测试方法、脚本及工具
CN107329892B (zh) * 2017-06-07 2020-09-11 珠海市杰理科技股份有限公司 驱动测试方法、装置、存储介质及其计算机设备
CN109213644A (zh) * 2018-07-09 2019-01-15 上海斐讯数据通信技术有限公司 一种移动硬盘老化测试自动化测试方法及系统
CN109101611A (zh) * 2018-08-06 2018-12-28 郑州云海信息技术有限公司 文件系统目录最大化测试方法、装置、终端及存储介质
CN112181870B (zh) * 2020-09-17 2022-10-28 重庆大学 内存页面管理方法、装置、设备及可读存储介质
CN113626272B (zh) * 2021-08-27 2024-02-20 广东九联开鸿科技发展有限公司 基于mmap系统的内存读写速率测试方法、装置及系统
CN114238249B (zh) * 2022-02-25 2022-05-10 成都鲁易科技有限公司 文件系统老化评估方法及装置、存储介质、终端

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101377756A (zh) * 2007-08-30 2009-03-04 联想(北京)有限公司 一种评估计算机系统老化的方法
CN102004693A (zh) * 2010-11-24 2011-04-06 北京世纪高通科技有限公司 一种系统性能测试方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090070746A1 (en) * 2007-09-07 2009-03-12 Dinakar Dhurjati Method for test suite reduction through system call coverage criterion

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101377756A (zh) * 2007-08-30 2009-03-04 联想(北京)有限公司 一种评估计算机系统老化的方法
CN102004693A (zh) * 2010-11-24 2011-04-06 北京世纪高通科技有限公司 一种系统性能测试方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Linux桌面系统性能评价的负载测试;李媛媛等;《大连轻工业学院学报》;20061231;第25卷(第4期);第274页第2段、第275页第1段至第277页第1段 *

Also Published As

Publication number Publication date
CN102750221A (zh) 2012-10-24

Similar Documents

Publication Publication Date Title
CN102750221B (zh) 一种针对Linux文件系统的性能测试方法
Ousterhout et al. Making sense of performance in data analytics frameworks
US7945657B1 (en) System and method for emulating input/output performance of an application
US20100115496A1 (en) Filter generation for load testing managed environments
He et al. Reducing file system tail latencies with chopper
CN115966247B (zh) 一种zns固态硬盘性能测试方法
CN105808428A (zh) 一种对分布式文件系统进行统一性能测试的方法
CN109448777A (zh) 一种nvme固态硬盘的测试方法及装置
US11880295B2 (en) Web service test and analysis platform
CN101883019B (zh) 一种验证存储服务器是否满足视频应用的测试方法
CN113032246B (zh) Ssd固件运行方法、装置、可读存储介质及电子设备
CN114297961A (zh) 一种芯片测试用例处理方法及相关装置
CN113986719A (zh) 基于云服务的大规模集群性能自动化测试方法及系统
US11868693B2 (en) Verification performance profiling with selective data reduction
Heinrich et al. The palladio-bench for modeling and simulating software architectures
CN116841838A (zh) 非易失性存储器存储装置仿真平台
Tehrany et al. Understanding (un) written contracts of nvme zns devices with zns-tools
CN103902421A (zh) 一种企业eda设计平台运行环境基础性能测试方法
Tehrany et al. zns-tools: An ebpf-powered, cross-layer storage profiling tool for nvme zns ssds
Olivier et al. A tracing toolset for embedded linux flash file system
JP2013020425A (ja) オープンソースソフトウェアを利用したハードウェア・ソフトウェア協調検証方法
Liu et al. VST: A virtual stress testing framework for discovering bugs in SSD flash-translation layers
Ivory et al. Comparing performance and usability evaluation: new methods for automated usability assessment
CN116882335B (zh) 操作时间仿真获取方法、装置、电子设备及存储介质
Zuolo et al. Ssdexplorer: A virtual platform for ssd simulations

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: BEIHANG UNIVERSITY

Free format text: FORMER OWNER: LAN YUQING

Effective date: 20130717

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100084 HAIDIAN, BEIJING TO: 100191 HAIDIAN, BEIJING

TA01 Transfer of patent application right

Effective date of registration: 20130717

Address after: 100191 Haidian District, Xueyuan Road, No. 37,

Applicant after: Beihang University

Address before: 205, room 2, building 15, building 100084, brown stone garden, Dongmen east gate, Old Summer Palace, Beijing, Haidian District

Applicant before: Lan Yuqing

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210409

Address after: No.217, 2nd floor, block a, No.51, Kunming Hunan Road, Haidian District, Beijing

Patentee after: CHINA STANDARD INTELLIGENT SECURITY INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 100191 No. 37, Haidian District, Beijing, Xueyuan Road

Patentee before: BEIHANG University

TR01 Transfer of patent right