设为首页收藏本站

ZMX - IT技术交流论坛 - 无限Perfect,追求梦想 - itzmx.com

 找回密码
 注册论坛

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

用百度帐号登录

只需两步,快速登录

搜索
查看: 4082|回复: 0

Linux下使用fio进行硬盘4K IOPS测速 VPS每秒随机读写速度测试 使用更可靠的随机非重复数据libaio异步引擎多线程

[复制链接]
 成长值: 345

签到天数: 4740 天

[LV.Master]伴坛终老

发表于 2018/1/25 02:48 | 显示全部楼层 |阅读模式 |Google Chrome 63.0.3239.132|Windows 10
天涯海角搜一下: 百度 谷歌 360 搜狗 有道 雅虎 必应 即刻
Linux下使用fio进行硬盘4K IOPS测速 VPS每秒随机读写速度测试 使用更可靠的随机非重复数据libaio异步引擎多线程

安装
  1. yum -y install epel-release
  2. yum -y install fio libaio-devel
复制代码


提示,运行fio进程测试大概需要400M可用内存,如果1G内存的vps运行测试并且没有启用swap虚拟内存你会得到 fio: terminating on signal 的错误提示

用于文件读写速度测试
大文件测试随机读
  1. fio --randrepeat=1 --ioengine=libaio --direct=1 --name=test --filename=test --bs=8M --size=512M --iodepth=1 --time_based --runtime=4 --group_reporting --rw=randread
复制代码

   READ: bw=140MiB/s (147MB/s), 140MiB/s-140MiB/s (147MB/s-147MB/s), io=560MiB (587MB), run=4001-4001msec

大文件测试随机写
  1. fio --randrepeat=1 --ioengine=libaio --direct=1 --name=test --filename=test --bs=8M --size=512M --iodepth=1 --time_based --runtime=4 --group_reporting --rw=randwrite
复制代码

  WRITE: bw=140MiB/s (147MB/s), 140MiB/s-140MiB/s (147MB/s-147MB/s), io=560MiB (587MB), run=4001-4001msec

额外的同时读写测试,请忽略此行,而且硬盘不是你想的同时读写,在读或者写的时候,另一个方向会进入等待,单通道的只是这个过程快的可能让人无法察觉,所以硬盘测速软件不都是一个一个显示速度,而不是同时测试
  1. fio --randrepeat=1 --ioengine=libaio --direct=1 --name=test --filename=test --bs=8M --size=512M --iodepth=1 --time_based --runtime=4 --group_reporting --rw=randrw --rwmixread=50
复制代码


用于IOPS读写次数测试,多线程模式
4K小文件IOPS测试随机读
  1. fio --randrepeat=1 --ioengine=libaio --direct=1 --name=test --filename=test --numjobs=4 --bs=4k --size=12M --iodepth=1 --time_based --runtime=4 --group_reporting --rw=randread
复制代码

   READ: bw=11.3MiB/s (11.9MB/s), 11.3MiB/s-11.3MiB/s (11.9MB/s-11.9MB/s), io=45.3MiB (47.5MB), run=4001-4001msec

4K小文件IOPS测试随机写
  1. fio --randrepeat=1 --ioengine=libaio --direct=1 --name=test --filename=test --numjobs=4 --bs=4k --size=12M --iodepth=1 --time_based --runtime=4 --group_reporting --rw=randwrite
复制代码

  WRITE: bw=11.3MiB/s (11.9MB/s), 11.3MiB/s-11.3MiB/s (11.9MB/s-11.9MB/s), io=45.3MiB (47.5MB), run=4001-4001msec

主要就是看这个指标,其中括号的MB/s就是io速度了,至于iops那一段显示为什么不重要,可以看下面的巴拉巴拉
Run status group 0 (all jobs)

ipip群友提供的,并且自己改写了下命令换成libaio,可以测速硬盘4K小文件的iops,IOPS来说其实实际没什么意义,,主要还是IO速度,IO速度上去了自然IOPS也会上去,IOPS可以理解成每秒最大读写次数,例如反复需要读写的mysql数据库就需要4K读写,日志流水之类。
当然,DD命令不支持读取文件测速,fio却可以实现,各取所需吧,fio支持读取测试,,总体下来应该没毛病才对,当然iops也只是4K小文件上的东东了
真要说IOPS有什么不同的话,如果你稍微计算一下上图就会发现:
4K随机写入5.41MB/s,除以1384IOPS,刚好约等于4KB
所以归根到底还是等于了iops没什么卵用系列

注:fio测速可以受到上层物理机启用cache影响结果。
numjobs=4代表开启多线程测速
群友对randwrite参数的疑惑
你可以可以去掉 --rw=randwrite参数来试试,(默认值为rw=read 或指定使用 rw=write是完全顺序),--rw=randwrite 意思就是,比如2G文件总大小,每个文件大小是8M,那么要产生256次文件写入,每次写入数据为8M,如果带了此参数,就是1-256次的时候进行随机,例如1,108,36,75,203...,如果不加此参数,写入方式则变成顺序1,2,3,4,5...

1.png
例如
https://www.samsung.com/cn/memory-storage/870-qvo-sata-3-ssd/MZ-77Q2T0BCN/


DD命令IO测速(直接走硬件层检测不受上级设备缓存影响):http://bbs.itzmx.com/thread-5408-1-1.html

某hz服务器测速参考例子
https://bbs.itzmx.com/thread-98112-1-1.html

某vu服务器block块存储测速参考例子
https://bbs.itzmx.com/thread-99192-1-1.html

[发帖际遇]: 一个袋子砸在了 小樱 头上,小樱 赚了 1 樱币. 幸运榜 / 衰神榜
欢迎光临IT技术交流论坛:http://bbs.itzmx.com/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册论坛 新浪微博账号登陆用百度帐号登录

本版积分规则

手机版|Archiver|Mail me|网站地图|IT技术交流论坛 ( 闽ICP备13013206号-7 )

GMT+8, 2024/12/26 20:41 , Processed in 0.114210 second(s), 23 queries , MemCache On.

Powered by itzmx! X3.4

© 2011- sakura

快速回复 返回顶部 返回列表