专业的测试磁盘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盘为例,测试截图

本文转自 lirulei90 51CTO博客,原文链接:http://blog.51cto.com/lee90/1920328,如需转载请自行联系原作者

Linux下 fio磁盘压测笔记相关推荐

  1. mysql fio测试_Linux下 fio磁盘压测笔记

    专业的测试磁盘IO性能的软件: 1.fio [推荐使用] 2.iometer fio的使用: 参考博客: http://lilinji.blog.51cto.com/5441000/1569623 h ...

  2. linux下使用ab压测接口性能方法

    ab -r -k -n 100000 -c 500 www.baidu.com/login -r 表示遇到错误继续 -k 表示keepalive -n表示总共请求的次数 -c表示每次请求的数量(即并发 ...

  3. win和linux下的磁盘测速(读写速度)

    win和linux下的磁盘测速(读写速度)1 - 命令行工具测速 后面接Linux下的代码测速 Linux磁盘测速2 - 代码测速 一.linux 下磁盘测速 1. 首先找到都有那些磁盘df命令(di ...

  4. linux下测试磁盘的读写IO速度-简易方法

    linux下测试磁盘的读写IO速度-简易方法 参考资料: https://blog.csdn.net/zqtsx/article/details/25487185 一:使用hdparm命令 这是一个是 ...

  5. Linux下判断磁盘是SSD还是HDD的几种方法

    文章目录 1.使用Linux相关命令 2.linux查看磁盘所在槽位 1.使用Linux相关命令 方法1: 如果是直通盘,即JBOD模式,方法则正确 如果返回1则表示磁盘可旋转,那么就是HDD了:反之 ...

  6. Linux下tar解压到当前目录,zip压缩,tar压缩,tar解压

    Linux下tar解压tar.gz文件到当前目录 很多时候我们需要把文件解压到当前目录,命令如下: tar -zxvf vscode-server-linux-x64.tar.gz -C ./ 有时候 ...

  7. Linux下查看磁盘挂载的三种方法

    Linux下查看磁盘挂载的三种方法 2009-06-05 23:17 好久没有更新日志了,呵呵.不是没有要写的东东.实在抽不出时间来写,要准备公司的考试呢,C++考试.已经有七个月没有写C++代码了, ...

  8. linux lvm添加磁盘,Linux下添加磁盘创建lvm分区

    shell> fdisk /dev/xvdb #### 选择磁盘 Command (m for help): m #### 帮助 Command action a toggle a bootab ...

  9. linux下 tar解压 gz解压 bz2等各种解压文件使用方法

    点击打开链接 linux下 tar解压 gz解压 bz2等各种解压文件使用方法                .tar 解包:tar xvf FileName.tar 打包:tar cvf FileN ...

最新文章

  1. 给DataGrid添加自动增长的序列号
  2. 机器学习中的最优化算法总结
  3. Spring.net抛砖引玉系列(二)用接口来实现HelloWorld
  4. PaddlePaddle yolov3
  5. python如何判断一段代码运行是否超出一定时间,如果超出则抛出异常?(检测函数运行是否超时,规定时间内执行,限制时间)eventlet模块 (eventlet.timeout.Timeout)
  6. get与post请求问题
  7. nopcommerce商城系统--源代码结构和架构
  8. mysql like 贪婪匹配_mysql模糊查询like与REGEXP的使用详细介绍
  9. 基于 Linux 的文件操作 网络编程的最后一环
  10. jquery ajax和servlet,浅谈ajax在jquery中的请求和servlet中的响应
  11. GAN(Generative Adversarial Networks) 初步
  12. 网页截图怎么截一整张_如何网页截图?(截长图)
  13. 数组扁平化 对象扁平化
  14. ADB命令连接逍遥模拟器并查看安卓日志
  15. CentOS7“ 趣味”命令 牛说:火车在天上飞 ,我吹的。
  16. linux5关闭apic服务,阐述Linux内核里面的APIC编程
  17. shell脚本-字符串和变量
  18. 基于自抗扰控制ADRC的主动悬架控制
  19. 一维,二维条形码/条码的编码规则
  20. border属性之border-radius

热门文章

  1. Node.js怎么处理数据库中日期类型
  2. Js 对象添加属性
  3. EasyUi – 1.入门
  4. Windows编程的Notification和Message
  5. 【python】 类、对象的练习题
  6. Redis的安装过程步骤
  7. apipost脚本使用一
  8. linux libmpi.so.12,单机安装vasp5.4.4,系统SUSE 12 SP3,编译器Intel_Parallel_Studio_XE_2019_Linux...
  9. sf | 空间矢量对象的属性连接方法
  10. 自学前端到底要学什么?五年老前端现身说法