我知道已经问过许多类似的问题,但到目前为止,我还没有找到解决问题的方法。
我有一个虚拟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
与之相比,它增加了等待时间。