Linux環境下使用tc工具模擬延時和丟包
前言
在性能測試過程中,我們還需要模擬網絡異常的情況下,是否會出現一些異常數據。最常見的就是寫庫操作,比如說我們下單的場景,如果出現網絡異常的時候是否會出現數據對不上這種情況。
如我們JMeter發送成功的請求數量和最終數據庫表中存入下單的數據對不上,通常在網絡異常的情況下會出現這種情況,因為通常很多框架都會存在重試的功能,比如APP在向服務端發送網絡請求,那麼在這個請求的過程中網絡不穩定,一直沒有得到響應,那麼APP會重試,但是出現這種情況下,我們就需要考慮是否會出現重復下單,生成兩筆訂單的情況。通常我們服務端通常會有一定的機制處理這種情況,但是我們需要去測試服務端這種機制是否生效。
tc工具的介紹
通常我們是在應用服務器上使用tc工具模擬網絡丟包。tc工具是工作在服務端的,是專門針對網卡來進行一些相關的策略的。比如當我們請求傳到網卡的時候,其實這個時候請求還沒有到程序裡面,那我們可以在網卡出來的時候加長延時時間或者丟包。
Linux中模擬延時和丟包
在模擬丟包之前,我們現在看一下我們機器的網卡,可以看到我們的網卡是 eth0
然後我現在在本機上ping我們的應用服務器,確認網絡正常。
1、此時我們設置延時,其中 eth0 是我們的網卡名稱,下面的命令實現瞭給 eth0 口發包時添加 30ms 的延時。
tc qdisc add dev eth0 root netem delay 30ms
設置延時之後,此時我們可以看到時間已經在40ms左右瞭。
2、顯示延時的設置
3、修改延時
tc qdisc change dev eth0 root netem delay 40ms
4、刪除延時配置
tc qdisc del dev eth0 root netem delay 40ms
可以看到刪除延時之後,時間有恢復在10ms左右瞭。
模擬丟包
1、設置丟包
tc qdisc add dev eth0 root netem loss 10%
再看可以發現已經出現丟包的情況瞭
如果你是通過 SSH 登陸設備進行配置丟包的話,配置完這條命令就會感覺到機器訪問時有點一卡一卡的。這說明,設備已經開始丟包瞭,可以通過具體抓包查看。
其他諸如修改、查看、刪除的命令,都可以參考上面延時的設置。
到此這篇關於Linux環境下模擬延時和丟包實現之tc工具的文章就介紹到這瞭,更多相關linux模擬延時和丟包tc內容請搜索GuideAH以前的文章或繼續瀏覽下面的相關文章,希望大傢以後多多支持GuideAH!
閱讀更多:
- 如何使用SecureCRT連接虛擬機中的Linux?
- Linux遠程管理及權限命令詳解
- Linux禁止ping或允許ping的設置方法
- linux/ubuntu系統怎麼安裝百度網盤? linux百度網盤安裝圖文教程
- Linux dd命令詳解:數據備份,並在備份過程中進行格式轉換案例