测试spdk下的nvme和rocksdb

以下均是参考链接
使用db_bench 对rocksdb进行性能压测
SPDK中常用的性能测试工具
Ubuntu安装Rocksdb并调试

火焰图辅助我们去分析性能,生成火焰图的步骤如下:

sudo /usr/src/linux-source-4.15.0/tools/perf/perf record -F 99 --call-graph dwarf -p 1165 
sudo /usr/src/linux-source-4.15.0/tools/perf/perf report -n -f --stdio
sudo /usr/src/linux-source-4.15.0/tools/perf/perf script -i perf.data &> perf.unfold
sudo FlameGraph/stackcollapse-perf.pl perf.unfold &> perf.folded
sudo FlameGraph/flamegraph.pl perf.folded > perf.svg

上面需要安装perf和火焰图
Ubuntu 18.04中安装perf工具(复制/粘帐/回车 版)
火焰图直接去GITHUB上down下来就行

火焰图可能出现unknown情况,参考以下文章加个参数 --call-graph dwarf
使用 perf 进行性能分析时如何获取准确的调用栈

下面是我参考上面的文章测试时用的命令

  • 无spdk的nvme
sudo fio -filename=/dev/nvme0n1 -direct=1 -iodepth 128 -thread=1 -rw=randrw -ioengine=libaio -bs=4k -runtime=60 -group_reporting=1 -verify=0 -ramp_time=0  -name=rand_read_4k
  • spdk下的nvme
sudo /usr/src/fio/fio spdk_nvme2.fio

spdk_nvme2.fio文件内容:

[global]
ioengine=/home/vagrant/spdk/build/fio/spdk_nvme
thread=1
group_reporting=1
direct=1
verify=0
time_based=1
ramp_time=0
runtime=60
iodepth=128
rw=randrw
bs=4k
numjobs=1

[job]
filename=trtype=PCIe traddr=0000.00.0e.0 ns=1
  • spdk下基于bdev的nvme
sudo /usr/src/fio/fio spdk_bdev1.fio

spdk_bdev1.fio文件内容如下

[global]
ioengine=spdk_bdev
spdk_json_conf=./examples/bdev/fio_plugin/bdev.json
thread=1
group_reporting=1
direct=1
verify=0
time_based=1
ramp_time=0
runtime=60
iodepth=128
rw=randrw
bs=4k
numjobs=1

[test]
filename=Malloc0
  • rocksdb

随机读写测试

sudo ./db_bench --benchmarks="readrandomwriterandom,stats" --use_existing_keys=1 --use_existing_db=1 --num=10000000 --db=./db_bench_test --wal_dir=./db_bench_test 
  • SPDK下的rocksdb

sudo ./db_bench -spdk  /usr/local/etc/spdk/rocksdb.json  -spdk_bdev Nvme0n1 -spdk_cache_size 1024 --benchmarks="readrandomwriterandom,stats" --num=10000000 --db=./db_bench_test --wal_dir=./db_bench_test 

你可能感兴趣的:(SPDK,RocksDB,Nvme,ubuntu,linux)