内存 数据库,存储 网络缓存

spdk + fio测试nvme 设备的性能

2018-02-28  本文已影响126人  Stansosleepy

1、背景

fio的测试对象可以是块设备、文件等,在spdk的使用过程中会unbind默认的nvme driver,所以在系统中是看不到nvme块设备的,在spdk中可以通过fio_plugin的方式,将spdk的用户态driver部分的io功能打包成一个ioengine提供给fio使用,可以综合spdk的高性能和fio提供的复杂场景。

2、使用步骤

2.1下载dpdk、spdk、fio并解压

用最新的版本即可

2.2编译fio
cd fio_dir
./configure
make&&make install
2.3编译dpdk
vim <dpdk_dir>/config/defconfig_x86_64-native-linuxapp-gcc
#增加一行
EXTRA_CFLAGS=-fPIC
#回到<dpdk_dir>编译dpdk
make install T=x86_64-native-linuxapp-gcc DESTDIR=.
2.4编译spdk
cd <spdk_dir>
./configure --with-fio=/root/Downloads/fio-fio-3.3/ --with-dpdk=/root/Downloads/dpdk-17.11/x86_64-native-linuxapp-gcc
#修改<spdk_dir>/CONFIG文件
CONFIG_FIO_PLUGIN=y
FIO_SOURCE_DIR=fio的目录
#编译spdk
make DPDK_DIR=/root/Downloads/dpdk-17.11/x86_64-native-linuxapp-gcc
2.5unbind nvme driver替换为vfio
cd <spdk_dir>/scripts
sh setup.sh
2.6使用fio执行测试
LD_PRELOAD=/root/Downloads/spdk-18.01/examples/nvme/fio_plugin/fio_plugin /root/Downloads/fio-fio-3.3/fio example_config.fio
2.7 jobfile的例子

这个jobfile是spdk中提供的例子

[global]
ioengine=spdk
thread=1
group_reporting=1
direct=1
verify=0
time_based=1
ramp_time=0
norandommap=1
runtime=60
iodepth=32
rw=randwrite
bs=3000b
[test]
numjobs=1
filename=trtype=PCIe traddr=0000.01.00.0 ns=1

3、注意

上一篇 下一篇

猜你喜欢

热点阅读