性能场景之网络模拟

2018-11-29   出处:7DGroup  作/译者:高楼  

模拟网络状况的有很多种,这里说的是Linux上的TC工具。

什么是TC

TC(traffic control)是Linux中的流量控制工具。它是通过控制netem来实现的网络场景模拟。该工具是直接对物理网卡生效的,如果是逻辑网卡,则该控制无效。如果是用的虚拟机,可视虚拟网卡为物理网卡。

什么是HTB

HTB是Hierarchy Token Bucket的缩写。通过在实践基础上的改进,它实现了一个丰富的连接共享类别体系。使用HTB可以很容易地保证每个类别的带宽,虽然它也允许特定的类可以突破带宽上限,占用别的类的带宽。HTB可以通过TBF(Token Bucket Filter)实现带宽限制,也能够划分类别的优先级。

TC使用步骤

要对网卡进行流量控制的配置,需要进行如下的步骤: 

  1. 为网卡配置一个队列; 

  2. 在该队列上建立分类;

  3. 根据需要建立子队列和子分类; 

  4. 为每个分类建立过滤器; 

  5. 建立与过滤器配合的路由表;

操作实例

正常情况下的网络表现

产生流量的语句: server端:

Client端:


产生的结果:

Server端:


Client端:


做了多遍,都和上面的结果相似。5个线程加在一起每秒大概1Gbits左右。

模拟丢包

模拟命令


丢包率与带宽的关系


模拟延迟

模拟命令


延迟与带宽的关系


HTB队列分层限制

分类配置



限流效果

测试手段从A机往B机用iperf开5个线程发数据包。



限流效果

测试手段从A机往B机用iperf开5个线程发数据包。



欢迎给测试窝投稿或参与内容翻译工作,请邮件至editors@testwo.com。也欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,并与我们的编辑和其他窝友交流。
131°|1311 人阅读|0 条评论

登录 后发表评论
最新文章