因为要进行性能测试,但是在进行过程中发现当包足够小,发送速率(pps)达到一定程度的时候,是无法再提高包的发送速率的。因此,就有人推荐使用pktgen来进行尝试。通过搜索发现,这个东西有两种形式,一种是直接由linux系统自带的内核模块进行发包(也就是略过协议栈,直接控制发包),另一种是依赖于dpdk的pktgen,需要进行比较复杂的编译(它的编译比较复杂,至今我都没找到centos6对应的补丁从而成功编译pktgen),下面具体说说这两种应用,捋捋思路,看看踩过的坑,从而避免自己再犯同样的错误。
1 依赖内核模块的pktgen
1.1 使用
不多说,直接上命令,然后具体解释。
命令 |
解释 |
modprobe pktgen |
载入模块1)见下文 |
lsmod |grep -i pktgen |
查看是否成功加载 |
echo "add_device eth0" > /proc/net/pktgen/kpktgend_0 |
绑定设备 |
cat /proc/net/pktgen/eth0 |
查看绑定情况 |
cat /proc/net/pktgen/pgctrl |
查看命令 |
echo "min_pkt_size 64" > /proc/net/pktgen/eth0 |
设置最小的包大小 |
echo "max_pkt_size 9000" > /proc/net/pktgen/eth0 |