Linux環(huán)境下使用tc工具模擬延時(shí)和丟包

前言
在性能測(cè)試過程中,我們還需要模擬網(wǎng)絡(luò)異常的情況下,是否會(huì)出現(xiàn)一些異常數(shù)據(jù)。最常見的就是寫庫(kù)操作,比如說(shuō)我們下單的場(chǎng)景,如果出現(xiàn)網(wǎng)絡(luò)異常的時(shí)候是否會(huì)出現(xiàn)數(shù)據(jù)對(duì)不上這種情況。
如我們JMeter發(fā)送成功的請(qǐng)求數(shù)量和最終數(shù)據(jù)庫(kù)表中存入下單的數(shù)據(jù)對(duì)不上,通常在網(wǎng)絡(luò)異常的情況下會(huì)出現(xiàn)這種情況,因?yàn)橥ǔ:芏嗫蚣芏紩?huì)存在重試的功能,比如APP在向服務(wù)端發(fā)送網(wǎng)絡(luò)請(qǐng)求,那么在這個(gè)請(qǐng)求的過程中網(wǎng)絡(luò)不穩(wěn)定,一直沒有得到響應(yīng),那么APP會(huì)重試,但是出現(xiàn)這種情況下,我們就需要考慮是否會(huì)出現(xiàn)重復(fù)下單,生成兩筆訂單的情況。通常我們服務(wù)端通常會(huì)有一定的機(jī)制處理這種情況,但是我們需要去測(cè)試服務(wù)端這種機(jī)制是否生效。
tc工具的介紹
通常我們是在應(yīng)用服務(wù)器上使用tc工具模擬網(wǎng)絡(luò)丟包。tc工具是工作在服務(wù)端的,是專門針對(duì)網(wǎng)卡來(lái)進(jìn)行一些相關(guān)的策略的。比如當(dāng)我們請(qǐng)求傳到網(wǎng)卡的時(shí)候,其實(shí)這個(gè)時(shí)候請(qǐng)求還沒有到程序里面,那我們可以在網(wǎng)卡出來(lái)的時(shí)候加長(zhǎng)延時(shí)時(shí)間或者丟包。
Linux中模擬延時(shí)和丟包
在模擬丟包之前,我們現(xiàn)在看一下我們機(jī)器的網(wǎng)卡,可以看到我們的網(wǎng)卡是 eth0
然后我現(xiàn)在在本機(jī)上ping我們的應(yīng)用服務(wù)器,確認(rèn)網(wǎng)絡(luò)正常。
1、此時(shí)我們?cè)O(shè)置延時(shí),其中 eth0 是我們的網(wǎng)卡名稱,下面的命令實(shí)現(xiàn)了給 eth0 口發(fā)包時(shí)添加 30ms 的延時(shí)。
tc qdisc add dev eth0 root netem delay 30ms
設(shè)置延時(shí)之后,此時(shí)我們可以看到時(shí)間已經(jīng)在40ms左右了。
2、顯示延時(shí)的設(shè)置
3、修改延時(shí)
tc qdisc change dev eth0 root netem delay 40ms
4、刪除延時(shí)配置
tc qdisc del dev eth0 root netem delay 40ms
可以看到刪除延時(shí)之后,時(shí)間有恢復(fù)在10ms左右了。
模擬丟包
1、設(shè)置丟包
tc qdisc add dev eth0 root netem loss 10%
再看可以發(fā)現(xiàn)已經(jīng)出現(xiàn)丟包的情況了
如果你是通過 SSH 登陸設(shè)備進(jìn)行配置丟包的話,配置完這條命令就會(huì)感覺到機(jī)器訪問時(shí)有點(diǎn)一卡一卡的。這說(shuō)明,設(shè)備已經(jīng)開始丟包了,可以通過具體抓包查看。
其他諸如修改、查看、刪除的命令,都可以參考上面延時(shí)的設(shè)置。
到此這篇關(guān)于Linux環(huán)境下模擬延時(shí)和丟包實(shí)現(xiàn)之tc工具的文章就介紹到這了,更多相關(guān)linux模擬延時(shí)和丟包tc內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
- 最近遇到一些linux服務(wù)器的問題,需要使用到抓包分析。從這篇文章學(xué)了一些很實(shí)用的技巧。以此記錄2019-07-28
- 這篇文章主要介紹了Linux中tcpdump工具的應(yīng)用,tcpdump主要用于抓取網(wǎng)絡(luò)數(shù)據(jù)包,需要的朋友可以參考下2015-10-28
Linux補(bǔ)丁工具patch生成使用補(bǔ)丁用法示例
這篇文章主要介紹了Linux補(bǔ)丁工具patch生成使用補(bǔ)丁用法示例,本文講解了它的原理、用法,并舉例說(shuō)明,需要的朋友可以參考下2015-07-09Linux網(wǎng)絡(luò)抓包工具tcpdump超級(jí)詳解
這篇文章主要介紹了Linux網(wǎng)絡(luò)抓包工具tcpdump超級(jí)詳解,本文用超長(zhǎng)的篇幅講解了tcpdump的方方面,需要的朋友可以參考下2015-06-15