诊断networking延迟问题

我有两个服务器都与千兆网卡遇到严重的延迟问题相互沟通。 罪魁祸首最终certificate是其中一台服务器被修补到一个100M的交换机端口。

ping服务器总是返回<1ms

有没有一种工具可以显示服务器之间的实际传输延迟/传输速率与应该可能达到的最大传输速率的比较?

执行状态监视,收集数据,可视化。

  1. 您的操作系统具有报告networking接口当前状态的工具。 使用它们并将其与预期状态进行比较。 自动化这个。
  2. 使用snmp或本地计数器来收集样本。 对于快速接口使用64位计数器,或者使用非常小的采样间隔。
  3. 当你收集统计数据时,绘制它们。 石墨是这些天相当的事情。

然后,通过监控来实现,这绝不是实时的。 你总是看着过去。

并观看devopsdays罗马的Jason Dixon: 开源监控状态:好的,坏的,可怕的,以及对未来的一瞥 。

您可以使用像iperf这样的工具来testing两台服务器之间的实际延迟,抖动和传输速度。 虽然这是一个testing工具。

在你的具体情况下,从操作系统来看,各种接口的链路速度是非常明显的。

testing延迟并不困难。 您可以使用任何两台通过networking连接的服务器来testing延迟。

在服务器之间执行一系列“乒乓”通信达一段时间(例如10秒)。 在服务器之间划分完成的“ping-pongs”。 你现在每秒都有你的交易。

让我们通过数字运行。

testing时间:10秒交易完成5,000

所以你每秒做了1000笔交易。 如果您的乒乓事务是128字节,则您每秒执行128,000字节。 这相当于每秒1,024,000比特。 反转这个数字(1 / 1,024,000),你可以说你的交易延迟是0.000000978。 每次往返时间为978纳秒。

978纳秒是你每秒的秒数。 从一台机器发送到另一台机器需要多长时间才能完成。 这是延迟的定义。

netperf( http://www.netperf.org/netperf/ )是一个用来执行这个testing的好工具。 它将在一段时间内进行乒乓testing,并给你我上面列出的统计数据。

在一台服务器上运行“netserver”

在另一台服务器上,运行netperf -t UDP_RR -H -l 10 – -r 32

你会得到我上面列出的所有信息。 你可以运行这些结果的math。

大喊“Solarflare的Onload用户指南”。 他们详细介绍了这个testing方法。