0


文件系统性能测试工具 Filebench

Filebench

文章目录

什么是Filebench

Filebench是一块文件系统的测试工具,可以模拟服务器的一些操作来测试文件系统的性能
如:copyfiles createfiles randomread randomwrite等

测试指标

1.文件总大小相同 看操作带宽速度
如单个文件大小16k 文件数50000
对比单个文件大小1m 文件数800
总大小 800m
2.文件总数量相同 看响应iops时间
如单个文件大小16k 文件数800
对比单个文件大小1m 文件数800

安装Filebench

使用git获取源码

git clone https://github.com/Workeryuan/filebench.git

安装libtoool

yum install -y libtool   

安装automake

yum install -y automake

安装yacc

yum install -y byacc

安装flex

yum install -y flex

生成autotool脚本、编译和安装

cd filebench
libtoolize
aclocal
autoheader
automake --add-missing
autoconf
./configure
make install

Filebench测试

自定义测试负载

define fileset name="testF",entries=10000,filesize=16k,prealloc,path="/tmp"
define process name="readerP",instances=2 {
 thread name="readerT",instances=3 {
      flowop openfile name="openOP",filesetname="testF"
      flowop readwholefile name="readOP",filesetname="testF"
      flowop closefile name="closeOP"
    }
 }
 run 60

参数解释

define fileset

define fileset
修改文件仿真参数:

name

name=“testF”
文件名称:testF

entries

entries=10000
文件数量10000

filesize

filesize=16k
文件大小16k

prealloc

prealloc
预创建

path

path=“/tmp”
文件路径/tmp

dirwidth

dirwidth =100
文件深度100级

define proces

define proces
定义仿真进程

name

name=“readerP”
进程名称 readerP

instances

instances=2
进程数2

thread name

thread name=“readerT”
线程名readerT

instances

instances=3
线程数3

flowop openfile

flowop openfile
操作打开文件

name

name=“openOP”
任务名称openOP

filesetname

filesetname=“testF”
操作的文件testF

flowop

flowop readwholefile
读取文件

name

name=“readOP”
任务名称readOP

filesetname

filesetname=“testF”
操作的文件testF

flowop closefile

flowop closefile
关闭文件

name

name=“closeOP”
任务名称closeOP

run

run 60
运行时间60s

使用filebench中提供的负载

可以直接使用filebench中提供的负载,并修改相应的工作目录,文件大小等信息.
Filebench带有几个预定义的微观和宏工作负载,工作负载位于workloads/目录中

但不建议直接使用来自workloads/或/ usr / local / share / filebench / workloads /目录的工作负载文件。 主要原因是这些工作负载的大小不正确(例如,按照数据集大小)到特定系统。 例如,webserver工作负载的初始数据集大小仅略大于16MiB,这通常不是您想要测试包含多个千兆字节RAM系统的大小

故我们将这些提供的workload拷贝一份,并修改其以适应我们的测试

模拟webserver测试

先拷贝一份原生的配置文件,配置目录在下载的filebench源码下的workloads中

cp workloads/webserver.f  ~/mywebserver.f
cd ~/

修改mywebserver.f 文件配置,以适应我们的测试
一般修改dir, nfiles, filesize, nthreads等主要参数

set $dir=/mnt/ext4  /* 表示我们的工作目录是/mnt/ext4 */
set $nfiles=10000   /* 表示我们测10000个文件 */
set $meandirwidth=20 /* 目录深度 */
set $filesize=cvar(type=cvar-gamma,parameters=mean:16384;gamma:1.5)
set $nthreads=100 /* 100个线程 */
set $iosize=1m
set $meanappendsize=16k

参数说明

dir

dir
操作的目录

nfiles

nfiles
操作的文件数

meandirwidth

meandirwidth
目录的深度

filesize

filesize
文件的大小

nthreads

nthreads
线程数量

iosize

iosize
操作的io大小(带宽)

meanappendsize

meanappendsize
对文件操作每次操作的大小(平均追加大小)

修改后执行
filebench -f mywebserver.f (需要再上面配置文件末尾加上运行时间(e.g. run 60))

createfile测试

拷贝配置文件

cp /home/wind/testsoft/filebench/workloads/mycreatefiles.f   mycreatefiles.f

修改文件配置

set $dir=/mnt/mm  /* 表示我们的工作目录是/mnt/mm */
set $nfiles=1000000   /* 表示我们测1000000个文件 */
set $meandirwidth=100 /* 目录深度 */
set $filesize=cvar(type=cvar-gamma,parameters=mean:16384;gamma:1.5)
set $nthreads=100 /* 100个线程 */
set $iosize=1m
set $meanappendsize=16k

常用模拟测试配置

在这里插入图片描述

对比测试

对比相同文件大小

iosizeo = 1m
1M带宽

nfiles = 800
filesize = 1m
800个文件文件,1M的文件 2.3ms 总执行大小 800M
执行了800次文件操作 响应时间2.3ms 总操作1.8s 平均执行带宽796mb

nfiles = 50000
filesize = 16k
50000个文件,16k的文件 1.4ms 总执行大小 800M
执行了50000次文件操作 响应时间1.4ms 总操作50s 平均执行带宽156.2mb

对比看平均执行速度,速度越快性能越好

iosize对数据的影响

在这里插入图片描述

修改iosize为2m
发现当带宽大于写入文件大小时的两者数据差别不大

对比相同文件数量

修改nfiles = 50000(对比相同文件数量)
16k文件大小的情况iops响应时间1.2ms
在这里插入图片描述

可以测试相同文件大小的指标 看操作带宽
可以测试相同文件数量的指标 看响应iops时间
基本存储大文件的性能好些

测试结果

在这里插入图片描述

第一列 显示关闭文件次数 写入文件次数 创建文件次数
第二列 显示操作次数
第三列 显示每秒操作次数
第四列 表示每秒带宽
第五列表示 平均每次操作响应时间
第六七列显示 最快响应时间和最慢响应时间

测试时发现有文件没数据
在这里插入图片描述

这是因为这个是压力测试工具,存在写入失败也是正常情况

指标选择

每秒操作次数
平均每次操作响应时间

标签: linux

本文转载自: https://blog.csdn.net/lx7820336/article/details/124249323
版权归原作者 三千院喵 所有, 如有侵权,请联系我们删除。

“文件系统性能测试工具 Filebench”的评论:

还没有评论