首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用tc限制链路带宽

使用tc限制链路带宽
EN

Server Fault用户
提问于 2019-07-29 14:52:20
回答 1查看 2.9K关注 0票数 0

我是一个新手网络工程师。

我正在尝试理解Linux命令tc

我制作了一个简单的网络,由两个主机H1、H2和一个交换机S1组成,它们通过使用迷你网络连接。

然后,我让H1将UDP数据包发送到H2,并使用iPerf2通过交换机S1发送。

代码语言:javascript
复制
#H1
iperf -s -p 1212 -f m -i 1

#H2
iperf -c 10.0.0.1 -p 1212 -t 10000 -f m -b 70M -u

为了限制链路带宽,我在下面做了一个简单的bash脚本。

代码语言:javascript
复制
#!/bin/bash

#s1-eth1 is outgoing port from H1 to H2
#its orginal bandwidth 100Mbit/s

sudo tc qdisc del dev s1-eth1 root 
sudo tc qdisc add dev s1-eth1 root handle 1:0 htb default 12
sudo tc qdisc add dev s1-eth1 parent 1:0 classid 1:1 htb rate 50Mbit
sudo tc filter add deb s1-eth1 protocol ip parent 1:0 prio 1 u32 match ip dport 1212 0xffff flowid 1:1

我原以为S1的rx率是50 50Mbit/s,但没有。

它显示了大约40 40Mbit/s。

当我更改这个实验的设置时,它显示的值比我使用tc命令设置的值要小。

为什么会发生这种事?我查看了Linux tc的内核代码,但我无法理解它。

你能给我一点提示吗?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2019-07-29 17:55:41

提示和故障排除。

  1. 你应该理解排队、塑造和维持治安之间的区别。
  2. 你应该理解入口和出口方向的区别。
  3. 检查分类器(tc -p filter show dev <iface>)
  4. 检查分类器统计信息(tc -s -s -d f ls dev <iface>) -故障排除的第一步。
  5. 检查队列纪律统计信息(tc -s -s -d qdisc list dev <iface>tc -s -s -d c ls dev <iface>) --故障排除的第二步。
  6. 使用估计量从qdisc的角度来监视实际汇率。您应该在qdisc附件中指定它。当内核模块加载了相应的选项(请参阅modinfo sch_htb)时,一些调度程序可以创建默认的估计器。
  7. 您已经指定了默认类1:12,但不要定义它。
  8. 阅读有关HTB和配置示例的传奇故事。
  9. QoS不是一件简单的事情。
  10. 您还可以捕获流量并使用wireshark进行分析。查看tcp连接的窗口大小更改,以跟踪成形器的工作。但是对于UDP来说,这种方式并不太合适。
票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/977148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档