在工做中遇到了製造延遲測試
tc qdisc add dev eth1 root netem delay 600msip
測試部須要的場景比較特殊,只針對核心與組件之間延遲,對於普通設備等不作延遲。還須要保存延遲配置重啓不失效ci
具體的作法是加過濾限制,只針對核心通訊的組件進行延遲,組件自己作延遲。get
針對不一樣設備,加到平臺配置層裏面io
核心網上具體的配置
將
tc qdisc add dev eth1 root handle 1: prio priomap 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
tc qdisc add dev eth1 parent 1:2 handle 20: netem delay 600ms
tc filter add dev eth1 parent 1:0 protocol ip u32 match ip dst 192.168.69.23 flowid 1:2
tc filter add dev eth1 parent 1:0 protocol ip u32 match ip dst 192.168.69.24 flowid 1:2
寫在/etc/rc.d/rc.local裏面 其中192.168.69.23,24是組件ip eth1是核心對外網卡class
組件設備上的具體配置
將
cd /tcdir && chmod 777 tc
./tc qdisc add dev eth1 root netem delay 600ms配置
寫在/opt/local/sbin/osscripts/OSStart 腳本中 其中 tcdir是tc文件所在的目錄(不要放在root下) ,eth1是組件對外網卡network
tc qdisc del dev eth1 root #刪除以前的延遲配置
tc也能夠針對端口作限制
以上參考
https://stackoverflow.com/questions/40196730/simulate-network-latency-on-specific-port-using-tcmap