Linux硬盘性能测试工具 - FIO
2017-12-15 18:26
639 查看
1.安装:
方法一:直接用指令yum -y install fio
方法二:如果方法一不可行则,在官网http://freshmeat.net/projects/fio/下载fio的安装包。安装方法很简单。解压缩后,进入目录输入./configure make make install。
2.执行:
命令行:
脚本:
注意 fio测试指令需要在root权限下才能操作
第一个text是运行完后在/data 目录下会生成一个5G的text文件。
第二个test_read是测试运行结果在屏幕上显示的都是以test_read:。。。
3.关于参数:
-filename: 后可以直接加设备名 如-filename /dev/sdb1 ;也可以加设备的挂载点的文件名,如-filename=/data/testfile。
-directory: 设置filename的路径前缀,入股filename有指定路径,此项可以省略。
-direct: bool类型,如果设置成true (1),表示不使用io buffer,测试绕过机器自带的buffer,测试结果更真实。
-ioengine=sync I/O引擎,现在fio支持19种ioengine。默认值是sync同步阻塞I/O,libaio是Linux的native异步I/O。
通常有同步和异步两种方式。同步的io一次只能发出一个io请求,等待内核完成才返回,这样对单线程来说iodepth总是小于1的,但多个线程并发可以使iodepth变大。异步方式就是一次提交一批请求,等待一批的完成,减少交互的次数
-iodepth: io队列深度,当ioengine采用异步方式,该参数生效,表示一批提交保持的io单元数。
-rw有5种情况:
1.-rw=read
2.-rw=randread
3.-rw=write
4.-rw=randwrite
5.-rw=randrw -rwmixread=70 //混合模式下读占百分之70
-bs: blocksize 每次读写的大小,默认是4k。
-size: 本次的测试文件的大小,默认以每次4k的io进行测试。
-numjobs: 指定job的克隆数(线程)。
-runtime: 指定在多少秒后停止进程。如果未指定该参数,fio将执行至指定的文件读写完全完成。
-group_reporting: 关于现实结果,汇总每个进程的信息,当同时指定了numjobs了时,输出结果按组显示。
-name: 指定job的名字,在命令行中表示新启动一个job。
-time_based: 如果在runtime指定的时间还没到时文件就被读写完成,将继续重复直到runtime时间结束。
[THE END]
方法一:直接用指令yum -y install fio
方法二:如果方法一不可行则,在官网http://freshmeat.net/projects/fio/下载fio的安装包。安装方法很简单。解压缩后,进入目录输入./configure make make install。
2.执行:
命令行:
fio -filename=/data/fiotest -direct=1 -ioengine=libaio -iodepth=16 -rw=randrw -rwmixwrite=70 -bs=64k -size=10G -numjobs=4 -runtime=60 -group_reporting -name=test_rw fio -filename=/data/fiotest -direct=1 -ioengine=libaio -iodepth=16 -rw=randrw -rwmixwrite=70 -bs=64k -size=10G -numjobs=4 -runtime=60 -group_reporting -name=test_rw
脚本:
vim /usr/local/src/fiotest.conf
[global] filename=/data/fiotest # the device/file name direct=1 # use raw io instead of buffered io ioengine=libaio # libaio is asynchronized io mode, sync is synchronized mode iodepth=16 # if use libaio, iodepth means the ios can be submitted at the same time. It is important! size=10G numjobs=5 # number of clones of processes/threads for each job runtime=60 # in seconds for each job name=test_read [rw64k-rand] stonewall # wait until the previous job is finished bs=64k rw=randrw rwmixwrite=70 group_reporting rw512k-rand] stonewall #wait until the previous job is finished bs=512k rw=randrw rwmixwrite=70 group_reporting
注意 fio测试指令需要在root权限下才能操作
第一个text是运行完后在/data 目录下会生成一个5G的text文件。
第二个test_read是测试运行结果在屏幕上显示的都是以test_read:。。。
3.关于参数:
-filename: 后可以直接加设备名 如-filename /dev/sdb1 ;也可以加设备的挂载点的文件名,如-filename=/data/testfile。
-directory: 设置filename的路径前缀,入股filename有指定路径,此项可以省略。
-direct: bool类型,如果设置成true (1),表示不使用io buffer,测试绕过机器自带的buffer,测试结果更真实。
-ioengine=sync I/O引擎,现在fio支持19种ioengine。默认值是sync同步阻塞I/O,libaio是Linux的native异步I/O。
通常有同步和异步两种方式。同步的io一次只能发出一个io请求,等待内核完成才返回,这样对单线程来说iodepth总是小于1的,但多个线程并发可以使iodepth变大。异步方式就是一次提交一批请求,等待一批的完成,减少交互的次数
-iodepth: io队列深度,当ioengine采用异步方式,该参数生效,表示一批提交保持的io单元数。
-rw有5种情况:
1.-rw=read
2.-rw=randread
3.-rw=write
4.-rw=randwrite
5.-rw=randrw -rwmixread=70 //混合模式下读占百分之70
-bs: blocksize 每次读写的大小,默认是4k。
-size: 本次的测试文件的大小,默认以每次4k的io进行测试。
-numjobs: 指定job的克隆数(线程)。
-runtime: 指定在多少秒后停止进程。如果未指定该参数,fio将执行至指定的文件读写完全完成。
-group_reporting: 关于现实结果,汇总每个进程的信息,当同时指定了numjobs了时,输出结果按组显示。
-name: 指定job的名字,在命令行中表示新启动一个job。
-time_based: 如果在runtime指定的时间还没到时文件就被读写完成,将继续重复直到runtime时间结束。
[THE END]
相关文章推荐
- linux下硬盘性能(网络盘)测试工具fio使用
- Linux IO性能测试工具: FIO之初见
- linux 磁盘性能测试工具fio
- Linux 磁盘IO性能测试工具:FIO
- LInux下使用fio工具测试优盘读写性能
- [zz]Linux性能测试工具Lmbench介绍和使用说明
- 【Linux常用工具】03. Linux性能测试工具ab
- 性能测试-强大Linux监控工具的nmon
- Fio IO性能测试工具介绍
- linux环境下 C++性能测试工具 gprof 和gprof2dot
- 三张图看遍Linux 性能监控、测试、优化工具
- 性能测试工具curl-loader(linux)
- 嵌入式linux网络性能测试工具iperf
- linux 网络性能测试工具iperf
- Linux性能测试工具:Oprofile, KFT, Gprof
- Linux中随手可得的测试、调试、性能检验工具
- linux性能测试:其它工具
- linux环境下 C++性能测试工具 gprof 和gprof2dot
- Linux性能测试工具
- Fio 工具测试IO性能