filebench - File system and storage benchmark - 模拟生成各种各样的应用的负载 - A Model Based File System Workload Generator
兼容posix 接口的文件系统中我们不仅要测试 posix 接口是否兼容。随机读,随机写,顺序读,顺序写等读写模式下的性能。我们还要测试在不同工作负载条件下的文件系统的性能的情况;Filebench 是一款文件系统性能的自动化测试工具,它通过快速模拟真实应用服务器的负载来测试文件系统的性能。它不仅可以仿真文件系统微操作(如 copyfiles, createfiles, randomread, randomwrite ),而且可以仿真复杂的应用程序(如 varmail, fileserver, oltp, dss, webserver, webproxy )。 Filebench 比较适合用来测试文件服务器性能,但同时也是一款负载自动生成工具,也可用于文件系统的性能。所以filebench 是非常好用文件系统负载生成工具;
官方网站:
https://github.com/filebench/filebench
https://github.com/filebench/filebench/wiki
https://sourceforge.net/projects/filebench/
https://github.com/filebench/filebench/releases/download/1.5-alpha3/filebench-1.5-alpha3.zip
官网介绍:
Filebench is a file system and storage benchmark that can generate a large
variety of workloads. Unlike typical benchmarks it is extremely flexible and
allows to specify application's I/O behavior using its extensive Workload Model
Language (WML). Users can either describe desired workloads from scratch or use
(with or without modifications) workload personalities shipped with Filebench
(e.g., mail-, web-, file-, and database-server workloads). Filebench is equally
good for micro- and macro-benchmarking, quick to setup, and relatively easy to
use.
安装:
Make sure bison
and lex
are available in your system. Then, run traditional configure
, make
, and sudo make install
commands.
fedora 上 使用 yum 工具,即可以安装稳定版;
安装最新版需要下载 flex 和 bison 等依赖;
yum install flex bison
$cd /usr/local/filebench-1.5-alpha3 (源文件所在的路径)
$./configure
$make
$sudo make install (注意:一定要安装 filebench 需要在/usr/local/share/filebench 下生成一些文件)
使用:
filebench 需要根据 WML 负载模型语言来进行描述负载,然后来进行执行。所以我们可以使用已经预定好的负载,也可以自己定义自己的负载模型,然后运行。具体如何进行定义负载大家可以参考如下链接:https://github.com/filebench/filebench/wiki/Workload-model-language ,也可以参考wiki 进行整理了解 filebench工具的使用;filebench在wml文件中指定测试的位置,我们可一个在.f文件中指定所要测试文件系统的挂载点;
命令:filebench -f /usr/local/share/filebench/workloads/fileserver.f
测试结果:
当然,我们不建议直接使用 原有的文件进行测试。我们可以在原有的wml文件基础上根据我们自己的使用场景来定义负载。
We do *not* recommend to directly use workload files from workloads/ or
/usr/local/share/filebench/workloads/ directories. The main reason is that these
workloads *are not properly sized* (e.g., in terms of the dataset sizes) to a
particular system. For instance, the initial dataset size of the webserver
workload is only slightly larger than 16MiB, which is typically not the size you
want to test the system containing multiple gigabytes of RAM with.
FileBench 架构:
其他参考文档:
https://www.usenix.org/legacy/event/lsf08/tech/FS_shepler.pdf
https://www.usenix.org/legacy/event/lsf08/tech/FS_shepler.pdf
https://blog.csdn.net/microsoft2014/article/details/60145433
https://www.jianshu.com/p/4fcd6b8a4236
保持更新,更多关于文件系统相关的知识,请关注 cnblogs.com/xuyaowen
filebench - File system and storage benchmark - 模拟生成各种各样的应用的负载 - A Model Based File System Workload Generator的更多相关文章
- OpenGL 用三角形模拟生成球面
在看OpenGL红皮书,看到生成球体这节,讲了很多,总感觉不如自己动手写一些代码来的实在,用OpenGL中三角形模拟球形生成.主要要点,模型视图变换,多边形表面环绕一致性,矩阵堆栈.先贴上代码. 虽然 ...
- linux平台模拟生成CAN设备
前言 使用socketCan的过程中有时候没有can接口设备,但是需要测试一下can接口程序是否有问题, 此时需要系统模拟生成can设备,本文介绍linux平台模拟生成CAN设备的方法. 实现步骤 1 ...
- linux 模拟生成 CAN 设备
/************************************************************************************** * linux 模拟生成 ...
- pandas 模拟生成数据集的快速方法
快速生成一个DataFrame的方法: #模拟生成数据集的方法 import pandas as pd import numpy as np boolean=[True,False] gender=[ ...
- 编译器错误消息: CS0012: 类型“System.Object”在未被引用的程序集中定义。必须添加对程序集“System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”的引用。
编译器错误消息: CS0012: 类型“System.Object”在未被引用的程序集中定义.必须添加对程序集“System.Runtime, Version=4.0.0.0, Culture=neu ...
- 对于应用需要记录某个方法耗时的场景,必须使用clock_gettime传入CLOCK_MONOTONIC参数,该参数获得的是自系统开机起单调递增的纳秒级别精度时钟,相比gettimeofday精度提高不少,并且不受NTP等外部服务影响,能准确更准确来统计耗时(java中对应的是System.nanoTime),也就是说所有使用gettimeofday来统计耗时(java中是System.curre
对于应用需要记录某个方法耗时的场景,必须使用clock_gettime传入CLOCK_MONOTONIC参数,该参数获得的是自系统开机起单调递增的纳秒级别精度时钟,相比gettimeofday精度提高 ...
- 解决报错:类型“System.Object”在未被引用的程序集中定义。必须添加对程序集“System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”的引用
Razor视图引擎中,使用部分视图编译报错 类型“System.Object”在未被引用的程序集中定义.必须添加对程序集“System.Runtime, Version=4.0.0.0, Cultur ...
- mysqld_safe error: log-error set to '/data/log/mysqld.log', however file don't exists. Create writable for user 'mysql'.The server quit without updating PID file (/data/mysql/mysqld.pid)
[oot@cent65 bin]# service mysqld startStarting MySQL.2019-10-28T15:56:47.786960Z mysqld_safe error: ...
- 【RS】Deep Learning based Recommender System: A Survey and New Perspectives - 基于深度学习的推荐系统:调查与新视角
[论文标题]Deep Learning based Recommender System: A Survey and New Perspectives ( ACM Computing Surveys ...
随机推荐
- vue中实现百度地图
1.项目根目录下下载百度地图插件 npm install vue-baidu-map –save 2.在首页index.html中引入百度地图: <script type="text/ ...
- 微信 电脑版 HOOK(WeChat PC Hook)- 框架
软件构成:一个主进程exe和一个注入的dll主进程exe:把dll注入到微信,发送指令给dll,接受dll的信息注入的dll:被注入到微信内部,拦截微信的数据,调用微信的功能 接收主进程的指令,执行指 ...
- java基础 - 锁
------------------------ 参考: https://www.cnblogs.com/hustzzl/p/9343797.html https://blog.csdn.net/qq ...
- IT兄弟连 HTML5教程 CSS3属性特效 圆角
传统的圆角生成方案,必须使用多张图片作为背景图案.CSS3的出现,使得我们再也不必浪费时间去制作这些图片了,只需要border-radius属性,支持浏览器IE 9.Opera 10.5.Safari ...
- 使用 getUserMedia API获取麦克风和相机等流媒体
概览 mediaDevices 是 Navigator 对象的只读属性,一个单列对象,可以连接访问相机和麦克风,屏幕共享等媒体输入设备 方法 enumerateDevices 请求一个可用的媒体输入和 ...
- python部署mariadb主从架构
主机部署: import configparser import os def config_mariadb_yum(): exists = os.path.exists('/etc/yum.repo ...
- C# List、Array、Dictionary之间相互转换
Array转换为List List转换为Array Array转Dictionary Dictionary转Array List转Dictionary Dictionary转List IQueryab ...
- 常用注解解析(因为不太明白@component和@configuration写了)
1.@controller 控制器(注入服务) 用于标注控制层,相当于struts中的action层 2.@service 服务(注入dao) 用于标注服务层,主要用来进行业务的逻辑处理 3.@rep ...
- 选择IT公司的雇主提问
做为IT从业人员,我们去一家公司时,判断一家公司的专业性时,可以通过以下提问获得反馈: 技术问题 1.这个项目使用了哪些技术(语言,框架,库)?2.应用程序是一体化架构还是微服务架构?3.采用了哪些设 ...
- [Linux]centos下安装memcached
一.yum安装 1.Linux系统安装memcached,首先要先安装libevent库. yum install libevent libevent-devel 2.安装memcached yum ...