跟踪Linux中的带宽和延迟[关闭]


0

我正在尝试编写一个简单的脚本,可以检测网络中2个任意主机之间网络流量(两个方向的带宽和延迟)的下降。有没有工具可以做到这一点?

如果需要,我计划用bash编写几个客户端/服务器脚本来执行此测试 nc (netcat),但如果预先存在的解决方案捕获我正在尝试做的事情,请告诉我。

首先,我将确定在任意主机之间1秒内可以发送多少数据。我们称之为“有效载荷”。初步测试显示有效载荷约为50 MB。

然后我将执行以下操作:

  1. 客户端将有效负载发送到服务器。
  2. 当服务器收到整个有效负载时,它将立即通过向客户端发送有效负载来响应。
  3. 当客户端收到整个有效负载时,它将休眠30秒。 转到1。

通过这样做,我将收到以下数据(双向带宽和延迟):

  1. 通过录制 time 执行 nc 在(1)中从客户端到服务器,我将获得从客户端到服务器的带宽发送数据。
  2. 通过录制 time 执行 nc 从服务器到客户端(2),我将获得从服务器向客户端发送数据的带宽。
  3. 不知何故,我将确定数据包延迟,可能使用监视工具或区分从源发送的有效负载的第一个数据包与目标上接收的有效负载的第一个数据包之间的时间戳。

Answers:


0

iPerf是性能测试的好工具。而不是写一个脚本来监控你建议的加载方式,我会看看Nagios(并整合PNP4Nagios,它将为你整理通知,并为你提供一段时间内的性能图表。

我想知道在长期不变的基础上在这样的主机之间移动数据是多么实际,因为这浪费了原本可用的带宽。您是否更好地监控链路的实际吞吐量并将其与延迟和数据包丢失相关联,以便在需要时获得您所支付的费用? (我已经“打了一巴掌”ISP的人 - 在ISP书中玩最古老的游戏 - 试图坚持问题不在他们的网络上,而不是一次使用它,特别是在监控多个点时)

我注意到虽然延迟,数据包丢失和吞吐量并不完全相互依赖,但是(对于具有已知/收缩/预期特征的链接)这些因素之间存在相关性。


iperf(不要与netperf混淆)非常适合测试带宽,几乎与我描述的方式一样(使用适当的参数= time iperf -c <ip> -t 1 -r -i 30 ),但它不测试延迟。为了测试没有ICMP的延迟,我正在使用 hping -S
maltfield

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.