Linux下 fio磁盘压测笔记
专业的测试磁盘IO性能的软件:
1、fio 【推荐使用】
2、iometer
fio的使用:
参考博客: http://lilinji.blog.51cto.com/5441000/1569623
https://linux.die.net/man/1/fio
http://elf8848.iteye.com/blog/2168876 【讲的比较好】
注意,我先使用yum安装的fio,测试时候报错,建议使用最新版的fio工具编译安装。方法如下:
yum install libaio libaio-devel 需要先安装2个包
新版的 fio-2.1.4 源码包下载 http://brick.kernel.dk/snaps/
tar xf fio-2.1.4.tar.gz
cd fio-2.1.4
./configure
make 即可在当前目录下生成fio可执行文件。
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就同步数据
帮助命令:
fio --help
fio --cmdhelp 等等
# 准备个2GB的测试用的文件
dd if=/dev/zero of=/bdata/test.big bs=4k count=524288 # 通常在需要测试的那个磁盘下面生成一个这种测试用的大文件
测试随机读写:
fio --filename=/bdata/test.big -iodepth=64 -ioengine=libaio -direct=1 -rw=randwrite -bs=4k -size=2G -numjobs=64 -runtime=20-group_reporting -name=test-rand-write
测试顺序读取:
fio --filename=/bdata/test.big -iodepth=64 -ioengine=libaio --direct=1 --rw=read --bs=1m --size=2g --numjobs=4 --runtime=10 --group_reporting --name=test-read
测试顺序写性能
fio --filename=/bdata/test.big -iodepth=64 -ioengine=libaio -direct=1 -rw=write -bs=1m -size=2g -numjobs=4 -runtime=20 -group_reporting -name=test-write
测试随机读:
fio --filename=/root/test -iodepth=64 -ioengine=libaio -direct=1 -rw=randread -bs=4k -size=2G -numjobs=64 -runtime=20 -group_reporting -name=test-rand-read
测试随机写:
fio --filename=/root/test -iodepth=64 -ioengine=libaio -direct=1 -rw=randwrite -bs=4k -size=2G -numjobs=64 -runtime=20-group_reporting -name=test-rand-write
采用同步IO的随机写:
fio --filename=/root/rndwrite -iodepth=64 -ioengine=psync -direct=1 -rw=randwrite -bs=4k -size=2G -numjobs=32 -runtime=20 -group_reporting -name=test-rand-write
其他:
# 4k,100%读写:
fio --filename=/dev/sdx --direct=1 --rw=randrw --refill_buffers --norandommap --randrepeat=0 --ioengine=libaio --bs=4k --rwmixread=100 --iodepth=16 --numjobs=16 --runtime=60 --group_reporting --name=4ktest
# 8k,70%读取,30%写入:
fio --filename=/dev/sdx --direct=1 --rw=randrw --refill_buffers --norandommap --randrepeat=0 --ioengine=libaio --bs=8k --rwmixread=70 --iodepth=16 --numjobs=16 --runtime=60 --group_reporting --name=8k7030test
在阿里云SSD测试时候,使用libaio方式能达到较高的IOPS,使用psync的话,IOPS下降的很严重。从网上其他测试数据来看,异步的libaio比同步的psync方式性能高15倍左右。
附带一个MySQL DELL物理机的测试情况:
1 aio异步模式随机写入5G数据
测试命令:
fio --filename=/root/rndwrite -iodepth=64-ioengine=libaio -direct=1 -rw=randwrite -bs=4k -size=5G -numjobs=64-runtime=20 -group_reporting -name=test-rand-write
Samsung SSD 750 EVO 500GB盘为例,测试截图
2 psync同步模式随机写入5G数据
测试命令:
fio --filename=/root/rndwrite -iodepth=64-ioengine=psync -direct=1 -rw=randwrite -bs=4k -size=5G -numjobs=64 -runtime=20-group_reporting -name=test-rand-write
10.0.36.4 Samsung SSD 750 EVO 500GB盘为例,测试截图
Linux下 fio磁盘压测笔记相关推荐
- mysql fio测试_Linux下 fio磁盘压测笔记
专业的测试磁盘IO性能的软件: 1.fio [推荐使用] 2.iometer fio的使用: 参考博客: http://lilinji.blog.51cto.com/5441000/1569623 h ...
- linux下使用ab压测接口性能方法
ab -r -k -n 100000 -c 500 www.baidu.com/login -r 表示遇到错误继续 -k 表示keepalive -n表示总共请求的次数 -c表示每次请求的数量(即并发 ...
- win和linux下的磁盘测速(读写速度)
win和linux下的磁盘测速(读写速度)1 - 命令行工具测速 后面接Linux下的代码测速 Linux磁盘测速2 - 代码测速 一.linux 下磁盘测速 1. 首先找到都有那些磁盘df命令(di ...
- linux下测试磁盘的读写IO速度-简易方法
linux下测试磁盘的读写IO速度-简易方法 参考资料: https://blog.csdn.net/zqtsx/article/details/25487185 一:使用hdparm命令 这是一个是 ...
- Linux下判断磁盘是SSD还是HDD的几种方法
文章目录 1.使用Linux相关命令 2.linux查看磁盘所在槽位 1.使用Linux相关命令 方法1: 如果是直通盘,即JBOD模式,方法则正确 如果返回1则表示磁盘可旋转,那么就是HDD了:反之 ...
- Linux下tar解压到当前目录,zip压缩,tar压缩,tar解压
Linux下tar解压tar.gz文件到当前目录 很多时候我们需要把文件解压到当前目录,命令如下: tar -zxvf vscode-server-linux-x64.tar.gz -C ./ 有时候 ...
- Linux下查看磁盘挂载的三种方法
Linux下查看磁盘挂载的三种方法 2009-06-05 23:17 好久没有更新日志了,呵呵.不是没有要写的东东.实在抽不出时间来写,要准备公司的考试呢,C++考试.已经有七个月没有写C++代码了, ...
- linux lvm添加磁盘,Linux下添加磁盘创建lvm分区
shell> fdisk /dev/xvdb #### 选择磁盘 Command (m for help): m #### 帮助 Command action a toggle a bootab ...
- linux下 tar解压 gz解压 bz2等各种解压文件使用方法
点击打开链接 linux下 tar解压 gz解压 bz2等各种解压文件使用方法 .tar 解包:tar xvf FileName.tar 打包:tar cvf FileN ...
最新文章
- 给DataGrid添加自动增长的序列号
- 机器学习中的最优化算法总结
- Spring.net抛砖引玉系列(二)用接口来实现HelloWorld
- PaddlePaddle yolov3
- python如何判断一段代码运行是否超出一定时间,如果超出则抛出异常?(检测函数运行是否超时,规定时间内执行,限制时间)eventlet模块 (eventlet.timeout.Timeout)
- get与post请求问题
- nopcommerce商城系统--源代码结构和架构
- mysql like 贪婪匹配_mysql模糊查询like与REGEXP的使用详细介绍
- 基于 Linux 的文件操作 网络编程的最后一环
- jquery ajax和servlet,浅谈ajax在jquery中的请求和servlet中的响应
- GAN(Generative Adversarial Networks) 初步
- 网页截图怎么截一整张_如何网页截图?(截长图)
- 数组扁平化 对象扁平化
- ADB命令连接逍遥模拟器并查看安卓日志
- CentOS7“ 趣味”命令 牛说:火车在天上飞 ,我吹的。
- linux5关闭apic服务,阐述Linux内核里面的APIC编程
- shell脚本-字符串和变量
- 基于自抗扰控制ADRC的主动悬架控制
- 一维,二维条形码/条码的编码规则
- border属性之border-radius
热门文章
- Node.js怎么处理数据库中日期类型
- Js 对象添加属性
- EasyUi – 1.入门
- Windows编程的Notification和Message
- 【python】 类、对象的练习题
- Redis的安装过程步骤
- apipost脚本使用一
- linux libmpi.so.12,单机安装vasp5.4.4,系统SUSE 12 SP3,编译器Intel_Parallel_Studio_XE_2019_Linux...
- sf | 空间矢量对象的属性连接方法
- 自学前端到底要学什么?五年老前端现身说法