概述
上回我们介绍了tbf队列,这次介绍模拟网络环境和抖动测试时非常好用的netem队列。netem队列也是无类队列,也就是说所有从网卡发送出去的包都会收到配置参数的影响!
netem是linux2.6 及以上内核版提供的Network emulation服务,可以用来模拟广域网下的延迟、丢包、重复、损坏和乱序等问题。
-
模拟网络时延
#eth0网卡增加时延100ms tc qdisc add dev eth0 root netem delay 100ms #正常网络情况会出现抖动性延迟,将延迟设为 100ms ± 10ms tc qdisc add dev eth0 root netem delay 100ms 10ms #网络状况是平滑变化的,短时间里相邻报文的延迟应该是近似的而不是完全随机的。
#这个值是百分比,代表相邻报文延迟的粘性。如果为 100%,每个相邻的报文必定相同延迟,即所有包都将延迟;
#如果是 0% 则退化到随机延迟的情况
tc qdisc add dev eth0 root netem delay 100ms 10ms 20%
# distribution 参数来限制它的延迟分布模型。比如让报文延迟时间满足正态分布
#其他可选值有 uniform、pareto 和 paretonormal
tc qdisc add dev eth0 root netem delay 100ms 10ms 20% distribution normal
-
模拟网络丢包
# 发送的报文有 50% 的丢包率 tc qdisc change dev eth0 root netem loss 50% # 发送的报文随机丢掉 50% 的数据包,成功率为25% tc qdisc change dev eth0 root netem loss 50% 25%
-
模拟包重复/损坏
# 随机产生 20% 重复的包 tc qdisc change dev eth0 root netem loss 20% # 随机产生 5% 损坏的报文(在报文的随机位置造成一个比特的错误) tc qdisc change dev eth0 root netem corrupt 5%
-
模拟包乱序
# 固定的每隔一定数量的报文就乱序一次 tc qdisc change dev eth0 root netem reorder 50% gap 3 delay 100ms # 使用概率来选择乱序的报文 tc qdisc change dev eth0 root netem reorder 50% 15% delay 300ms
本文为原创,未经许可不得在任何平台转载。如需转载,与作者联系~
关注微信公众号:智识训练营(微信ID:TechBootcamp),获取更多资讯~
最后
以上就是年轻墨镜为你收集整理的Linux TC工具之netem队列的全部内容,希望文章能够帮你解决Linux TC工具之netem队列所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复