zoukankan      html  css  js  c++  java
  • filebench

    一、安装(版本包见附件)参考网址:https://blog.csdn.net/microsoft2014/article/details/60145433
    sudo tar -zxf filebench-1.5-alpha3.tar.gz -C /usr/local
    yum install gcc
    yum install flex bison
    解压后需要安装gcc、lex和yacc(linux下是用flex和bison来分别代替lex和yacc的),因为后续安装需要,不然会出问题。
    cd /usr/local/filebench-1.5-alpha3
    ./configure
    make
    sudo make install

    安装完测试:
    $cd /usr/local/share/filebench/workloads
    $filebench -f webserver.f //for example:webserver.f
    二、执行(参考网址:https://blog.csdn.net/u012317833/article/details/36676955)(https://blog.csdn.net/for_tech/article/details/75271066)
    交互式:Interactively
    user@host$ sudo su
    [sudo] password for user:
    root@host# echo 0 > /proc/sys/kernel/randomize_va_space
    root@host# go_filebench
    Filebench Version 1.4.9
    12102: 0.000: Allocated 170MB of shared memory
    filebench>

    Now, one can load and run individual workload personalities with full control over their parameters. The following example demonstrates how to run fileserver workload personality:
    注意如果没有go_filebench命令,可以将附件的go_filebench移到/usr/local/bin目录

    root@user# go_filebench
    Filebench Version 1.4.9
    12324: 0.000: Allocated 170MB of shared memory
    filebench> load fileserver
    12462: 2.869: FileServer Version 2.2 personality successfully loaded
    12462: 2.869: Usage: set $dir=<dir>
    12462: 2.869: set $meanfilesize=<size> defaults to 131072
    12462: 2.869: set $nfiles=<value> defaults to 10000
    12462: 2.869: set $nthreads=<value> defaults to 50
    12462: 2.869: set $meanappendsize=<value> defaults to 16384
    12462: 2.869: set $iosize=<size> defaults to 1048576
    12462: 2.869: set $meandirwidth=<size> defaults to 20
    12462: 2.869: (sets mean dir width and dir depth is calculated as log (width, nfiles)
    12462: 2.869: run runtime (e.g. run 60)
    filebench> set $dir=/mnt
    filebench> run 60
    12462: 4.909: Creating/pre-allocating files and filesets
    12462: 4.918: Fileset bigfileset: 10000 files, avg dir width = 20, avg dir depth = 3.1, 1240.757MB
    12462: 5.280: Removed any existing fileset bigfileset in 1 seconds
    12462: 5.280: making tree for filset /tmp/bigfileset
    12462: 5.290: Creating fileset bigfileset...
    12462: 6.080: Preallocated 7979 of 10000 of fileset bigfileset in 1 seconds
    12462: 6.080: waiting for fileset pre-allocation to finish
    12466: 6.080: Starting 1 filereader instances
    12467: 6.081: Starting 50 filereaderthread threads
    12462: 7.137: Running...
    12462: 67.142: Run took 60 seconds...
    12462: 67.145: Per-Operation Breakdown

    statfile1 128311ops 2138ops/s 0.0mb/s 0.0ms/op 2320us/op-cpu [0ms - 0ms]
    deletefile1 128316ops 2138ops/s 0.0mb/s 0.2ms/op 2535us/op-cpu [0ms - 458ms]
    closefile3 128323ops 2139ops/s 0.0mb/s 0.0ms/op 2328us/op-cpu [0ms - 0ms]
    readfile1 128327ops 2139ops/s 283.8mb/s 0.1ms/op 2460us/op-cpu [0ms - 267ms]
    openfile2 128329ops 2139ops/s 0.0mb/s 0.0ms/op 2332us/op-cpu [0ms - 2ms]
    closefile2 128332ops 2139ops/s 0.0mb/s 0.0ms/op 2332us/op-cpu [0ms - 0ms]
    appendfilerand1 128337ops 2139ops/s 16.6mb/s 0.1ms/op 2377us/op-cpu [0ms - 559ms]
    openfile1 128343ops 2139ops/s 0.0mb/s 0.0ms/op 2353us/op-cpu [0ms - 2ms]
    closefile1 128349ops 2139ops/s 0.0mb/s 0.0ms/op 2317us/op-cpu [0ms - 1ms]
    wrtfile1 128352ops 2139ops/s 265.2mb/s 0.1ms/op 2601us/op-cpu [0ms - 268ms]
    createfile1 128358ops 2139ops/s 0.0mb/s 0.1ms/op 2396us/op-cpu [0ms - 267ms]
    12462: 67.145: IO Summary: 1411677 ops, 23526 ops/s, (2139/4278 r/w), 565mb/s, 393us cpu/op, 0.2ms latency
    12462: 67.145: Shutting down processes

    As you can see, we first loaded fileserver personality using load command. Filebench located corresponding.f in the directory with pre-defined workloads. After that tunables of the workload personality can be set. We change
    the benchmark directory to /mnt where the file system we want to benchmark is presumably mounted. To start workload for 60 seconds we execute run 60 command. In response, Filebench first created a file system tree with the properties
    defined in the personality file and then spanned all required processes and threads. After 60 seconds of the run the statistics is printed and Filebench exits.

    非交互式:Non-interactively(/usr/local/share/filebench/workloads目录下有各种模型,都可以使用)
    If you wish to run Filebench in non-interactive mode, you can use -f option. However, you need to add 'run <time>' to the end of the workload personality file. I prefer to create a copy of original workload file for that:
    root@host# cp /usr/local/share/filebench/workloads/fileserver.f /tmp/fileserver-noninteractive.f
    root@host# vim /tmp/fileserver-noninteractive.f (add 'run 60' to the end of this file)
    root@host# filebench -f /tmp/fileserver-noninteractive.f

    After that you will see traditional Filebench output.


    文档提到的2个注意点:
    1. filebench默认开启地址空间randomization (后面有解释,什么是address space randomization)。如果测试多进程的负载,为了稳定操作可以选择关闭该选项。方法是:echo 0 > /proc/sys/kernel/randomize_va_space
    2. 如果想增加filebench的共享内存,有2个方法
       a. 用root用户执行。(su)
       b. echo 268435456 > /proc/sys/kernel/randomize_va_space (增加到256MB)
    运行
    你可以选择导入别人已经定制好的负载类型( 如fileserver)。也可以自己使用workload model language定制特定的负载。下面介绍的是文档演示的导入已经定制好的fileserver负载(模拟)。
    1. 进入filebench
    2. load fileserver (filebench导入对应的~.f文件,代码自带,也可以从这个地址下载http://sourceforge.net/apps/mediawiki/filebench/index.php?title=Pre-defined_personalities)
    3. set $dir=/mnt (测试mnt目录)
    4. run 60 (运行60秒,运行完毕后打印统计信息)
    非交互式运行

    执行一条命令即可完成测试,无需要像前面一步一步的设置各个参数。注意在配置文件的末尾添加 'run <time>'
    三、输出解释
    输出解释:
    flowop name - 支持的flowop有很多
    所有threads的ops
    所有threads的ops / run time
    所有threads的READ/WRITE带宽
    所有threads的每个op的平均latency
    测试中op的最小和最大latency

    IO Summary:
    149970 ops :所有flowop的总和
    9372.298 ops/s :所有flowop的总和 / run time
    0/3124 rd/wr :所有flowop中READ/WRITE的ops / run time
    48.8mb/s : 所有flowop的IO带宽
    1.643ms/op :所有flowop的每个op的平均latency
    四、写workload
    我们可以自己写workload文件,语法格式可参考:https://github.com/filebench/filebench/wiki/Workload-model-language
    # cat createfiles.f
    ...
    // 下面是用户变量定义
    set $dir=/home/yangguanjun3/mike/tst1
    set $nfiles=50000
    set $meandirwidth=100
    set $meanfilesize=16k
    set $iosize=1m
    set $nthreads=16
    // 设置退出模式,支持[ timeout | alldone | firstdone ]
    set mode quit firstdone
    // fileset:定义一组测试中用的files
    // name=bigfileset:必须指定 - fileset的名称,后面flowop中用到
    // path=$dir:必须指定 - 创建测试文件的目录
    // size=$meanfilesize:可选,关键字也可以为filesize,默认为1KB - 测试文件的size
    // entries=$nfiles:可选,默认位1024 - fileset中的file个数
    // dirwidth=$meandirwidth:可选,默认为0 - 每个目录中创建的file个数
    define fileset name=bigfileset,path=$dir,size=$meanfilesize,entries=$nfiles,dirwidth=$meandirwidth
    // process:定义处理过程
    // name=filecreate:必须指定 - 处理过程的名称
    // instances=1:可选,默认为1 - 处理过程的进程数
    define process name=filecreate,instances=1
    {
    // thread:process中的一个thread
    // name=filecreatethread:必须指定 - 处理线程的名称
    // memsize=10m:必须指定 - 线程启动后初始化为0的内存大小,用于read/write flowop
    // instances=$nthreads:可选,默认为1 - 创建的线程数
    thread name=filecreatethread,memsize=10m,instances=$nthreads
    {
    // flowop:定义处理流程中的每一步
    // createfile/writewholefile/closefile:flowop的关键字,每个代表不同的操作
    // name=$name:flowop的名称
    // filesetname=bigfileset:指定op操作的fileset
    // fd=1:指定file descriptor的值,在应用允许文件被多次open的场景中有用
    // iosize=$iosize:指定读写的iosize
    flowop createfile name=createfile1,filesetname=bigfileset,fd=1
    flowop writewholefile name=writefile1,fd=1,iosize=$iosize
    flowop closefile name=closefile1,fd=1
    }
    }
    echo "Createfiles Version 3.0 personality successfully loaded”
    // 开始运行filebench测试
    // 格式:run [<runtime>],<runtime>不指定的话,默认为60s
    run 60
    ---------------------
    作者:for_tech
    来源:CSDN
    原文:https://blog.csdn.net/for_tech/article/details/75271066?utm_source=copy
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    MSSQL中with(nolock)的用法
    google reader 使用快捷键
    HTML中em标签的用法
    js正则表达式
    C#中lock关键字的用法
    面试反思
    关于IE6.7.8.FF兼容的问题
    C#中DateTime.Now.Ticks的用法和说明
    JS中eval的用法
    这两天面试时不会的笔试题
  • 原文地址:https://www.cnblogs.com/AgainstTheWind/p/9869790.html
Copyright © 2011-2022 走看看