测试的定义
Write: 测试向一个新文件写入的性能。当一个新文件被写入时,不仅仅是那些文件中的数据需要被存储,还包括那些用于定位数据存储在存储介质的具体位置的额外信息。这些额外信息被称作“元数据”。它包括目录信息,所分配的空间和一些与该文件有关但又并非该文件所含数据的其他数据。拜这些额外信息所赐,Write的性能通常会比Re-write的性能低。
Re-write: 测试向一个已存在的文件写入的性能。当一个已存在的文件被写入时,所需工作量较少,因为此时元数据已经存在。Re-write的性能通常比Write的性能高。
Read: 测试读一个已存在的文件的性能。
Re-Read: 测试读一个最近读过的文件的性能。Re-Read性能会高些,因为操作系统通常会缓存最近读过的文件数据。这个缓存可以被用于读以提高性能。
Random Read: 测试读一个文件中的随机偏移量的性能。许多因素可能影响这种情况下的系统性能,例如:操作系统缓存的大小,磁盘数量,寻道延迟和其他。
Random Write: 测试写一个文件中的随机偏移量的性能。同样,许多因素可能影响这种情况下的系统性能,例如:操作系统缓存的大小,磁盘数量,寻道延迟和其他。
Random Mix: 测试读写一个文件中的随机偏移量的性能。同样,许多因素可能影响这种情况下的系统性能,例如:操作系统缓存的大小,磁盘数量,寻道延迟和其他。这个测试只有在吞吐量测试模式下才能进行。每个线程/进程运行读或写测试。这种分布式读/写测试是基于round robin 模式的。最好使用多于一个线程/进程执行此测试。
Backwards Read: 测试使用倒序读一个文件的性能。这种读文件方法可能看起来很可笑,事实上,有些应用确实这么干。MSC Nastran是一个使用倒序读文件的应用程序的一个例子。它所读的文件都十分大(大小从G级别到T级别)。尽管许多操作系统使用一些特殊实现来优化顺序读文件的速度,很少有操作系统注意到并增强倒序读文件的性能。
Record Rewrite: 测试写与覆盖写一个文件中的特定块的性能。这个块可能会发生一些很有趣的事。如果这个块足够小(比CPU数据缓存小),测出来的性能将会非常高。如果比CPU数据缓存大而比TLB小,测出来的是另一个阶段的性能。如果比此二者都大,但比操作系统缓存小,得到的性能又是一个阶段。若大到超过操作系统缓存,又是另一番结果。
Strided Read: 测试跳跃读一个文件的性能。举例如下:在0偏移量处读4Kbytes,然后间隔200Kbytes,读4Kbytes,再间隔200Kbytes,如此反复。此时的模式是读4Kbytes,间隔200Kbytes并重复这个模式。这又是一个典型的应用行为,文件中使用了数据结构并且访问这个数据结构的特定区域的应用程序常常这样做。
  许多操作系统并没注意到这种行为或者针对这种类型的访问做一些优化。同样,这种访问行为也可能导致一些有趣的性能异常。一个例子是在一个数据片化的文件系统里,应用程序的跳跃导致某一个特定的磁盘成为性能瓶颈。
Fwrite: 测试调用库函数fwrite()来写文件的性能。这是一个执行缓存与阻塞写操作的库例程。缓存在用户空间之内。如果一个应用程序想要写很小的传输块,fwrite()函数中的缓存与阻塞I/O功能能通过减少实际操作系统调用并在操作系统调用时增加传输块的大小来增强应用程序的性能。
  这个测试是写一个新文件,所以元数据的写入也是要的。
Frewrite:测试调用库函数fwrite()来写文件的性能。这是一个执行缓存与阻塞写操作的库例程。缓存在用户空间之内。如果一个应用程序想要写很小的传输块,fwrite()函数中的缓存与阻塞I/O功能能通过减少实际操作系统调用并在操作系统调用时增加传输块的大小来增强应用程序的性能。
  这个测试是写入一个已存在的文件,由于无元数据操作,测试的性能会高些。
Fread:测试调用库函数fread()来读文件的性能。这是一个执行缓存与阻塞读操作的库例程。缓存在用户空间之内。如果一个应用程序想要读很小的传输块,fwrite()函数中的缓存与阻塞I/O功能能通过减少实际操作系统调用并在操作系统调用时增加传输块的大小来增强应用程序的性能。
Freread: 这个测试与上面的fread 类似,除了在这个测试中被读文件是最近才刚被读过。这将导致更高的性能,因为操作系统缓存了文件数据。
  几个特殊测试:
  Mmap:许多操作系统支持mmap()的使用来映射一个文件到用户地址空间。映射之后,对内存的读写将同步到文件中去。这对一些希望将文件当作内存块来使用的应用程序来说很方便。一个例子是内存中的一块将同时作为一个文件保存在于文件系统中。
  mmap 文件的语义和普通文件略有不同。如果发生了对内存的存储,并不是立即发生相应的文件I/O操作。使用MS_SYNC 和MS_ASYNC标志位的 msyc()函数调用将控制内存和文件的一致性。调用msync() 时将MS_SYNC置位将强制把内存里的内容写到文件中去并等待直到此操作完成才返回。而MS_ASYNC 置位则告诉操作系统使用异步机制将内存刷新到磁盘,这样应用程序可以直接返回而不用等待此操作的完成。
  这个测试就是测量使用mmap()机制完成I/O的性能。
  Async I/O: 许多操作系统支持的另外一种I/O机制是POSIX 标准的异步I/O。本程序使用POSIX标准异步I/O接口来完成此测试功能。
  例如: aio_write(), aio_read(), aio_error()。这个测试测量POSIX异步I/O机制的性能。

转载于:https://blog.51cto.com/devops9527/1872756

文件系统性能测试指标相关推荐

  1. linux 测试内存性能,Linux性能测试指标评估

    Linux性能测试指标评估 一.影响Linux服务器性能的因素 1. 操作系统级 · CPU · 内存 · 磁盘I/O带宽 · 网络I/O带宽 2. 程序应用级 二.系统性能评估标准 影响性能因素 其 ...

  2. 【性能测试】性能测试之性能测试指标详解(性能指标、CPU、内存、负载、磁盘)

    目    录 一  系统性能测试指标 1.1 响应时间 1.2 并发 1.3 点击量/点击率 1.4 吞吐量/吞吐率 1.5 TPS/QPS 1.6 PV/UV 二  Linux服务器性能指标 2.1 ...

  3. 转:性能测试中的性能测试指标与用户体验分析

    转自:http://www.ltesting.net/ceshi/ceshijishu/xncs/2012/0223/204182_2.html 性能测试中的性能测试指标与用户体验分析 网络应用性能分 ...

  4. 网站性能测试指标(QPS,TPS,吞吐量,响应时间)详解

    常用的网站性能测试指标有:吞吐量.并发数.响应时间.性能计数器等. 并发数 并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力. 响应时间 响应时间是一个系统最重要的指标之一,它的数值大 ...

  5. Linux文件系统性能测试工具fdtree和iozone

    Linux Magazine用了四篇文章(第一部分,第二部分)介绍了两个Linux文件系统性能测试工具,fdtree和iozone.fdtree比较少听说,它可以测ext3, ext4, nilfs2 ...

  6. 网站性能测试指标:QPS、TPS、吞吐量、响应时间概述

    常用的网站性能测试指标有:并发数.响应时间.吞吐量.性能计数器等. 一.并发数 并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力. 二.响应时间 响应时间是一个系统最重要的指标之一,它 ...

  7. 性能测试指标(重要)

    性能测试指标概念及目的: 性能测试是通过测试工具模拟多种正常.峰值及异常负载条件来对系统的各项性能指标进行测试. 目的:验证软件系统是否能够达到用户提出的性能指标,发现系统中存在的性能瓶颈并加以优化. ...

  8. 性能测试指标、监控平台

    一.性能测试指标: 二.性能监控平台介绍 平台依赖jmeter.influxdb.grafana三个工具,简单介绍三个工具各自的作用: jmeter: 性能测试工具,负责采集数据 influxdb:  ...

  9. App测试中有哪些常见的性能测试指标?出具App测试报告的软件测试机构推荐

    1.App常见的性能测试指标主要有以下几个: 响应:响应时间和响应速度直接影响到用户的体验度,进而影响到产品的日活.留存.应用程序的响应时间包括安装.卸载.启动.切换各功能页面的耗时. 内存:在And ...

最新文章

  1. jdbc封装与多并发的共鸣
  2. oracle包写入程序失败_ORA-12571 : TNS : 包写入程序失败
  3. formdata 嵌套_角度7 FormData+文件+嵌套对象
  4. MyBatis知多少(22)MyBatis删除操作
  5. 未成年人可以申请贷款吗?
  6. 帝国 loginjs.php,帝国cms 6.6 后台拿shell
  7. Flask项目--注册
  8. html src data:image,Browser/HTML Force download of image from src=“data:image/jpeg;base64…”
  9. 矩阵快速幂 斐波那契数列
  10. 【AAAI-2019】论文整理(清单)
  11. 苹果公司开发者账号注册流程详解
  12. CF1389G Directing Edges
  13. 郭霖博客出大事了,而鸿阳大神的博客现在情况暂时还好。
  14. Azure入门-云计算
  15. 带你了解2021世界人工智能大会上的AI新趋势
  16. QCC512x QCC302x Earbud 跑通新建工程 —— ADK6.x 环境搭建、 自带例程
  17. HTML设计一个图书管理网页
  18. 高清优质PPT模板20篇下载(商务型系列)
  19. VUE 项目中引入外部js文件(CND引入)
  20. stm32h750从上电到main函数时间

热门文章

  1. android怎么播放音频,Android播放音频的两种方式
  2. 修改cpu型号重启不变_猫头鹰展示D系列新款140毫米CPU散热器:更大散热片,能压400瓦...
  3. lvs服务器需要开启web服务么_Nginx+Keepalived实现web服务器高可用
  4. 适合win7的python版本_windows下多个python版本共存,如何在Windows7系统上安装最新的64位Python3.6.2...
  5. 【javaweb】eclipse重启后tomcat打不开解决方法
  6. Adobe源码泄漏?3行代码搞定,Flash动画无缝导入Android/iOS/cocos2dx(二)
  7. iOS 走近商城 APP(三 WKWebView 商品规格选择框架封装)
  8. 二十分钟教你如何将区块链应用与函数计算相结合
  9. 各种小的 dp (精)
  10. Palo Alto 防火墙升级 Software