2020-04-27依賴的外部中間件系統(tǒng)模擬delay Timeout故障演練TC命令

背景

為了驗證系統(tǒng)的健壯性,非強依賴系統(tǒng)的故障不會影響主流程,驗證熔斷策略是否生效等情況。

TC命令作為linux 上的流量控制(traffic control)命令,比firewalld更適合進行網(wǎng)絡(luò)狀況模擬。

如下命令是我的模擬命令用來模擬Redis timeout時對系統(tǒng)的影響。

我對其實驗過程:

1、sudo tc qdisc add dev eth0 root handle 1: prio bands 4

2、sudo tc qdisc add dev eth0 parent 1:4 handle 40: netem delay 200ms? ? 這里設(shè)置delay時間

3、tc filter add dev eth0 parent 1:0 protocol ip? prio 1 u32 match ip dport 6379 0xffff flowid 1:4? ?這里是設(shè)置針對目標(biāo)端口

? ? ? sudo tc filter add dev eth0 parent 1:0 protocol ip? prio 1 u32 match ip dst yourip/24 flowid 1:4? 這里設(shè)置針對目標(biāo)IP

4、sudo tc filter show dev eth0? ? 確認(rèn)效果生效

5、tc filter del dev eth0 pref 4? ? ? 刪除配置的隊列


注釋:常用的命令解釋

tc 命令

刪除網(wǎng)卡隊列配置: tc qdisc del dev wlan0 root

filter列出來: tc -s filter show dev lo

刪除filter:? tc filter del dev lo pref 4

1

? ? ? ?tc qdisc add dev eth1 root handle 1: prio

? ? ? 為網(wǎng)卡eth1建議一個隊列,名字為root,句柄為1

? ? ? 可以利用下面這三個命令為根隊列1創(chuàng)建三個類別,分別是1:11、1:12和1:13,它們分別占用40、40和20mbit的帶寬。

2

? ? ? tc?class?add?dev?eth1 parent?1:?classid?1:11 htb?rate?40mbit?ceil?40mbit

? ? ? tc?class?add?dev?eth1 parent?1:?classid?1:12?htb?rate?40mbit?ceil?40mbit

? ? ? tc?class?add?dev?eth1 parent?1:?cllassid?1:13?htb?rate?20mbit?ceil?20mbit

? ? ? 查看當(dāng)前網(wǎng)卡上配過的流量控制規(guī)則

? ? ? ? ? #?tc[-s | -d ] qdisc show [ dev DEV ] ? ? ? ? ? ? ? tc -s qdisc show dev eth1?

? ? ? ? ? # tc[-s | -d ] class show dev DEV ?

? ? ? ? ? # sudo tc filter show dev eth0

? ? ? ? ? # tc -s -d qdisc ls

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容