zoukankan      html  css  js  c++  java
  • Linux硬盘性能测试工具

    1.安装:
    方法一:直接用指令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]

  • 相关阅读:
    JSON
    必须使用角色管理工具 安装或配置microsoft.net framework 3.5
    Backbone.js之view篇(三)
    MSDN Webcast 资源
    JS获取select 当前选种值
    我理解的js闭包
    javascript基础温习(一)
    js动态添加删除行
    delphi 版 sqlHelper第二版
    2012末日没有到来,继续我们的2013
  • 原文地址:https://www.cnblogs.com/configure/p/8044433.html
Copyright © 2011-2022 走看看