trex是cisco开发的一个基于dpdk的发包工具,支持状态化和无状态化的发包,这里我们主要测试二层转发性能,使用的是无状态化发包。

安装

wget https://trex-tgn.cisco.com/trex/release/v2.81.tar.gz tar zxf v2.81.tar.gz mv v2.81 /opt/trex cat > /etc/trex_cfg.yaml <<EOF - port_limit : 2 version : 2 interfaces : ["18:00.0", dummy] c: 1 port_info: - dest_mac : "fa:16:3e:d1:4f:67" EOF

trex必须使用成对的接口,如果只有一个网卡,可以把第二个网卡写成dummy。

dest_mac是目标机器的mac地址。

运行trex测试目标机器

运行trex
cd /opt/trex ./t-rex-64 -i

打开另一个终端,使用trex-console连接上trex,如下:
cd /opt/trex ./trex-console

发送大小为64bytes的数据包。
trex>start -m 90% -d 60 -t vm=cached,size=64 -f stl/bench.py

  • -m 表示使用多大的带宽,对于10G网卡,90%表示发送9G左右的流量。
  • -d 测试时间,60秒后自动停止发包。
  • -f 指定脚本,脚本用于构造发送什么样的数据。
  • -t 这些参数会传给 -f 参数所指定的脚本,对于 stl/bench.py 我们可以使用 size 指定数据包大小。

测试示

拓扑

trex(ens1f9) <—-> compute06 (ens2f0)

在compute06上运行testpmd,命令如下
testpmd -l 10-11 -w 0000:af:00.0 -- -i --forward-mode=macswap --auto-start

在trex-console里执行
trex>start -m 99% -d 60 -t vm=cached,size=64 -f stl/bench.py

在测试过程中,可以在trex-console里使用stats查看测试结果,如下


使用trex测试网络性能


Tx pps和Rx pps 表示发送和接收pps。

opackets和ipackets表示发送和接收的数据包个数。


关于九州云99Cloud


九州云成立于2012年,是中国早期从事开放基础架构服务的专业公司。公司成立八年,秉承“开源 · 赋能变革”的理念,不断夯实自身实力,先后为政府、金融、运营商、能源、制造业、商业、交通、物流、教育、医疗等各大行业的企业级客户提供高质量的开放基础架构服务。目前拥有国家电网、南方电网广东公司、中国人民银行、中国银联、中国移动、中国电信、中国联通、中国资源卫星、eBay、国际陆港集团、中国人寿、万达信息、东风汽车、诺基亚等众多重量级客户,被用户认可为最值得信赖的合作伙伴。

使用trex测试网络性能