Filebench的安装及使用

简介

Filebench 是一个文件系统和存储基准测试,可以生成大量各种工作负载。与典型的基准测试不同,它非常灵活并且允许使用其广泛的工作负载模型指定应用程序的 I/O 行为语言(WML)。用户可以从头开始描述所需的工作负载,也可以使用(无论是否经过修改)随 Filebench 提供的工作负载个性(例如,邮件、Web、文件和数据库服务器工作负载)。文件台同样如此适合微观和宏观基准测试,设置快速且相对容易使用。

源码地址: https://github.com/filebench/filebench/releases

生成自动工具脚本

libtoolize
aclocal
autoheader
automake --add-missing
autoconf

安装

./configure
make -j 16
make install

用户定义的工作负载

第一步是用WML语言创建工作负载的描述(所谓的工作负载个性)。通常,工作负载个性存储在扩展名为“.f”的文件中。在此示例中,我们描述了一个非常简单的工作负载,该工作负载由两个进程组成,每个进程具有三个线程。每个线程不断地从多个文件中选择一个文件,读取它,然后关闭该文件。以下是相应的工作负载个性:

01  define fileset name="testF",entries=10000,filesize=16k,prealloc,path="/tmp"
02
03  define process name="readerP",instances=2 {
04    thread name="readerT",instances=3 {
05      flowop openfile name="openOP",filesetname="testF"
06      flowop readwholefile name="readOP",filesetname="testF"
07      flowop closefile name="closeOP"
08    }
09  }
10
11  run 60

Filebench 中的四个主要实体是“filesets”、由“threads”组成的“processes”和’flowops’。在第一行中,我们定义了一个filesets,其中包含10,000 个文件,每个文件大小为 16KiB,位于 /tmp 目录中。Filebench 被指示在执行实际工作负载之前预先创建文件集中的所有文件。在第三行和第四行中,我们定义了两个相同的进程,每个进程由三个相同的线程组成。Filebench 中的每个线程都会在循环中重复其中定义的flowops(操作) 。在第5行到第7行描述了由flowops组成的线程:打开“testF”filesets中的文件,完全读取该文件,然后关闭它。最后,在第 11 行中,我们指示运行工作负载 60 秒。在更复杂的工作负载中,我们可以定义任意数量的filesets、多个不同的进程和线程、使用各种flowops和属性。

假设自定义负载保存在“readfiles.f”文件中,则可以通过运行如下指令生成相应的工作负载。

filebench -f readfiles.f

预定义工作负载

可以直接使用filebench中提供的负载,并修改相应的工作目录,文件大小等信息。Filebench带有几个预定义的微观和宏工作负载,工作负载位于workloads/目录中。但不建议直接使用来自workloads/或/ usr / local / share / filebench / workloads /目录的工作负载文件。 主要原因是这些工作负载的大小不正确(例如,按照数据集大小)到特定系统。 故我们将这些提供的workload拷贝一份,并修改其以适应我们的测试。

Filebench的安装及使用_第1张图片

你可能感兴趣的:(Linux,linux)