fxmark测试
参考:https://arkingc.github.io/2018/12/08/2018-12-08-linux-benchmark-fxmark/
本人环境centos7
文章目录
小结:
问题:虚拟机CPU无rdtscp选项
解决:qemu中添加即可+rdtscp
fxmark测试配置:
- run_config中进行配置:(“ssd”, “ext4”, “DWOL”, “5”, “bufferedio”))
- 重新设置Runner.SSDDEV = “/dev/mydevice”,其他参数如disk_size和duration也可设置
- 定制fs的测试,需要自行添加fs的mount函数到self.HOWTO_MOUNT和self.HOWTO_MKFS中
- 定制microbench
(1) 在src/下参考其他microbench编写新.c文件,实现其中pre_work,main_work。
(2) 在fxmark.h中添加extern struct bench_operations xxxxxx_ops;
(3) 在fxmark.c中bench_table[]中添加{"MRPM",
"path resolution: 描述",
&n_path_rsl_ops}
(4) 在run-fxmark.py的self.BENCH_TYPES中添加刚刚生成的MRPM
1. 安装与使用
install & build
- 安装文件系统特定的package(如mkfs)
$ bin/install-fs-tools.sh
# btrfs-tools: mkfs自带
# f2fs-tools:
https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git
wget https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git
yum install libuuid-devel pkg-config autoconf libtool
./autogen.sh
./configure
make
在mkfs下面就会生成mkfs.f2fs工具
# jfsutils:
有问题,没装
下载 http://jfs.sourceforge.net/
tar -xzvf jfsutils-1.1.15.tar.gz
./configure
make
make install
# nilfs-tools: 对应nilfs-utils安装
见https://github.com/nilfs-dev/nilfs-utils
git clone https://github.com/nilfs-dev/nilfs-utils.git
yum install libuuid-devel libmount-devel libblkid-devel libselinux-devel
cd nilfs-utils
./autogen.sh
./configure
make
# reiserfsprogs:
https://ftp.osuosl.org/pub/blfs/conglomeration/reiserfsprogs/
wget ...
yum install libacl-devel
xz -d reiserfsprogs-3.6.27.tar.xz
tar xvf reiserfsprogs-3.6.27.tar
cd reiserfsprogs-3.6.27
./configure
make
make install
# xfsprogs: yum install 即可
- 安装fxmark和python3.6
cd fxmark
make
#安装EPEL依赖
sudo yum install epel-release
#安装IUS软件源
sudo yum install https://centos7.iuscommunity.org/ius-release.rpm
#安装python3.6
sudo yum install python36u
#安装Python3完成后的shell命令为python3.6,为了使用方便,创建一个到python3的符号链接
ln -s /usr/bin/python3.6 /usr/bin/python3
#安装完成python36u并没有安装pip,安装pip
sudo yum install python36u-pip
#安装pip完成后的shell命令为pip3.6,为了使用方便,创建一个到pip3的符号链接
ln -s /usr/bin/pip3.6 /usr/bin/pip3
- 运行
(1). benchmark配置
- 在bin/run-fxmark.py中设置目标设备,如Runner.LOOPDEV
- 在bin/run-fxmark.py中配置,如run_config
(2). 运行benchmark
bin/run-fxmark.py
- 在logs目录下会生成一个带启动时间的log文件
- 运行不出来结果,转去看fxmark源码
fxmark源码阅读
源码结构:
fxmark
|------bin #一些python脚本,主要是run-fxmark.py, fxmark可执行程序,其他python脚本辅助
|------logs #输出运行结果
|------script
|------src #包含fxmark主函数,和每个microbench的C文件
|----