欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

读写测试工具

程序员文章站 2022-03-27 14:15:27
...

一、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,一个任务的名字

运行结果:
读写测试工具

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

运行结果:

读写测试工具

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

运行结果:

读写测试工具

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

结果:
读写测试工具

   命令:  ./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的文件.

   运行结果:

读写测试工具

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

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

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

相关标签: 读写测试工具