效能場景之網路模擬
模擬網路狀況的有很多種,這裡說的是Linux上的TC工具。
什麼是TC
TC(traffic control)是Linux中的流量控制工具。它是通過控制netem來實現的網路場景模擬。該工具是直接對物理網絡卡生效的,如果是邏輯網絡卡,則該控制無效。如果是用的虛擬機器,可視虛擬網絡卡為物理網絡卡。
什麼是HTB
HTB是Hierarchy Token Bucket的縮寫。通過在實踐基礎上的改進,它實現了一個豐富的連線共享類別體系。使用HTB可以很容易地保證每個類別的頻寬,雖然它也允許特定的類可以突破頻寬上限,佔用別的類的頻寬。HTB可以通過TBF(Token Bucket Filter)實現頻寬限制,也能夠劃分類別的優先順序。
TC使用步驟
要對網絡卡進行流量控制的配置,需要進行如下的步驟:
-
為網絡卡配置一個佇列;
-
在該佇列上建立分類;
-
根據需要建立子佇列和子分類;
-
為每個分類建立過濾器;
-
建立與過濾器配合的路由表;
操作例項
正常情況下的網路表現
產生流量的語句: server端:
Client端:
產生的結果:
Server端:

Client端:
做了多遍,都和上面的結果相似。5個執行緒加在一起每秒大概1Gbits左右。
模擬丟包
模擬命令

丟包率與頻寬的關係
模擬延遲
模擬命令
延遲與頻寬的關係
HTB佇列分層限制
分類配置

限流效果
測試手段從A機往B機用iperf開5個執行緒發資料包。



有很多種手段可以模擬網路丟包、延遲、限流的情況,大家可以自行探索。