所有网络请求增加20秒延迟
tc qdisc add dev ens33 root netem delay 20000ms
执行以下命令的服务器对来自172.16.120.10的网络请求会延迟180毫秒, 来自其他服务器的网络请求不受影响
tc qdisc del dev ens33 root # 清除之前的规则
tc qdisc add dev ens33 root handle 1: prio
tc filter add dev ens33 protocol ip parent 1: prio 1 u32 match ip dst 172.16.120.10 flowid 1:1
tc filter add dev ens33 protocol all parent 1: prio 2 u32 match ip dst 0.0.0.0/0 flowid 1:2
tc filter add dev ens33 protocol all parent 1: prio 2 u32 match ip protocol 1 0xff flowid 1:2
tc qdisc add dev ens33 parent 1:1 handle 10: netem delay 180000ms
tc qdisc add dev ens33 parent 1:2 handle 20: sfq
例如172.15.120.10是mysql主库,我想模拟从库无法获取binlog event的场景, 那么可以在从库执行以上命令
带端口的
tc qdisc del dev ens33 root
tc qdisc add dev ens33 root handle 1: prio
tc filter add dev ens33 protocol ip parent 1: prio 1 u32 match ip dst 172.16.120.10 match ip dport 3333 0xffff flowid 1:1
tc filter add dev ens33 protocol all parent 1: prio 2 u32 match ip dst 0.0.0.0/0 flowid 1:2
tc filter add dev ens33 protocol all parent 1: prio 2 u32 match ip protocol 1 0xff flowid 1:2
tc qdisc add dev ens33 parent 1:1 handle 10: netem delay 180000ms
tc qdisc add dev ens33 parent 1:2 handle 20: sfq
端口是指发送网络请求的端口还是接受请求的端口还不清楚
https://serverfault.com/questions/906458/network-shaping-using-tc-netem-doesnt-seem-to-work/906499#906499