1.安装:
方法一:直接用指令yum -y install fio
方法二:如果方法一不可行则,在官网http://freshmeat.net/projects/fio/下载fio的安装包。安装方法很简单。解压缩后,进入目录输入./configure  make  make install。

2.执行:
命令行:

fio -filename=/data/fiotest -direct=1 -ioengine=libaio -iodepth=16 -rw=randrw -rwmixwrite=70 -bs=64k -size=10G -numjobs=4 -runtime=60 -group_reporting -name=test_rw
fio -filename=/data/fiotest -direct=1 -ioengine=libaio -iodepth=16 -rw=randrw -rwmixwrite=70 -bs=64k -size=10G -numjobs=4 -runtime=60 -group_reporting -name=test_rw

脚本:

vim /usr/local/src/fiotest.conf
[global]
filename=/data/fiotest # the device/file name
direct=1 # use raw io instead of buffered io
ioengine=libaio # libaio is asynchronized io mode, sync is synchronized mode
iodepth=16 # if use libaio, iodepth means the ios can be submitted at the same time. It is important!
size=10G
numjobs=5 # number of clones of processes/threads for each job
runtime=60 # in seconds for each job
name=test_read
[rw64k-rand]
stonewall # wait until the previous job is finished
bs=64k
rw=randrw
rwmixwrite=70
group_reporting
rw512k-rand]
stonewall #wait until the previous job is finished
bs=512k
rw=randrw
rwmixwrite=70
group_reporting

注意 fio测试指令需要在root权限下才能操作
第一个text是运行完后在/data 目录下会生成一个5G的text文件。
第二个test_read是测试运行结果在屏幕上显示的都是以test_read:。。。

3.关于参数:
-filename: 后可以直接加设备名 如-filename /dev/sdb1 ;也可以加设备的挂载点的文件名,如-filename=/data/testfile。
-directory: 设置filename的路径前缀,入股filename有指定路径,此项可以省略。
-direct: bool类型,如果设置成true (1),表示不使用io buffer,测试绕过机器自带的buffer,测试结果更真实。
-ioengine=sync I/O引擎,现在fio支持19种ioengine。默认值是sync同步阻塞I/O,libaio是Linux的native异步I/O。
  通常有同步和异步两种方式。同步的io一次只能发出一个io请求,等待内核完成才返回,这样对单线程来说iodepth总是小于1的,但多个线程并发可以使iodepth变大。异步方式就是一次提交一批请求,等待一批的完成,减少交互的次数
-iodepth: io队列深度,当ioengine采用异步方式,该参数生效,表示一批提交保持的io单元数。
-rw有5种情况:  
  1.-rw=read
  2.-rw=randread
  3.-rw=write
  4.-rw=randwrite
  5.-rw=randrw -rwmixread=70 //混合模式下读占百分之70
-bs: blocksize 每次读写的大小,默认是4k。
-size: 本次的测试文件的大小,默认以每次4k的io进行测试。
-numjobs: 指定job的克隆数(线程)。
-runtime: 指定在多少秒后停止进程。如果未指定该参数,fio将执行至指定的文件读写完全完成。
-group_reporting: 关于现实结果,汇总每个进程的信息,当同时指定了numjobs了时,输出结果按组显示。
-name: 指定job的名字,在命令行中表示新启动一个job。
-time_based: 如果在runtime指定的时间还没到时文件就被读写完成,将继续重复直到runtime时间结束。

[THE END]

Linux硬盘性能测试工具 - FIO的更多相关文章

  1. 云硬盘性能测试工具FIO介绍

    一.云硬盘的性能衡量指标 云硬盘的性能指标一般通过以下几个指标进行衡量 IOPS:每秒的读写次数,单位为次(计数).存储设备的底层驱动类型决定了不同的IOPS 总IOPS:每秒执行的I/O操作总次数 ...

  2. 硬盘性能测试工具fio

    如何衡量云硬盘的性能 IOPS:每秒读/写次数,单位为次(计数).存储设备的底层驱动类型决定了不同的 IOPS. 吞吐量:每秒的读写数据量,单位为MB/s. 时延:IO操作的发送时间到接收确认所经过的 ...

  3. Linux系统性能测试工具(五)——磁盘io性能工具之fio

    本文介绍关于Linux系统(适用于centos/ubuntu等)的磁盘io性能测试工具-fio.磁盘io性能测试工具包括: fio: dd

  4. Linux系统性能测试工具(六)——磁盘io性能工具之dd

    本文介绍关于Linux系统(适用于centos/ubuntu等)的磁盘io性能测试工具-dd.磁盘io性能测试工具包括: fio: dd

  5. Linux 网络性能测试工具 iperf 的安装和使用

    简介:Iperf是一个网络性能测试工具.可以测试TCP和UDP带宽质量,可以测量最大TCP带宽,具有多种参数和UDP特性,可以报告带宽,延迟抖动和数据包丢失.Iperf在Linux和windows平台 ...

  6. Linux系统性能测试工具(九)——文件系统的读写性能测试工具之iozone

    本文介绍关于Linux系统(适用于centos/ubuntu等)的文件系统的读写性能测试工具-iozone: 参考链接: https://www.cnblogs.com/Dev0ps/p/788938 ...

  7. Linux系统性能测试工具(八)——网络性能测试工具之netperf

    本文介绍关于Linux系统(适用于centos/ubuntu等)的网络性能测试工具-iperf.磁盘io性能测试工具包括: iperf: netperf 参考链接:https://www.jiansh ...

  8. Linux系统性能测试工具(七)——网络性能工具之iperf

    本文介绍关于Linux系统(适用于centos/ubuntu等)的网络性能测试工具-iperf.磁盘io性能测试工具包括: iperf: netperf 参考链接:https://www.cnblog ...

  9. Linux系统性能测试工具(四)——CPU性能测试工具之super_pi、sysbench

    本文介绍关于Linux系统(适用于centos/ubuntu等)的CPU性能测试工具-sysbench.CPU性能测试工具包括: super_pi: sysbench——不仅可以测试CPU性能,而且可 ...

随机推荐

  1. Android开发如何轻松实现基于Tesseract的Android OCR应用程序

    介绍 此应用程序使用Tesseract 3的Tesseract OCR引擎,该引擎通过识别字符模式( https://github.com/tesseract-ocr/tesseract )来工作. ...

  2. 多层json的构造,取值,还有使用bootstrap的tree view在前端展示的相关问题

    bootstrap-tree view是一款非常好用的插件,它可以添加任意多层节点,效果如下所示: 使用之前需要在HTML页面添加依赖文件: <link href="bootstrap ...

  3. Ubuntu上更改MySQL数据库数据存储目录

    之前写过一篇博客"MySQL更改数据库数据存储目录",当时的测试环境是RHEL和CentOS,谁想最近在Ubuntu下面更改MySQL数据库数据存储目录时遇到了之前未遇到的问题,之 ...

  4. VS2017 EF本地数据库链接

    1. 本地数据库连接 server name可以从链接字符串中取: (localdb)\MSSQLLocalDB 注意少写一个\. { "Logging": { "Inc ...

  5. MyBatis学习总结_Mybatis查询之resultMap和resultType区别

    MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性 ...

  6. (转载)最完整的自动化测试流程:Python编写执行测试用例及定时自动发送最新测试报告邮件

    今天笔者就要归纳总结下一整套测试流程,从无到有,实现零突破,包括如何编写测试用例,定时执行测试用例,查找最新生成的测试报告文件,自动发送最新测试报告邮件,一整套完整的测试流程.以后各位只要着重如何编写 ...

  7. abstract关键字 super 关键字 类与继承

    https://www.cnblogs.com/liubing2018/p/8421319.html https://www.cnblogs.com/dolphin0520/p/3803432.htm ...

  8. springMVC框架核心方法调用源码解析

  9. Ubuntu 安装 Docker CE(社区版)

    参考自 https://yeasy.gitbooks.io/docker_practice/install/ubuntu.html#ubuntu-1604- docker-io 是以前早期的版本,版本 ...

  10. JVM内存溢出时快照转存HeapDump到文件

    # Heap Dump 获取方式使用 JVM 参数获取 dump 文件进入Tomcat的'bin'目录,在'catalina.sh'文件里添加如下内容 >-XX:+HeapDumpOnOutOf ...