我需要研究并发用户数增加对 LAN 吞吐量的影响。数据大小约为 500KB,带宽为 4Mbps。以下是我的问题:
我可以在真实试验台上进行此操作吗?还是应该运行模拟?
如果真实测试平台有效,我如何在 Linksys WRT45GL 路由器中定义手动网络带宽。
在真实的测试平台上,我可以运行 javascript 代码,向同一网络中(不同机器上)的 Web 服务器发送异步数据获取请求,但我的问题是如何在那里定义手动网络带宽并确保它在整个研究过程中不会改变。我也可以隔离网络并禁用无线网络。
在模拟的情况下,什么是最简单,最可靠的方法可以帮助我完成这样一个简单的任务。
如果太简单的话请见谅。
答案1
听起来你想使用iperf
。它是一个客户端-服务器软件包,可让你模拟指定数量的带宽。
运行 iperf 的“正确”方式是在一端安装客户端,在另一端安装服务器,但如果您只需要用受控的流量淹没链接,那么您可以使用 UDP 运行 iperf 客户端。但这取决于您的情况。
您可以使用如下客户端语法:
iperf -c 180.92.196.115 -u -p 5001 --time 360 -i 3 -b 2
这指定:
- 以客户端模式运行 iperf。
- 使用 UDP 代替 TCP
- 将流量发送到 UDP 端口 5001
- 运行测试 360 秒
- 每 3 秒报告一次带宽统计信息
- 生成恒定的 2 Mbits UDP 流量进行测试。
您需要确保 iperf 的两个端点与您要测试的流量相对应。例如,如果我尝试使互联网链路饱和以通过 WAN 测试 VoIP QoS 设置,那么在 LAN 上的两台 PC 之间运行 iperf 对我没有任何帮助。该流量不会通过 WAN,因此不会产生任何影响。
因此您可能会发现需要在 LAN 之外的实际托管服务器上运行 iperf 服务器软件。
真实网络还是模拟器?
这真的取决于你。在我看来,无论哪种方式,进行测试的工具都是相同的。显然,如果你想在生产网络上运行它,要么安排在正常工作时间之外,要么以某种方式进行,以避免对用户产生影响。
如果可以的话,我更喜欢在真实网络上进行测试,因为这样你就可以处理更“真实”的情况。尝试模拟真实网络可能很困难,而且你的结果可能不那么准确,因为你忘记模拟网络的众多变量之一。
因此,使用真实的东西通常更容易、更准确。
一个例子
我经常使用它来验证 VoIP 客户的 QoS 部署。通常,我会在他们的真实网络上运行测试,启用和不启用 QoS 来验证改进情况。显然您的测试有所不同,但方法类似。
测试用户增长
Iperf 只会模拟您指定的带宽量 - “每个用户”使用的流量量根据您的情况而有所不同,因此显然无法猜测。
我解决这个问题的方法是:
- 设置局域网的接口监控图。
- 记录一天中有多少并发用户以及当时接口上使用了多少带宽(比特/秒)。
- 或者,记录整个工作日使用的平均带宽以及每天的平均并发用户数。然后使用这些数字来确定粗略的“每用户带宽”量。
如果您可以计算出每个用户的基准带宽量,那么您可以运行多个 iperf 测试进行模拟。例如,如果您计算出每个用户平均消耗 0.25 Mbps,那么您可以说,要模拟 10 个用户,您需要生成 2.5 Mbps 的流量。
希望这可以帮助。