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. spring boot 中使用 jpa以及jpa介绍

    1.什么是jpa呢?JPA顾名思义就是Java Persistence API的意思,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中.12.jpa具有什么 ...

  2. Navicat Premium 12.0.24安装与激活(亲测已成功激活)

    另请参见:Navicat Premium 12.0.18 / 12.0.24安装与激活 另请参见:Navicat Premium 12安装与激活(亲测已成功激活) 说明: 本主亲自验证过,可以激活! ...

  3. DB2 因版本问题 Reorg 出错 解决办法

    call Sysproc.admin_cmd('REORG TABLE MY_TABLE_NAME');

  4. Python开发【前端篇】HTML

    1.html概述和基本结构 html概述 HTML是 HyperText Mark-up Language 的首字母简写,意思是超文本标记语言,超文本指的是超链接,标记指的是标签,是一种用来制作网页的 ...

  5. Nginx负载均衡的4种方式 :轮询-Round Robin 、Ip地址-ip_hash、最少连接-least_conn、加权-weight=n

    这里对负载均衡概念和nginx负载均衡实现方式做一个总结: 先说一下负载均衡的概念: Load Balance负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法. 我们知道单台服务 ...

  6. JavaScript—面向对象开发详解和垃圾回收

    面向对象的概述 ECMAScript 有两种开发模式:1.函数式(过程化),2.面向对象(OOP). 面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.但是, ...

  7. PHP7--PHP的一次重大变革

    PHP7--PHP的一次重大变革 一.写在开头 PHP7是PHP编程语言全新的一个版本,主要在性能方面获得了极大的提升.官方的文档显示,PHP7可以达到PHP5.x版本两倍的性能.同时还对PHP的语法 ...

  8. pytorch实现性别检测

    卷积神经网络的训练是耗时的,很多场合不可能每次都从随机初始化参数开始训练网络.   1.训练 pytorch中自带几种常用的深度学习网络预训练模型,如VGG.ResNet等.往往为了加快学习的进度,在 ...

  9. 两台主机,ssh端口不同,如何拷贝文件

    A主机ip:172.26.225.199 ssh端口12995 B主机ip:172.26.225.200 ssh端口12991 将B主机的文件拷贝到A主机 [root@test2019030517 s ...

  10. Linux内存管理 (22)内存检测技术(slub_debug/kmemleak/kasan)

    专题:Linux内存管理专题 关键词:slub_debug.kmemleak.kasan.oob.Redzone.Padding. Linux常见的内存访问错误有: 越界访问(out of bound ...