linux上的压力测试

1.用 pcap包回放的方法。


接触到的第一个工具是 tcpreplay,这时一个 linux上面 open source的测试工具集,主要的功能就是修改和回放 pcap包。和 tcpdump和 wiresharek这来抓包工具结合起来可以实现协议的存贮和回放。  
经过自己的试用,以及与其他 team同事的交流, tcpreplay对于 DPI的测试主要有下面的特点。
1.    可以对 pcap包进行预处理,比如修改其中的 mac, ip和 port等信息,由单独
的 tcpwrite来完成。这是一个很重要的功能,因为抓下来的包的这些信息并不一定适合回放的时候的环境。

2.    可以将 c/s两端的流从两个 NIC发出去,这个对于某些网关型的设备可能比较
由帮助。

 3.    可以在发送时指定网卡, IP等信息
4.    可以指定以多倍速来回放数据包,以产生更大的流量。

 5.    可以选择性的发部分包。


对于很多功能性的测试需求, tcpreplay应该能够基本满足要求。但是对于大流量的测试的时候也会发现一些局限。比如下面几个方面。
1.    无法直接 的 放大流量
目前来看, tcpreplay是通过加快回放速度的方法来加大流量,但是如果要很高的流量,比如接近 1Gbps,可能还是比较困难。
2.    无法 直接指定 多 IP, 如果要模拟大量的流量,来自不同的 client,可能做起
来还是不太方便。

 3.    无法直接混合多个 pcap 来同时回放, 或者将 pcap 和其它 协议混合 在一起
来发。因为对于性能测试来说,同时来发起混合的流量是很重要的。 tcprepaly目前是要求放到同一个 pcap文件里面,而 为了测试的灵活性,建议不同的协议放在不同的 pcap 里面,而不要把多个 协议的抓到一起,这样将来控制类型和比例都会比较困难 。    
当然,上面的三个限制也可以部分的通过外面的 wrap up脚本来改善,通过脚本来起多个 tcpreplay来放大。不过没有试过这样可以起到多大的流量,已经稳定性如何。


对于很多功能性的测试需求, tcpreplay应该能够基本满足要求。但是对于大流量的测试的时候也会发现一些局限。比如下面几个方面。
1.    无法直接 的 放大流量
目前来看, tcpreplay是通过加快回放速度的方法来加大流量,但是如果要很高的流量,比如接近 1Gbps,可能还是比较困难。
2.    无法 直接指定 多 IP, 如果要模拟大量的流量,来自不同的 client,可能做起
来还是不太方便。 3.    无法直接混合多个 pcap 来同时回放, 或者将 pcap 和其它 协议混合 在一起
来发。因为对于性能测试来说,同时来发起混合的流量是很重要的。 tcprepaly目前是要求放到同一个 pcap文件里面,而 为了测试的灵活性,建议不同的协议放在不同的 pcap 里面,而不要把多个 协议的抓到一起,这样将来控制类型和比例都会比较困难 。    
当然,上面的三个限制也可以部分的通过外面的 wrap up脚本来改善,通过脚本来起多个 tcpreplay来放大。不过没有试过这样可以起到多大的流量,已经稳定性如何。

ixia:网络收发、网络流量测试工具


你可能感兴趣的:(计算机基础,C/C++)