测试磁盘IO性能

有两个常用命令来测试磁盘IO性能:dd和fio

dd命令测试磁盘io性能

1. 测试磁盘写能力

dd if=/dev/zero of=/test1.img bs=100M count=1 oflag=dsync status=progress

if=文件名:输入文件名

of=文件名:输出文件名

因为/dev/zero是一个伪设备(只产生空字符流),对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。

bs表示读块和写块的大小都为100M

oflag=dsync表示输出文件不经过缓冲区,来一块,写入一块

status=progress输出所有信息

2. 测试磁盘读能力

dd if=/test1.img of=/dev/null bs=100M count=1 oflag=dsync status=progress

/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/test1.img上,也相当于测试磁盘的读能力

 

fio测试磁盘性能

1 顺序读

# fio -name iops -rw=read -bs=4k -runtime=60 -iodepth 16 -filename /dev/sdf
-ioengine libaio -direct=1

2 顺序写

# fio -name iops -rw=write -bs=4k -runtime=60 -iodepth 16 -filename /dev/vdb
-ioengine libaio -direct=1

3 随机读

# fio -name iops -rw=randread -bs=4k -runtime=60 -iodepth 16 -filename
/dev/sdf -ioengine libaio -direct=1

4 随机写

# fio -name iops -rw=randwrite -bs=4k -runtime=60 -iodepth 16 -filename
/dev/sdf -ioengine libaio -direct=1

filename=/root/test 测试文件名称,通常选择需要测试的盘的data目录。
direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。
rw=randwrite 测试随机写的 I/O
rw=randrw 测试随机写和读的 I/O
bs=4k 单次io的块文件大小为 4k
size=1g 每个线程读写的数据量是1GB, 以每次4k的io进行测试。
numjobs=64 本次的测试线程为64.
runtime=20 测试时间为20秒,如果不写则一直将2g文件分4k每次写完为止。
iodepth=16 队列的深度为16.在异步模式下,CPU不能一直无限的发命令到SSD。
ioengine=libaio 指定io引擎使用libaio方式 libaio:Linux本地异步I/O

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值