关于dpdk:dperf系列5使用dperf进行性能测试

通过后面的筹备,dperf曾经运行起来了,本文阐明用dperf如何进行性能测试。 未完待续

December 26, 2021 · 1 min · jiezi

关于dpdk:dperf系列4dperf快速上手

这是一篇dperf的编译领导,并且做一个http-server的试验,帮忙您疾速上手。 筹备工作环境要求操作系统:CentOS 7.9(举荐)或者 内核4.x/5.x内存:>= 16GB(举荐)网口:两个(两个VF也能够)CPU核数/线程数:>= 2DPDK:版本19.11或20.11已编译实现(编译办法参考之前的文章)配置大页编辑/boot/grub2/grub.cfg linux16 /vmlinuz-xxx ... nopku transparent_hugepage=never default_hugepagesz=1G hugepagesz=1G hugepages=8留神: vmware虚拟机中要设置nopku,物理机能够疏忽;如果服务器内存比拟多,hugepages能够设置更大,实在场景倡议设置40G以上。配置大页后,须要重启失效dpdk绑定网卡Mellanox网卡无需此操作,能够跳过本节。 DPDK-19.11绑定网卡modprob uio#ARM环境下,目录有差异insmod /root/dpdk-stable-19.11.10/x86_64-native-linuxapp-gcc/kmod/igb_uio.koDPDK-20.11绑定网卡modprob uioinsmod /root/dpdk-kmods/linux/igb_uio/igb_uio.ko编写配置文件试验启动dperf客户端申请敞开dperf

December 25, 2021 · 1 min · jiezi

关于dpdk:dperf系列3如何编译DPDK2011

dperf是百度近日开源的基于DPDK与用户态协定栈技术的一款高性能HTTP压测工具。本文领导DPDK老手们如何胜利迈出应用dperf的第一步:编译DPDK。DPDK大牛可疏忽此文或者看一眼build.md即可。 筹备工作操作系统:举荐CentOS 7.9,内核版本4.X,5.X也能够,低版本内核反对Mellanox驱动比拟麻烦DPDK下载:dpdk-20.11.2igb_uio驱动下载地址:http://git.dpdk.org/dpdk-kmods 装置编译工具: yum install meson ninja-build查看网卡厂商与驱动型号(命令参考): lspci | grep Ethernetethtool -i eth0Mellanox网卡驱动编译(可选)参考【dperf系列-2】如何编译DPDK-19.11 配置与编译DPDKcd /root/dpdk/dpdk-stable-20.11.2#dperf不必kni,能够不必-Denable_kmods=truemeson build --prefix=/root/dpdk/dpdk-stable-20.11.2/mydpdk -Denable_kmods=trueninja -C build install编译igb_uio.kocd /root/dpdk-kmods/linux/igb_uiomake#编译后果是igb_uio.ko

December 25, 2021 · 1 min · jiezi

关于dpdk:dperf系列2如何编译DPDK1911

dperf是百度近日开源的基于DPDK与用户态协定栈技术的一款高性能HTTP压测工具。本文领导DPDK老手们如何胜利迈出应用dperf的第一步:编译DPDK。DPDK大牛可疏忽此文或者看一眼build.md即可。 因为从DPDK-20开始,编译有较大的变动,DPDK编译系列分为两篇文章介绍。本篇文章介绍DPDK-19.11编译,DPDK-19以前版本的编译办法与DPDK-19.11雷同;另一篇文章介绍DPDK-20.11编译。 筹备工作操作系统:举荐CentOS 7.9,内核版本4.X,5.X也能够,低版本内核反对Mellanox驱动比拟麻烦DPDK:下载DPDK-19.11.10 查看网卡厂商与驱动型号(命令参考): lspci | grep Ethernetethtool -i eth0Mellanox网卡驱动编译(可选)如果网卡不是Mellanox的,请跳过本节。下载社区驱动rdma-core-stable-v22编译 cd /root/rdma-core-stable-v22/build.sh设置环境变量 RDMA_CORE_BUILD_DIR=/root/rdma-core-stable-v22/buildexport C_INCLUDE_PATH=$RDMA_CORE_BUILD_DIR/includeexport LIBRARY_PATH=$RDMA_CORE_BUILD_DIR/libexport LD_LIBRARY_PATH=$RDMA_CORE_BUILD_DIR/lib配置DPDK编辑config/common_base,视状况开启如下开关 #应用Mellanox网卡:CONFIG_RTE_LIBRTE_MLX5_PMD=y#应用华为网卡:CONFIG_RTE_LIBRTE_HNS3_PMD=yCONFIG_RTE_LIBRTE_HINIC_PMD=y#KVM虚拟机CONFIG_RTE_VIRTIO_USER=y#vmware虚拟机CONFIG_RTE_LIBRTE_VMXNET3_PMD=y编译DPDK#X86处理器上编译DPDKmake install T=x86_64-native-linuxapp-gcc -j16#ARM64处理器编译DPDKmake install T=arm64-armv8a-linuxapp-gcc -j16

December 25, 2021 · 1 min · jiezi

关于dpdk:dperf系列1dperf是什么一款开源的千万级HTTP-CPS压测工具

dperf是一款面向四层网关(如四层负载平衡,L4LB)的高性能的压测工具。近日已由百度开源,依照apache license v2公布。 通常,对四层负载平衡的测试都要用商用测试仪。如思博伦、IXIA等,价格差不多是1 HTTP CPS = 1RMB。对于网络设备厂商来说,商用测试仪是标配;然而对于很多科研单位的研究者来说,买一个思博伦是不太事实的;据我理解,很多互联网厂家也不太喜爱买商用测试仪,苦了一堆做网关的开发者。 我也是被逼得没方法,就写了一个测试仪,毕竟这是一个掉头发的事件,当初悔恨也来不及了,不说也罢。 dperf基于dpdk实现的,外面有一个高度优化、高度定制的TCP协定栈(前面再写文章介绍),实际上是一个超级简略的TCP协定栈,简单的协定栈咱也写不进去;不过外面的优化是做的能够的,也有专利技术(还没批下来),前面细说。 dperf新建性能确实很强。用两个核,一个核运行dperf客户端,一个核运行dperf服务器,在X86(Intel(R) Xeon(R) Silver 4214)上可能测出230万HTTP CPS新建,在鲲鹏902上能够测出210万。如果用ab去测试nginx,CPS只有2.5万,性能相差1百倍。 dperf并发也很强。因为dperf一个连贯只耗费了64个字节,nginx可能要耗费64K,四层负载平衡可能要耗费几百个字节。对于dperf来说,几十个亿的并发几乎就是小菜一碟。 dperf的带宽受制于网卡。带宽这个事就不是个事,上个好的网卡就能够了。 下面的这些性能,都不是我最喜爱的,因为性能太强了,很多时候用不上,花了很多工夫去优化,白白掉了很多头发不说,也就义了很多陪娃的工夫。 dperf有一项我最喜的性能:重传统计(丢包统计)。对传统tcp协定栈来说,丢个包是失常的,丢了就丢了,重传一个呗。这怎么能够呢,我预计第一个不批准的是做交换机的敌人,第二个不批准的是做四层负载平衡的敌人,哪里都能够丢包,我这里就是不能,丢包的锅我不能背。dperf也认为重传是不对的,它把重传做了计数,同门通过重传计数,就可能实时观测到,链路上是否丢包了,如果丢包了,再去看交换机,被测设施等,如果测试下来,没有丢一个包,那就妥妥的了。 用Linux协定栈上工具(ab, wrk)做性能测试敌人就没方法测出丢包数,糊里糊涂就过来了;如果你切实是看不惯,就是要和丢包过不过来,就试用一下dperf做测试吧。 如果你曾经开始应用了dperf,请通知我,在应用dperf的过程中有什么问题,请在dperf的issue上提问题,也能够给我发邮件,谢谢。 我的项目以后是110个star。圣诞节许个愿,我心愿dperf在2022年可能达到1000个star。祝大家圣诞快乐。

December 25, 2021 · 1 min · jiezi

关于dpdk:阿里云用DPDK如何解决千万级流量并发

https://www.bilibili.com/vide...

December 2, 2020 · 1 min · jiezi

关于dpdk:高性能库DPDK精简理解

一、 前言 才开始接触到DPDK,发现概念很多,很难以下理解,在这文章中记录下要害的内容,做到对dpdk的根本货色真正理解了。 这样前面用它来写程序才可能顺利,不能赶进度啊,越赶进度反而可能越慢,慢慢来比拟快。 本文次要是本人了解,参考很多文章,有哪里不了解的就查,做不到精湛,只理解含意。 文章算是汇编,参考多篇文章,如有侵权,请告知,谢谢! 二、 整体了解 历史: 随着计算机核数的减少,网络带宽的减少,对主机进行网络包的解决性能要求越来越高,然而当初的操作系统对网络包解决的形式很低效。 低效体现在: 1)网络数据包来了之后通过中断模式进行告诉,而cpu解决中断的能力是肯定的,如果网络中有大量的小数据包,造成了网络的拥挤,cpu解决不及时。 【以前cpu的频率远高于网络设备,所以中断很无效】 2)操作系统的协定栈是单核解决,没方法利用当初操作系统的多核。 3)网络数据包从网卡到内核空间,再到用户空间,进行了屡次数据拷贝,性能比拟差。 DPDK 全称 Data Plane Development Kit 专一于数据面的软件开发套件,是专为Intel的网络芯片开发,运行于Linux和FreeBsd上。 DPDK扭转了传统的网络数据包的解决形式,在用户空间间接解决,图示如下: 传统VSDPDK抓包形式 三、 重要概念了解 这外面阐明DPDK文档外面的次要概念,另外如何将概念与理论的咱们本人的机器上参数对应起来。 3.1 PPS:包转发率 即1s能够发送多个frame、在以太网外面为以太帧,咱们常说的接口带宽为1Gbits/s 、10Gbits/s 代表以太接口可能传输的最高速率,单位为(bit per second 位/秒) 实际上,传输过程中,帧之间有间距(12个字节),每个帧后面还有前导(7个字节)、帧首界定符(1个字节)。 帧实践转发率= BitRate/8 / (帧前导+帧间距+帧首界定符+报文长度) 以太帧传输中构造 依照10Gbits/s (没记错的话是万兆光纤)来计算下64个字节下的包的转发率。 最短帧大小 101024102410241024/(12+7+1+64) 8 约等于 1000M10 /(12+7+1+64) *8 = 14.880952380952381 M/PPS (百万数据包) 也就是1s能够发送 1千400万个数据包。 留神,这外面的Data长度是在46-1500个字节之间,所以最小的帧的长度为 : 6+6+2+46+4 = 64个字节。 线速:网卡或网络反对的最极限速度。 汇总数据: ...

November 9, 2020 · 1 min · jiezi