休言女子非英物,夜夜龙泉壁上鸣。这篇文章主要讲述Fio 测试工具相关的知识,希望能为你提供帮助。
参数注解:
filename=/dev/emcpowerb 支持文件系统或者裸设备,-filename=/dev/sda2或-filename=/dev/sdb
direct=1测试过程绕过机器自带的buffer,使测试结果更真实
rw=randwread测试随机读的I/O
rw=randwrite测试随机写的I/O
rw=randrw测试随机混合写和读的I/O
rw=read测试顺序读的I/O
rw=write测试顺序写的I/O
rw=rw测试顺序混合写和读的I/O
bs=4k单次io的块文件大小为4k
bsrange=512-2048同上,提定数据块的大小范围
size=5g本次的测试文件大小为5g,以每次4k的io进行测试
numjobs=30本次的测试线程为30
runtime=1000测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止
ioengine=psyncio引擎使用pync方式,如果要使用libaio引擎,需要yum install libaio-devel包
rwmixwrite=30在混合读写的模式下,写占30%
group_reporting关于显示结果的,汇总每个进程的信息
iodepth=16队列的深度为16.在异步模式下,CPU不能一直无限的发命令到SSD,比如SSD执行读写如果发生了卡顿,那有可能系统会一直不停的发命令,几千个,甚至几万个,这样一方面SSD扛不住,另一方面这么多命令会很占内存,系统也要挂掉了。这样,就带来一个参数叫做队列深度
thread使用pthread_create创建线程,另一种是fork创建进程。进程的开销比线程要大,一般都采用thread测试
顺序读:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest
随机读:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=4k -size=1000G -numjobs=50 -runtime=180 -group_reporting -name=rand_100read_4k
随机写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest
顺序写:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=2G -numjobs=10 -runtime=60 -group_reporting -name=mytest
混合随机读写:
fio -filename=/data/test.txt -direct=1 -iodepth 4 -thread -rw=randrw -rwmixread=30 -ioengine=psync -bs=16k -numjobs=4 -runtime=60 -group_reporting -name=mytest -ioscheduler=noop
推荐测试命令:
fio -filename=文件系统文件 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=30 -ioengine=psync -bs=16k -size=20G -numjobs=10 -runtime=60 -group_reporting -name=mytest
封装一下:
#!/bin/bash
fio -filename=/data/111.txt -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=30 -ioengine=psync -bs=16k -size=20G -numjobs=10 -runtime=60 -group_reporting -name=mytest > > /data/222.txt
IOwrite=`cat 222.txt | grep write:`
echo $IOwrite
IOread=`cat 222.txt | grep read:`
echo $IOread
【Fio 测试工具】
推荐阅读
- 玩转 Java8 Stream 流,常用方法,详细用法大合集!
- 防火墙配置
- Elasticsearch掰开揉碎第6篇Kibana详解
- 负载均衡-4层和7层对比
- 微服务架构概述
- ELK之kafka篇
- N64010第三周作业
- 使用HAPROXY的ACL实现基于文件后缀名的动态和静态资源分离
- 一种常用又简单的Linux流量监控工具