你好,我有一个小型测试网络,我用它来为我的论文做一些数字运算。我的网络由三台装有英特尔千兆网卡的机器组成(所有 em 驱动程序,其中两个主机设置为 laggs),具有默认 MTU 设置等...运行 Freebsd 9.1 和 mpich2。
当我运行 mpdringtest 时,我得到的延迟是:
time for 1 loops = 0.00105500221252 seconds
time for 2 loops = 0.101227998734 seconds
time for 3 loops = 0.200784921646 seconds
time for 4 loops = 0.300806045532 seconds
time for 10 loops = 0.942656040192 seconds
time for 100 loops = 11.5054900646 seconds
网络延迟为:
Max Latency:
from \ to city17 glados blackmesa
city17 0.335 0.739
glados 0.319 0.689
blackmesa 0.992 0.746
Mean Latency:
from \ to city17 glados blackmesa
city17 0.205 0.525
glados 0.195 0.518
blackmesa 0.599 0.503
for hosts
city17:8
glados:4
blackmesa:4
根据我的假设,每个循环大约需要平均延迟矩阵的上三角部分或下三角部分的总和(通过 ping 获得)。这似乎与单环结果相符。但是,对于多环,延迟似乎会大大增加。我阅读了有关此主题的手册页,除了说它在环中传递了一条消息之外,它并没有真正解释太多。这些结果是否与延迟和 mdpringresults 相当正常?
如果重要的话(没有其他流量通过交换机),交换机是 HP procurve 1810g-8。
答案1
根据我的经验,粗略地计算一下:千兆位在物理层上给你大约 50µs (0.50ms),并且使用“正确”的中断处理,在当前的机器/操作系统上,你应该会看到对等点之间的 ping 时间小于 100µs。
最大延迟可能表明您遇到了由于中断合并而导致的问题(例如,NIC 让数据包停留在缓冲区中直到出现超时),我注意到这是 Broadcom 卡而不是 Intel 卡的问题。
如果我正确理解了矩阵,那么您会看到平均延迟在 200ms 到 500ms 之间,这对我来说太多了。
尝试从两个主机之间进行 ping 开始,以检查可能的中断合并,我建议查看输出中的曲折时间(例如 1 2 3 1 2 3 1 2 3)。
另外,尝试在机器之间进行洪水 ping 以查看抵消合并的良好平均值。