首页 > *nix技术, 内核技术, 跟踪调试 > 利用pktgen发包工具做性能测试(续)

利用pktgen发包工具做性能测试(续)

2012年3月3日 发表评论 阅读评论 9,432 次浏览

最近在真实机器上测试了一下pktgen发包工具的性能,使用的pktgen来之:http://tslab.ssvl.kth.se/pktgen/,在Linux 2.6.37的内核上进行测试,原生pktgen源码为:http://tslab.ssvl.kth.se/pktgen/patches/net-next-v2.6.37/pktgen_rx.tgz,另外我对它做了一些改动,最主要的改动是可以将同一个网口按队列绑定到多个cpu上,收包也改成按网口分别统计。

基本软硬件环境为:Linux kernel 2.6.37 x86-64,ixgbe-3.8.21,4核心E5504(2.00GHz)的至强CPU,开启超线程后8个CPU线程,DDR3 1333 4G的内存,2个82599EB。

pktgen设置为“”clone_skb 0″、pkt_size 60″、”count 0″、”delay 0″”,两个万兆网口(eth0,eth1)设置为混杂模式并用光纤对接,加载ixgbe驱动后,网口自动按系统当前CPU线程数分为8个收发队列(eth0-TxRx-0、…、eth0-TxRx-7,eth1-TxRx-0、…、eth1-TxRx-7),将每一个收发队列绑定到一个CPU线程(cpu0处理eth0-TxRx-0和eth1-TxRx-0的收发、cpu1处理eth0-TxRx-1和eth1-TxRx-1的收发、…、cpu7处理eth0-TxRx-7和eth1-TxRx-7的收发),双向发收数据包(eth0和eth1同时发送和接收)。

测试结果:双向400Wpps,即eth0和eth1各自同时发送200Wpps,接收200Wpps,mpstat看到的cpu占用为 %sys/35.00,%soft/65.00,%idle/0.00。这是未做任何优化情况下的测试结果,额,貌似合符理论逻辑。

其它链接:
ftp://robur.slu.se/pub/Linux/bifrost/seminars/workshop-2011-03-31/
http://robur.slu.se/Linux/
http://caia.swin.edu.au/genius/tools/kute/

转载请保留地址:http://www.lenky.info/archives/2012/03/1201http://lenky.info/?p=1201


备注:如无特殊说明,文章内容均出自Lenky个人的真实理解而并非存心妄自揣测来故意愚人耳目。由于个人水平有限,虽力求内容正确无误,但仍然难免出错,请勿见怪,如果可以则请留言告之,并欢迎来讨论。另外值得说明的是,Lenky的部分文章以及部分内容参考借鉴了网络上各位网友的热心分享,特别是一些带有完全参考的文章,其后附带的链接内容也许更直接、更丰富,而我只是做了一下归纳&转述,在此也一并表示感谢。关于本站的所有技术文章,欢迎转载,但请遵从CC创作共享协议,而一些私人性质较强的心情随笔,建议不要转载。

法律:根据最新颁布的《信息网络传播权保护条例》,如果您认为本文章的任何内容侵犯了您的权利,请以Email或书面等方式告知,本站将及时删除相关内容或链接。

  1. lenky
    2013年7月14日16:27 | #1

    @jia
    如果我没记错的话,当时我改的是脚本。

  2. jia
    2013年7月14日10:57 | #2

    你好,请问“另外我对它做了一些改动,最主要的改动是可以将同一个网口按队列绑定到多个cpu上,收包也改成按网口分别统计。” 您是如何改动的,是改动/proc/irq/40/smp_affinity之类的值么

  3. lenky
    2013年2月6日12:00 | #3

    用pktgen?这个我还真搞忘记当时最终到了什么程度。
    不过要到1000Wpps应该还是可以的,比如这个:http://info.iet.unipi.it/~luigi/netmap/

  4. abc
    2013年2月6日11:27 | #4

    双向400Wpps,即eth0和eth1各自同时发送200Wpps,接收200Wpps。
    这一段数字,400W,那也就是4Mpps了,最大流量不超过4G的样子。
    你们有做到超过4g流量以上的吗?大概8G左右,也就是要在10多Mpps的样子。

  1. 本文目前尚无任何 trackbacks 和 pingbacks.