linux如何限制每个进程的网速?

linux如何限制每个进程的网速?,第1张

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8439984.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存