spdk + fio測試nvme 設(shè)備的性能

1、背景

  • spdk :是一個基于dpdk的存儲開發(fā)kit,這里主要利用了它提供的用戶態(tài)nvme driver —— spdk鏈接
  • fio: io測試工具,提供豐富的參數(shù),可以構(gòu)造復(fù)雜的io pattern

fio的測試對象可以是塊設(shè)備、文件等,在spdk的使用過程中會unbind默認(rèn)的nvme driver,所以在系統(tǒng)中是看不到nvme塊設(shè)備的,在spdk中可以通過fio_plugin的方式,將spdk的用戶態(tài)driver部分的io功能打包成一個ioengine提供給fio使用,可以綜合spdk的高性能和fio提供的復(fù)雜場景。

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執(zhí)行測試
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、注意

  • 由于spdk已經(jīng)提前從系統(tǒng)中unbind了nvme設(shè)備,所以/dev/下是沒有nvme設(shè)備的,必須指定到具體的pcie的接口上,fio的jobfile中的filename需要使用key=val的模式(這個地方有點怪異)
    • trttype:有pcie和rdma兩種
    • traddr:pcie的“domain:bus:device:function”格式,可以用lspci命令查看對應(yīng)的nvme設(shè)備在那個總線上,一般單臺機(jī)器的domain都是0000
    • ns:namespace的id
  • spdk做性能測試時,對每個namespace會綁定一個lcore,所以fio的thread只能等于1
  • fio測試random的io時,需要設(shè)置norandommap=1 ,防止fio的random map影響性能
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 簡介 本文檔包含DPDK軟件安裝和配置的相關(guān)說明。旨在幫助用戶快速啟動和運行軟件。文檔主要描述了在Linux...
    半天妖閱讀 18,116評論 0 22
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,564評論 19 139
  • 人生之悟 冬天總會過去,身體似的灰燼,我用心靈的火炬溫暖軀體,涼風(fēng)吹寒,人生枯瘦。面對一切的現(xiàn)實,無言以對的落寞,...
    通靈石閱讀 235評論 0 0
  • 在學(xué)習(xí)FFmpeg之前,查閱了很多資料包括官方的、國外的、國內(nèi)的,相信還是雷霄驊資料最適合初學(xué)者,在這里哀悼下大神...
    風(fēng)與鸞閱讀 1,544評論 2 8
  • 如果可以早點遇見你,我希望可以是一生而不是一時。 如果可以早點遇見你,我希望可以真誠的與你相識,誠懇的與你相戀。 ...
    何大嫻子閱讀 518評論 0 0

友情鏈接更多精彩內(nèi)容