fio磁盘io压测

九月2年前技术文章654

fio tar包地址:https://brick.kernel.dk/snaps/

yum 安装gcc、fio使用到的ibaio-devel 引擎

yum install -y gcc
yum install -y libaio-devel

解压fio tar包

tar -zxvf fio-2.6.tar.gz

进入目录执行命令

cd fio-2.1.10
./configure
make
make install

图1.png

fio的参数配置

filename=/bdata/test.big 测试文件名称,通常选择需要测试的盘所在的目录。
direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。
rw=randwrite 测试随机写的I/O
rw=randrw 测试随机写和读的I/O
bs=4k 单次io的块文件大小为4k
size=2g 本次的测试文件大小为2g,以每次4k的io进行测试。
numjobs=64 本次的测试线程为64.   【建议设置为CPU的CORE数量一致】
runtime=20 测试时间为20秒,如果不写则一直将2g文件分4k每次写完为止。
ioengine=psync io引擎使用pync方式 ,此外还有libaio 异步方式。
rwmixwrite=30 在混合读写的模式下,写占30%
group_reporting 关于显示结果的,汇总每个进程的信息。
sync=1 设置异步io
fsync=1 一个io就同步数据


使用dd创建测试文件

# 通常在需要测试的那个磁盘下面生成一个这种测试用的大文件,注意设置文件大小,防止抢占其他文件磁盘空间
dd if=/dev/zero of=/data/test.big bs=4k count=524288

图2.png

测试随机写

 ./fio -direct=1 -iodepth=32 -rw=randwrite -ioengine=libaio -bs=4k -numjobs=4 -time_based=1 -runtime=1000 -group_reporting -filename=/data/test.big -name=test

结果

test: (g=0): rw=randwrite, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=32
...
fio-2.6
Starting 4 processes
Jobs: 4 (f=4): [w(4)] [100.0% done] [0KB/61766KB/0KB /s] [0/15.5K/0 iops] [eta 00m:00s]
test: (groupid=0, jobs=4): err= 0: pid=25826: Fri Aug 12 20:17:55 2022
  write: io=51430MB, bw=52664KB/s, iops=13165, runt=1000007msec
    slat (usec): min=6, max=6078, avg=16.08, stdev=12.46
    clat (usec): min=350, max=1163.8K, avg=9690.77, stdev=19697.17
     lat (usec): min=788, max=1163.9K, avg=9708.57, stdev=19697.22
    clat percentiles (usec):
     |  1.00th=[ 1560],  5.00th=[ 2640], 10.00th=[ 3632], 20.00th=[ 4576],
     | 30.00th=[ 5216], 40.00th=[ 5920], 50.00th=[ 6880], 60.00th=[ 7968],
     | 70.00th=[ 9024], 80.00th=[10048], 90.00th=[11840], 95.00th=[14400],
     | 99.00th=[120320], 99.50th=[177152], 99.90th=[211968], 99.95th=[222208],
     | 99.99th=[444416]
    bw (KB  /s): min=    5, max=22048, per=25.06%, avg=13199.60, stdev=2872.94
    lat (usec) : 500=0.01%, 750=0.01%, 1000=0.02%
    lat (msec) : 2=2.47%, 4=10.38%, 10=66.26%, 20=17.84%, 50=1.38%
    lat (msec) : 100=0.52%, 250=1.11%, 500=0.02%, 750=0.01%, 1000=0.01%
    lat (msec) : 2000=0.01%
  cpu          : usr=4.18%, sys=9.90%, ctx=9406402, majf=0, minf=127
  IO depths    : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=100.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.1%, 64=0.0%, >=64=0.0%
     issued    : total=r=0/w=13165990/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
     latency   : target=0, window=0, percentile=100.00%, depth=32

Run status group 0 (all jobs):
  WRITE: io=51430MB, aggrb=52663KB/s, minb=52663KB/s, maxb=52663KB/s, mint=1000007msec, maxt=1000007msec

Disk stats (read/write):
  vda: ios=8/13169214, merge=0/202, ticks=56/127225123, in_queue=125756338, util=98.79%

测试随机读写:

./fio --filename=/data/test.big -iodepth=64 -ioengine=libaio -direct=1 -rw=randwrite -bs=4k -size=2G -numjobs=64 -runtime=1000 -group_reporting -name=test-rand-write

扩展:使用hdparm测试io读

 hdparm -t --direct /dev/vda2

图3.png


相关文章

HBase使用snappy压缩

HBase使用snappy压缩

安装编译环境依赖yum install -y automake autoconf gcc-c++ cmake libedit libtool openssl-devel ncurses-devel安装...

dolphinscheduler单机部署

dolphinscheduler单机部署

官网链接:https://dolphinscheduler.apache.org本次测试版本为:https://dolphinscheduler.apache.org/zh-cn/download/3...

Hive优化之配置参数的优化(一)

Hive优化之配置参数的优化(一)

 Hive是大数据领域常用的组件之一,主要是大数据离线数仓的运算,关于Hive的性能调优在日常工作和面试中是经常涉及的一个点,因此掌握一些Hive调优是必不可少的一项技能。影响Hive效率的...

chengying-4.0登入接口逆向

chengying-4.0登入接口逆向

首先是登入的加密url:http://xxxxx/api/v2/user/login参数1. username:admin@dtstack.com2. password:614bb9438210c69...

IDC:疫情下,第三方云管理服务市场逆势增长!

IDC:疫情下,第三方云管理服务市场逆势增长!

IDC预测,中国第三方云管理服务在2019年到2023年间将保持54.7%的增长率,2023年市场规模预计达到32.1亿美元。2019年第三方云管理服务市场呈现出如下特点:云管理服务成为众多服务商的战...

深度解读|云掣《云运维服务白皮书》全方位解析!

深度解读|云掣《云运维服务白皮书》全方位解析!

如今全球各行各业纷纷进行数字化变革,为适应数字经济环境下企业生存发展和市场变化的需要,企业选择进行主动的、系统性、整体性的数字化转型升级。大数据、云计算、人工智能、区块链等新一代信息通信技术为企业的数...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。