簡(jiǎn)介
????????dperf是一個(gè)基于DPDK開發(fā),具有千萬級(jí)HTTP CPS,幾十億并發(fā),幾百Gbps帶寬的開源壓力測(cè)試儀,dperf實(shí)現(xiàn)了一個(gè)精簡(jiǎn)的用戶態(tài)TCP/IP協(xié)議棧、精簡(jiǎn)的Socket、精簡(jiǎn)的HTTP客戶端與服務(wù)器,可以curl/ab/nginx進(jìn)行對(duì)接。
????????dperf是一款開源的高性能網(wǎng)絡(luò)壓測(cè)軟件,可用于測(cè)試四層負(fù)載均衡等網(wǎng)關(guān)設(shè)備的的各項(xiàng)性能指標(biāo)(新建、帶寬、并發(fā)、PPS)。
? ? ? ? 總之,dperf 是一個(gè)100Gbps的網(wǎng)絡(luò)性能與壓力測(cè)試軟件。
優(yōu)點(diǎn)
1、性能強(qiáng)大:
- 基于 DPDK,使用一臺(tái)普通 x86 服務(wù)器就可以產(chǎn)生巨大的流量:千萬級(jí)的 HTTP 每秒新建連接數(shù),數(shù)百Gbps的帶寬,幾十億的并發(fā)連接數(shù)
2、統(tǒng)計(jì)信息詳細(xì):
- 能夠輸出詳細(xì)的統(tǒng)計(jì)信息,并且識(shí)別每一個(gè)丟包
3、使用場(chǎng)景豐富:
- 可用于對(duì)四層負(fù)載均衡等四層網(wǎng)關(guān)進(jìn)行性能壓力測(cè)試、長(zhǎng)穩(wěn)測(cè)試
- 可用于對(duì)云上虛擬機(jī)的網(wǎng)絡(luò)性能進(jìn)行測(cè)試
- 可用于對(duì)網(wǎng)卡性能、CPU的網(wǎng)絡(luò)報(bào)文處理能力進(jìn)行測(cè)試
- 壓測(cè)場(chǎng)景下,可作為高性能的HTTP Server或HTTP Client單獨(dú)使用
支持的特性
- 協(xié)議:ARP、ICMP、ICMP6、IPV4、IPV6、TCP、UDP、VXLAN、HTTP
- 嚴(yán)格測(cè)試過的網(wǎng)卡:vmxnet3、Intel 82599、Mellanox CX4/CX6、AWS ENA、virtio
- 測(cè)試過的DPDK版本:17.11,18.11,19.11,20.11, 21.11, 22
- KNI:用于發(fā)布動(dòng)態(tài)路由
- bond:支持多有bond模式
- 多線程:使用多網(wǎng)卡、多隊(duì)列,用FIDR分流,RSS分流
- 多進(jìn)程:同一個(gè)Host上可以同時(shí)運(yùn)行dperf客戶端、dperf服務(wù)器
- 測(cè)試:并發(fā)連接數(shù)、每秒新建連接數(shù)、PPS、帶寬
- 可以設(shè)置報(bào)文大小,不能修改報(bào)文內(nèi)容
使用步驟
配置dpdk
配置大頁
#參考如下參數(shù)編輯 '/boot/grub2/grub.cfg',然后重啟OS
linux16 /vmlinuz-... nopku transparent_hugepage=never default_hugepagesz=1G hugepagesz=1G hugepages=8
編譯dpdk
#編輯'config/common_base'打開PMD開關(guān)
#Mellanox CX4/CX5 requires 'CONFIG_RTE_LIBRTE_MLX5_PMD=y'
#HNS3 requires 'CONFIG_RTE_LIBRTE_HNS3_PMD=y'
#VMXNET3 requires 'CONFIG_RTE_LIBRTE_VMXNET3_PMD=y'TARGET=x86_64-native-linuxapp-gcc #or arm64-armv8a-linuxapp-gcc
cd /root/dpdk/dpdk-stable-19.11.10
make install T=$TARGET -j16
綁定網(wǎng)卡
#Mellanox網(wǎng)卡跳過此步
#假設(shè)PCI號(hào)是0000:1b:00.0#######################probe 驅(qū)動(dòng)#############
modprobe uio
modprobe uio_pci_generic#######################綁定網(wǎng)卡###############
/root/dpdk/dpdk-stable-19.11.10/usertools/dpdk-devbind.py -b uio_pci_generic 0000:1b:00.0
配置dperf
編譯dperf
cd dperf
make -j8 RTE_SDK=/root/dpdk/dpdk-stable-19.11.10 RTE_TARGET=$TARGET
啟動(dòng)dperf server
#dperf server監(jiān)聽6.6.241.27:80, 網(wǎng)關(guān)是6.6.241.1
./build/dperf -c test/http/server-cps.conf
從客戶端發(fā)送請(qǐng)求
#客戶端IP必須要在配置文件的'client'范圍內(nèi)
ping 6.6.241.27
curl http://6.6.241.27/
運(yùn)行測(cè)試
下面的例子運(yùn)行一個(gè)HTTP CPS壓力測(cè)試。
#在server端運(yùn)行? ?dperf ./build/dperf -c test/http/server-cps.conf
#以另一臺(tái)機(jī)器作為client端,運(yùn)行dperf
./build/dperf -c test/http/client-cps.conf
詳細(xì)請(qǐng)參考:文章來源:http://www.zghlxwxcb.cn/news/detail-426991.html
github鏈接文章來源地址http://www.zghlxwxcb.cn/news/detail-426991.html
到了這里,關(guān)于Linux:dperf---100Gbps開源壓力測(cè)試工具的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!