限制Linux中的传入和传出带宽以及延迟


15

我知道已经问过许多类似的问题,但到目前为止,我还没有找到解决问题的方法。

我有一个虚拟linux服务器(运行Debian Squeeze),用于测试网站速度,以测量所述网站的加载时间的增加和减少。我试图限制此服务器的带宽和延迟,以便能够接近网站上的实际加载时间,但到目前为止却失败了。

我具体想要的是以下内容:

  • 将传入和传出延迟设置为50毫秒。
  • 将传入带宽限制设置为512 kbps。
  • 将输出带宽限制设置为4096 kbps。

我一直在阅读netem并使用该tc命令,但仍然有些麻烦。我已经设法将以下命令组合在一起以控制似乎有效的延迟,但是我什至不确定这是否只能处理传出延迟或同时处理这两者:

tc qdisc add dev eth0 root netem delay 50ms

周围的网络专家都可以帮助我吗?

编辑:

经过进一步的研究,我已经达到了目标的一半,使用此命令,所有传出流量的行为均符合我的期望:

tc qdisc add dev eth0 root tbf rate 4.0mbit latency 50ms burst 50kb mtu 10000

但是,我仍然无法适当限制传入的流量。我了解到我应该使用“ Ingress Policer过滤器”,我一直在尝试使用下面的命令来做到这一点,使用不同的值,但是没有运气。

tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match ip src 0.0.0.0/0 flowid :1 police rate 1.0mbit mtu 10000 burst 10k drop

带宽受命令影响,但是上述值使速度开始于2MB / s,随着传输的进行,速度缓慢下降至大约80-90kB / s,在传输大约30秒后达到该速度。

关于我在做什么错的任何想法吗?


netem delay 50ms不限制延迟。50ms与之相比,它增加了等待时间。
kasperd 2014年

确实你是对的。删除了字数限制,因为它实际上增加了50ms(因为这实际上是同一台计算机上的虚拟机,因此原始延迟无论如何都足够接近于0)
yzfr1 2014年

Answers:


12

我最终决定只在服务器上设置传出带宽/等待时间,然后在客户端上执行相同操作,从而有效地达到相同的结果。

这些是我分别在服务器和客户端上运行以实现目标的命令:

服务器:4 Mbit 50毫秒

tc qdisc add dev eth0 handle 1: root htb default 11
tc class add dev eth0 parent 1: classid 1:1 htb rate 1000Mbps
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 4Mbit
tc qdisc add dev eth0 parent 1:11 handle 10: netem delay 50ms

客户端:512 kbit 50毫秒

tc qdisc add dev vmnet1 handle 1: root htb default 11
tc class add dev vmnet1 parent 1: classid 1:1 htb rate 1000Mbps
tc class add dev vmnet1 parent 1:1 classid 1:11 htb rate 512kbit
tc qdisc add dev vmnet1 parent 1:11 handle 10: netem delay 50ms

我已经找了几个月了。谢谢。一个问题?您如何删除规则?tc类del dev eth0根目录显示RTNETLINK答案:没有这样的文件或目录
Nur

那是几个月前的事,但我似乎记得它足以删除qdisc:tc qdisc del dev eth0 root
yzfr1 2014年

2

大约80-90 kByte / s的期望值

    tc filter add ... police rate 1.0mbit ...

您要求传入数据到达1 mBit / s时被丢弃,大约为125 kByte / s。然后,远程服务器将下降到远低于该水平(可能不确定一半)。在那之后,所有数据包都通过了,因此远程端缓慢地加快速度,直到再次达到125 kByte / s。您获得的平均吞吐量大大低于125 kByte / s,这是入口整形的典型特征。

我对使用入口策略过滤器已经达到的速度应该达到2 MByte / s感到惊讶。在下游客户端(程序)或上游路由器上,您在哪里测量?或者,也许您首先启动了连接,然后才将入口策略过滤器安装到位?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.