pktgen的使用

文档: Documentation/networking/pktgen.txt

有人测试的例子: http://kerrigan.sinaapp.com/post-8.html

                               http://people.kth.se/~danieltt/pktgen/


基本使用

1. 编译pktgen模块

选中 config NET_PKTGEN


2. 安装pktgen模块


modprobe pktgen


cd /proc/net/pktgen/


3. 添加测试设备


echo rem_device_all > kpktgend_0

echo add_device eth0 > kpktgend_0


4. 设置测试参数

测试参数通过eth0的设备接口来配置。


echo count 10000 > eth0

echo clone_skb 1000 > eth0

echo pkt_size 1500 > eth0

echo dst 10.11.11.101 > eth0

echo dst_mac 00:21:cc:60:5f:c8 > eth0


5. 启动

echo start > pgctrl


进一步解释


当内核加载了pktgen模块后,有几个/proc文件比较重要。


/proc/net/pktgen/pgctrl

这个整个模块的控制接口,只接受三个命令

stop

start

reset


/proc/net/pktgen/kpktgend_%d

pktgen模块在每个cpu上都有一个内核线程,该文件就对应了相应的内核线程。

读取该文件,显示对应内核线程的状态。

写该文件,可以控制对应内核线程。只接受两个命令,其实就是添加/删除设备。

add_device

rem_device_all


/proc/net/pktgen/eth0

当执行了add_device命令后,会出现一个和设备名字一样的proc文件。

读取该文件,获得相应的设备测试结果。

写该文件,则可以控制测试的条件。


网络观察分析


sar -n DEV 2 10

每间隔两秒,显示一次状态,一共显示10次。

09:32:12 AM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
09:32:12 AM      eth3      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:32:12 AM      eth7      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:32:12 AM    virbr1      0.00      0.00      0.00      0.00      0.00      0.00      0.00


影响网速的因素

1. packet size

min_pkt_size 从58 调到 1000, 网速从67Mb/s 增加到了 96Mb/s。

网卡本身是100Mb/s的。




你可能感兴趣的:(Linux,kernel,Network,Internal,Linux,kernel,module)