[转帖]网络转发性能测试方法 ( l3fwd, ovs-dpdk )

网络,转发,性能,测试方法,l3fwd,ovs,dpdk · 浏览次数 : 0

小编点评

**l3fwd脚本 (1,2,4,6,8 cores)** ``` l3fwd scripts (1,2,4,6,8 cores) { # Configure the OVS to support DPDK ports /usr/local/bin/ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=truesudo -E ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-extra=\"-w 0000:05:00.0 -w 0000:05:00.1\" # Configure OVS to work with 1G hugespages SOCK_MEM=1024 /usr/local/bin/ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=\"$SOCK_MEM\" # Set the OVS core mask and service mask OVS_CORE_MASK=0xff00 OVS_SERVICE_MASK=0x1 # Set other OVS parameters for DPDK /usr/local/bin/ovs-vsctl --no-wait set Open_vSwitch . other_config:n-rxq=4 /usr/local/bin/ovs-vsctl --no-wait set Open_vSwitch . other_config:n-txq=4 } ``` **l3fwd脚本 (all cores)** ``` l3fwd scripts (1,2,4,6,8 cores) { # Configure the OVS to support DPDK ports /usr/local/bin/ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=truesudo -E ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-extra=\"-w 0000:05:00.0 -w 0000:05:00.1\" # Configure OVS to work with 1G hugespages SOCK_MEM=1024 /usr/local/bin/ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=\"$SOCK_MEM\" # Set the OVS core mask and service mask OVS_CORE_MASK=0xff00 OVS_SERVICE_MASK=0x1 # Set other OVS parameters for DPDK /usr/local/bin/ovs-vsctl --no-wait set Open_vSwitch . other_config:n-rxq=4 /usr/local/bin/ovs-vsctl --no-wait set Open_vSwitch . other_config:n-txq=4 /usr/local/bin/ovs-vsctl set Interface dpdk0 options:n_rxq=4 /usr/local/bin/ovs-vsctl set Interface dpdk1 options:n_rxq=4 /usr/local/bin/ovs-vsctl set Interface dpdk0 options:n_txq=4 /usr/local/bin/ovs-vsctl set Interface dpdk1 options:n_txq=4 } ```

正文

https://aijishu.com/a/1060000000212215

 

 

1 简介

本文记录l3fwd和ovs-dpdk性能测试中用到的关键脚本。

2 测试拓扑

l3fwd测试拓扑

dpdk1.png

ovs-dpdk测试拓扑

ovs1.png

3 测试步骤

设置大页内存

#set hugepage
umount /dev/hugepages
echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
mount -t hugetlbfs none /dev/hugepages -o pagesize=2MB

l3fwd测试脚本(分别测试1,2,4,6,8 cores)

#l3fwd scripts (1,2,4,6,8 cores):
sudo /home/ubuntu/mlx_ovs/dpdk-19.11/examples/l3fwd/build/l3fwd -l 15 -n 1 -w 0000:05:00.0 -w 0000:05:00.1 -- -p 0x3 --config="(0,0,15),(1,0,15)" --no-numa
sudo /home/ubuntu/mlx_ovs/dpdk-19.11/examples/l3fwd/build/l3fwd -l 13,15 -n 1 -w 0000:05:00.0 -w 0000:05:00.1 -- -p 0x3 --config="(0,0,13),(1,0,15)" --no-numa
sudo /home/ubuntu/mlx_ovs/dpdk-19.11/examples/l3fwd/build/l3fwd -l 9,11,13,15 -n 1 -w 0000:05:00.0 -w 0000:05:00.1 -- -p 0x3 --config="(0,0,9),(0,1,11),(1,0,13),(1,1,15)" --no-numa
sudo /home/ubuntu/mlx_ovs/dpdk-19.11/examples/l3fwd/build/l3fwd -l 12,9,10,11,13,15 -n 1 -w 0000:05:00.0 -w 0000:05:00.1 -- -p 0x3 --config="(0,0,12),(0,1,9),(0,2,10),(1,0,11),(1,1,13),(1,2,15)" --no-numa
sudo /home/ubuntu/mlx_ovs/dpdk-19.11/examples/l3fwd/build/l3fwd -l 8,9,10,11,12,13,14,15 -n 1 -w 0000:05:00.0 -w 0000:05:00.1 -- -p 0x3 --config="(0,0,8),(0,1,9),(0,2,10),(0,3,11),(1,0,12),(1,1,13),(1,2,14),(1,3,15)" --no-numa

ovs-dpdk测试脚本 (8 cores)

#ovs-dpdk scripts (8 cores):
#!/bin/sh

#STEP1: reset the ovs environment
sudo rm -rf /usr/local/etc/openvswitch/conf.db
sudo rm -rf /usr/local/var/run/openvswitch/vhost-user1
sudo rm -rf /usr/local/var/run/openvswitch/vhost-user2
sudo rm -f /tmp/conf.db

#STEP2: Specify the initial Open vSwitch (OVS) database to use
sudo mkdir -p /var/log/openvswitch
sudo mkdir -p /usr/local/etc/openvswitch
sudo mkdir -p /usr/local/var/run/openvswitch
sudo /usr/local/bin/ovsdb-tool create /usr/local/etc/openvswitch/conf.db /usr/local/share/openvswitch/vswitch.ovsschema
sudo /usr/local/sbin/ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,Open_vSwitch,manager_options --pidfile --detach --log-file=/var/log/openvswitch/ovs-vswitchd.log
export DB_SOCK=/usr/local/var/run/openvswitch/db.sock

#STEP3: Configure the OVS to support DPDK ports
sudo /usr/local/bin/ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
sudo -E  ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-extra="-w 0000:05:00.0 -w 0000:05:00.1"

#STEP4: Configure OVS to work with 1G hugespages
export SOCK_MEM=1024
sudo /usr/local/bin/ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem="$SOCK_MEM"
export OVS_CORE_MASK=0xff00
# For the OVS_CORE_MASK value:
# 2core = 0xa000, 4core =0x8888, 8core = 0xaaaa, 12core=0xfff0

export OVS_SERVICE_MASK=0x1
sudo /usr/local/bin/ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-lcore-mask=$OVS_SERVICE_MASK
sudo /usr/local/bin/ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask=$OVS_CORE_MASK
#sudo /usr/local/bin/ovs-vsctl --no-wait set Open_vSwitch . other_config:n-rxq=1
#sudo /usr/local/bin/ovs-vsctl --no-wait set Open_vSwitch . other_config:n-txq=1
sudo /usr/local/sbin/ovs-vswitchd unix:$DB_SOCK --pidfile --detach -c $OVS_CORE_MASK --log-file=/var/log/openvswitch/ovs-vswitchd.log

sudo /usr/local/bin/ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev
sudo /usr/local/bin/ovs-vsctl add-port br0 dpdk0 -- set Interface dpdk0 type=dpdk options:dpdk-devargs=0000:05:00.0
sudo /usr/local/bin/ovs-vsctl add-port br0 dpdk1 -- set Interface dpdk1 type=dpdk options:dpdk-devargs=0000:05:00.1
sudo /usr/local/bin/ovs-vsctl set Interface dpdk0 options:n_rxq=4
sudo /usr/local/bin/ovs-vsctl set Interface dpdk1 options:n_rxq=4
sudo /usr/local/bin/ovs-vsctl set Interface dpdk0 options:n_txq=4
sudo /usr/local/bin/ovs-vsctl set Interface dpdk1 options:n_txq=4

sudo /usr/local/bin/ovs-ofctl del-flows br0
# because the SUT(server under test) is connected with Ixia by using switch, so the destination MAC address of packets are needed to be updated.
sudo /usr/local/bin/ovs-ofctl add-flow br0 -O OpenFlow13 table=0,in_port=1,actions=mod_dl_dst:02:00:00:00:00:00,output:2
sudo /usr/local/bin/ovs-ofctl add-flow br0 -O OpenFlow13 table=0,in_port=2,actions=mod_dl_dst:02:00:00:00:00:01,output:1
sudo /usr/local/bin/ovs-vsctl --no-wait set Open_vSwitch . other_config:emc-insert-inv-prob=1

l3fwd Ixia配置

l3fwd1.png
l3fwd2.png
l3fwd3.png
l3fwd4.png

ovs-dpdk Ixia配置

ovs1.png
ovs2.png
ovs3.png
ovs4.png

与[转帖]网络转发性能测试方法 ( l3fwd, ovs-dpdk )相似的内容:

[转帖]网络转发性能测试方法 ( l3fwd, ovs-dpdk )

https://aijishu.com/a/1060000000212215 1 简介 本文记录l3fwd和ovs-dpdk性能测试中用到的关键脚本。 2 测试拓扑 l3fwd测试拓扑 ovs-dpdk测试拓扑 3 测试步骤 设置大页内存 #set hugepage umount /dev/huge

[转帖]网络传输性能netperf测试方法和下载

简介 Netperf是一种网络性能的测试工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。 Netperf工具以client/server

[转帖]如何利用wrarp测试oss性能?

https://zhuanlan.zhihu.com/p/529735003 前言 我们利用mino与ceph rgw搭建好的oss经过多层网络转发,传输速度必定有所折损,这个时候我们使用wrap来测试oss对象存储的真实性能。 利用wrarp测试oss性能 wrarp是minio项目下的一个开源测

[转帖]netperf - 网络测试工具

1. 概述 Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能

[转帖]性能测试:关键性能指标与性能分析

关键指标 应用性能指标 响应时间(Response Time): 指从客户端发送一个请求开始计时,到客户端接收到从服务器端返回的响应结果结束所经历的所有时间。响应时间组成:请求发送时间、网络传输时间和服务器处理时间三部分组成。响应时间越短越好,目前接受的时间是2/5/8秒。 吞吐量(Throughp

[转帖]性能调优要根据自己的情况逐渐调整,往往结合系统监控和性能压力测试一起进行。不可不调,不可乱调。

你可以在https://www.kernel.org/doc/html/latest/admin-guide/sysctl/index.html 官方去看也有文档 性能调优有两个原则:遵从由上之下,木板补板的原则。 性能调优遵循由上至下的原则。 业务逻辑->缓存服务器->调度器->网络容器->中间件

[转帖]【dperf系列-5】使用dperf进行性能测试(初级)

https://zhuanlan.zhihu.com/p/451341132 dperf是一款高性能的开源网络压力测试仪,是Linux基金会旗下的DPDK官方生态项目。本文介绍如利用dperf在两台物理服务器之间互打http流量进行基本性能测试:每秒新建连接数、并发连接数、带宽、PPS。本次测试示例

[转帖]linux下性能测试工具netperf使用

https://www.shuzhiduo.com/A/MyJxX2VpJn/ 一、功能简介 netperf是一款针对网络性能的测试工具,主要基于TCP或UDP的传输。根据应用的不同,可以进行批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式的

[转帖]Linux性能优化(八)——网络测试工具

Linux性能优化(八)——网络测试工具 https://blog.51cto.com/u_9291927/2594146 一、ping 1、ping简介 PING是一个网络工具,用来测试与网络主机俄连通性。PING通过发送ICMP ECHO_REQUEST数据包到网络主机,并显示响应情况,程序会按

[转帖]NTTTCP 网络性能工具使用方法

在两个实例上安装 NTttcp 网络基准测试工具 连接到两个 Windows 实例中的每个实例,然后按照下列步骤操作: 从 Microsoft TechNet 网站下载 NTttcp 。 将该文件的内容解压到一个文件夹。 使用管理员权限打开命令提示符窗口,然后将目录切换到解压 NTttcp 网络基准