网络延迟-tc工具使用简单说明
12 Aug 2017
|
|
在工作中遇到了制造延迟
tc qdisc add dev eth1 root netem delay 600ms
测试部需要的场景比较特殊,只针对核心与组件之间延迟,对于普通设备等不做延迟。还需要保存延迟配置重启不失效
具体的做法是加过滤限制,只针对核心通信的组件进行延迟,组件本身做延迟。
针对不同设备,加到平台配置层里面
核心网上具体的配置 将
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
是核心对外网卡
组件设备上的具体配置 将
cd /tcdir && chmod 777 tc
./tc qdisc add dev eth1 root netem delay 600ms
写在/opt/local/sbin/osscripts/OSStart
脚本中 其中 tcdir是tc文件所在的目录(不要放在root下) ,eth1
是组件对外网卡
tc qdisc del dev eth1 root #删除之前的延迟配置
tc也可以针对端口做限制 以上参考 https://stackoverflow.com/questions/40196730/simulate-network-latency-on-specific-port-using-tc