使用DPDK l3fwd测试硬件吞吐性能
2017-02-23 18:42
1451 查看
操作系统版本:centOS6.4
DPDK版本:2.2.0
硬件设备:某硬件厂商,四颗物理CPU,16个万兆光口。
一:编译l3fwd
官网下载dpdk-2.2.0.tar.gz,解压 tar xvf dpdk-2.2.0.tar.gz
进入DPDK目录,cd dpdk-2.2.0/
首先编译x86_64-native-linuxapp-gcc,进入dpdk-2.2.0/tools,运行setup.sh,选择14 [14] x86_64-native-linuxapp-gcc,这一步是为了生成igb_uio.ko,和后续编译l2fwd/l3fwd准备。
编译完成后,进入dpdk-2.2.0/examples/l3fwd,运行make即可生成可执行文件l3fwd
二:运行l3fwd
编译完成后,并不能立即运行l3fwd,首先需要加载dpdk的驱动igb_uio.ko,配置大页内存的操作。
(1)加载igb_uio.ko,进入dpdk-2.2.0/x86_64-native-linuxapp-gcc/kmod,运行命令
modprobe uio
insmod igb_uio.ko
(2)配置大页内存:运行命令
mkdir -p /mnt/huge
mount -t hugetlfbs nodev /mnt/huge
echo 1024 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
可以通过cat /proc/meminfo 查看大页内存是否配置成功,另外也可以通过vi /etc/grub.conf来配置大页内存
(3)绑定网口,可以通过dpdk-2.2.0/tools/dpdk_nic_bind.py查看哪些网口被DPDK驱动使用,哪些被内核驱动使用,
可以看到igb_uio已经绑定了四个网口
可以运行l3fwd了,输入命令
./l3fwd -c fffffffffff -n4 -- -p 0xf -P --config="(0,0,1)(0,1,2)(1,0,8)(1,1,9)(2,0,16)(2,1,17)(3,0,24)(3,1,25)"
参数说明:该硬件设备有四个CPU socket,使四个网口绑定到四个不同的CPU socket上,每个网口起两个队列,绑定两个CPU的核。
注意:PCI插槽对应不同的socket,如果绑错了,会导致测试性能降低
也可以使用l3fwd进行一个网口的自发自收,命令:l3fwd -cff -n 4 -- -p0x1 -P --config=“(0,0,1),(0,1,2),(0,2,3),(0,3,4)”
三:打流量测试
本次测试使用思博伦测试仪,2544测试用例,使用万兆光口测试,连接到四个网口上。
思博伦配置说明:选择自发自收,因为之前网卡绑到了不同的CPU上,跨CPU转发包会导致测试性能降低。
测试结果,可以看到使用DPDK后,硬件转发报文的性能得到极大提升
DPDK版本:2.2.0
硬件设备:某硬件厂商,四颗物理CPU,16个万兆光口。
一:编译l3fwd
官网下载dpdk-2.2.0.tar.gz,解压 tar xvf dpdk-2.2.0.tar.gz
进入DPDK目录,cd dpdk-2.2.0/
首先编译x86_64-native-linuxapp-gcc,进入dpdk-2.2.0/tools,运行setup.sh,选择14 [14] x86_64-native-linuxapp-gcc,这一步是为了生成igb_uio.ko,和后续编译l2fwd/l3fwd准备。
编译完成后,进入dpdk-2.2.0/examples/l3fwd,运行make即可生成可执行文件l3fwd
二:运行l3fwd
编译完成后,并不能立即运行l3fwd,首先需要加载dpdk的驱动igb_uio.ko,配置大页内存的操作。
(1)加载igb_uio.ko,进入dpdk-2.2.0/x86_64-native-linuxapp-gcc/kmod,运行命令
modprobe uio
insmod igb_uio.ko
(2)配置大页内存:运行命令
mkdir -p /mnt/huge
mount -t hugetlfbs nodev /mnt/huge
echo 1024 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
可以通过cat /proc/meminfo 查看大页内存是否配置成功,另外也可以通过vi /etc/grub.conf来配置大页内存
(3)绑定网口,可以通过dpdk-2.2.0/tools/dpdk_nic_bind.py查看哪些网口被DPDK驱动使用,哪些被内核驱动使用,
可以看到igb_uio已经绑定了四个网口
可以运行l3fwd了,输入命令
./l3fwd -c fffffffffff -n4 -- -p 0xf -P --config="(0,0,1)(0,1,2)(1,0,8)(1,1,9)(2,0,16)(2,1,17)(3,0,24)(3,1,25)"
参数说明:该硬件设备有四个CPU socket,使四个网口绑定到四个不同的CPU socket上,每个网口起两个队列,绑定两个CPU的核。
注意:PCI插槽对应不同的socket,如果绑错了,会导致测试性能降低
也可以使用l3fwd进行一个网口的自发自收,命令:l3fwd -cff -n 4 -- -p0x1 -P --config=“(0,0,1),(0,1,2),(0,2,3),(0,3,4)”
三:打流量测试
本次测试使用思博伦测试仪,2544测试用例,使用万兆光口测试,连接到四个网口上。
思博伦配置说明:选择自发自收,因为之前网卡绑到了不同的CPU上,跨CPU转发包会导致测试性能降低。
测试结果,可以看到使用DPDK后,硬件转发报文的性能得到极大提升
相关文章推荐
- 在项目中使用Hibernate进行大数据量的性能测试,有一些总结(转贴)
- Apache自带的性能测试工具ab的使用
- 使用开源的Profiler来测试你的Java应用程序的性能
- 使用开源的Profiler来测试你的Java应用程序的性能
- 使用开源的Profiler来测试你的Java应用程序的性能
- 使用st对png服务器进行性能测试
- 用Apache JMeter进行性能测试之五(使用同步定时器元件)
- 使用开源的Profiler来测试你的Java应用程序的性能
- 使用Hibernate进行大数据量的性能测试
- sipp 在windows/linux下的安装和使用及性能测试
- plusMark(正号硬件性能测试器)
- 使用JMeter进行性能测试
- 在项目中使用Hibernate进行大数据量的性能测试,有一些总结
- 使用开源的Profiler来测试你的Java应用程序的性能
- 使用Eclipse性能测试插件TPTP改进你的程序(一)
- 使用JMeter测试JSP应用程序性能
- Remoting使用情况性能测试(二)
- 使用JMeter进行性能测试(压力测试)
- 使用开源的Profiler来测试你的Java应用程序的性能
- 用Apache JMeter进行性能测试之四(使用CSV元件)