1、用 iptables 的 owner 模块,给 --pid-owner 加上 MARK,然后 tc 里针对这个 MARK 做
限速 现在的服务器上,基本已经普及了 SMP ,更进一步的,内核已经在自动发现支持 SMP 的时候,在 iptables 里把 owner 模块的 pid/cmd/sid 三个 match 都去掉了!现在的 owner 里只有 uid/gid 两个。所以这条路,在生产环境上基本行不通。所以推荐下面的两种方法:2、使用 pipeviewer和 trickle这两个工具。trickle 是在BSD 上诞生的项目,这个工具使用ELF 的 preloader 机制,在命令执行的时候替换掉标准库中的 socket recv()() 和 send() 部分,达到限速的效3、cgroup ,它有 net_cls
控制器。不过和其他控制器不太一样的是它不直接控制网络读写,只是给网络包打上一个标记,然后把专业的事情交给专业的 TC 去做。嗯,思路和原先的 iptable 是很类似的。1. 限速/取消限速/测试限速
限速: wondershaper eth0 10000 8000 下行10000kb/s 上行8000kb/s
取消限速: wondershaper clear eth0
测试限速: server端: iperf3 -s client端: iperf3 -c serverip -i 1
查看指定端口速度: iftop -i eth0
2. 模拟丢包
tc qdisc add dev eth0 root netem loss 1%
3. 模拟延时
tc qdisc add dev eth0 root netem delay 100ms
4. 模拟乱序
tc qdisc add dev eth0 root netem delay 10ms reorder 25%
参考
https://blog.csdn.net/shelldon/article/details/54585742
评论列表(0条)