tc 动态控制带宽

在模拟网络情况的时候不可避免的会要模拟动态网络变化,常用的有mahimahi和tc,mahimahi自己设置trace文件,每一行内容为这一毫秒发送了多少数据即可动态控制,而tc一般利用命令行控制,所以需要一点shell脚本基础。
首先是shell的数组建立:
band (0 10 20 30 20 10 0) shell中数组利用space隔开,两端用()括起来,获取长度利用${#band[@]}即可获得,而${band[*]}可以获得所有的数组成员。
关于while 循环:
首先我们要明确其实我们不需要结束这个动态控制带宽的行为,所以我直接写了一个无限循环:

n=0
sudo tc qdisc add dev eth0 root tbf rate 10mbit burst 32kbit latency 50ms
while:
do
n=((n%${#band[@]}))
sudo tc qdisc change dev eth0 root tbf rate ${band[i]}mbit burst 32kbit latency 50ms
n=((n+1))
sleep 1
done

其中由于我们后续采用change,所以一开始需要add一个新的设置,另外,sleep的默认单位为1s,所以实际上该程序表示每秒钟更换一次带宽大小
最后分享一个博客https://www.cnblogs.com/zafu/p/15897654.html,图片很清晰

posted @   wxlu  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示