读写测试工具

一、fio

1.下载安装 fio(安装在linux上)

下载fio压缩包地址:http://brick.keruel.dk/snaps/fio-2.2.10.tar.gz

安装步骤:

 1. yum 安装依赖包

  yum install libaio-devel fio

 2.下载fio-2.2.10.tar.gz

  wget http://brick.keruel.dk/snaps/fio-2.2.10.tar.gz

 3.解压

  tar  zxvf fio-2.2.10.tar.gz

 4.进入fio-2.2.10

  cd fio-2.2.10

 5.依次输入

   ./config ; make ; make install

2.fio优点

① 支持十几种引擎,可以自定义

②自带做图工具,调用gnuplot做图

③支持几乎所有的存储描述参数

④大量对CPU,内存,进程/线程,文件,IO特性的配置

⑤压缩,trace回放
3.example
1)随机读

命令:

   fio -filename=/dev/vda1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=1000G -numjobs=50 -runtime=180 -group_reporting -name=rand_100read_4k

filename=/dev/vda1

direct=1,使用directIO,跳过缓存,直接读写SSD

iodepth 1,队列深度为1

thread 线程数量

rw=randread,测试随机读的io

ioengine=psync,指定io引擎使用psync

bs=4k,单次的io块文件大小为4k

size=1000G,每个线程读写的数据量为1000G

numjobs=50,每个job开50个线程

runtime=180,测试时间为180s

group_reporting,关于显示结果的,汇总每个进程信息

name=rand100read_4k,一个任务的名字

运行结果:
读写测试工具_第1张图片

bw:平均带宽

cpu:利用率

Depths:io队列

Submit:单个io提交要提交的io数

Complete:Like the above submit number, but for completions instead.

Issued:The number of read/write requests issued, and how many of them were short.

Latency:io延迟的分布
2)随机写

命令:

     fio -filename=tmpfs -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=4k -size=2G -numjobs=20 -runtime=120 -group_reporting -name=rand_100write_4k

运行结果:

读写测试工具_第2张图片

3)顺序读:

命令:

    fio -filename=/dev/vda1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=4k -size=100G -numjobs=50 -runtime=120 -group_reporting -name=sqe_100read_4k

运行结果:

4)顺序写:

命令:

    fio -filename=tmpfs -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=4k -size=2G -numjobs=20 -runtime=60 -group_reporting -name=sqe_100write_4k

运行结果:

读写测试工具_第3张图片

4.随机读写与顺序读写的区别:

随机读写和顺序读写四存储器的两种输入输出方式,随机读写的速度快,但是占用空间多,而顺序读写的速度慢,但是占用的空间少,数据处理复杂

随机读写:每一段数据有地址码,可以任意跳到某个地址读取该段数据

顺序读写:数据以一定的长度连续存储,中间没有地址码,只能顺序读取

二、iozone

    1.下载与安装(iozone on CentOS 7X64)

 ①下载: wget http://www.iozone.org/src/current/iozone3_434.tar

 ②解压:tar -xvf iozone3_434.tar

 ③安装:

             cd  ../src

             cd current/

             less makefile

            make linux-AMD64

            ./fileop -h

            ./pit_server -h

            ./iozone -h

2.iozone(文件系统的读写性能测试工具)

iozone:是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能

             注:设置的测试文件的大小一定要大过你的内存(最佳为内存的2倍),不然linux会对你读写的内存进行缓存,会使数值非常不真实

3.example

注: 所有的命令都应该在current目录下执行

命令: ./iozone –a –g 1G –i0 –i1 –Rb ioperf.xls

该命令的含义是测量最大1G的文件的read, write, re-read, re-write性能。其中0=write/rewrite,1=read/re-read

相关参数:

     -R产生excel格式的输出(仅显示在屏幕上,不会产生excel文件)

     -b 产生excel格式的文件

     -g 最大测试文件大小 for auto mode

     -t 并发数

     -s 测试文件的大小,支持-k -m -g

     -q 块大小 for auto mode

-i的取值说明:

     0=write/rewrite
            1=read/re-read
            2=random-read/write
            3=Read-backwards
            4=Re-write-record
            5=stride-read
            6=fwrite/re-fwrite
            7=fread/Re-fread
            8=random mix
            9=pwrite/Re-pwrite
           10=pread/Re-pread

    11=pwritev/Re-pwritev
           12=preadv/Re-preadv

结果:
读写测试工具_第4张图片

   命令:  ./iozone -a -n 512m -g 4g -i 0 -i 1 -i 5 -f /mnt/iozone -Rb ./iozone.xls

               注:进行全面测试.最小测试文件为512M直到测试到4G.测试read,write,和Strided Read.测试的地方在mnt下。生成Excel的文件.

   运行结果:

读写测试工具_第5张图片

在Execl文件中的这段表,它说明了这个表单是关于write的测试结果,左侧一列是测试文件大小(Kbytes),

最上边一行是记录大小,中间数据是测试的传输速度。举例说明,比如表中的“171980”,意思是测试文件大小为

524288M,以记录大小为32K来进行传输,它的传输速度为171980 Kbytes/s

你可能感兴趣的:(读写测试工具)