我测量了从发送TCP SYN到获得SYN / ACK的两个Linux计算机连接到同一Cisco交换机之间的大约100-150毫秒的时间。 考虑:
所以,我的问题是:
编辑 – 我们已经取消了等式的转换。 这两台电脑现在连接在一个交叉电缆,我们仍然看到这个问题。 两者都是全双工,100 MBPS。
普通嫌疑犯:
双面不匹配
如果你看到冲突,那么这个结果是半双工的,应该设置为full。 如果您看到错误,请检查另一端是否有碰撞。 如果两端都有错误,则可能是电缆不良。
你检查过电缆吗? 不好的电缆和/或下压可能会导致重试,可能会大大增加延迟。
你使用的是什么型号的思科交换机? 可能发生的一件事情是,如果交换机不知道你的服务器是哪个端口,它将需要洪泛的所有端口的数据包,这可能需要一段时间(不应该需要100毫秒)。 您可以通过在不是您使用的两台服务器之一的另一台服务器上运行TCP转储进行validation。 一旦服务器响应,它就会学习port-mac分配并以asic进行转发。 这可能在低端的Cisco交换机上特别普遍。
另外,你有每个端口的ACL? 这也可能需要CPU转换,这比ASIC中慢了几个数量级。 当你运行ping时,你有同样的问题,第一个ping有100ms的延迟,然后ping <1ms? 如果它是一个低端交换机,并且只有tcp / ip延迟,我会检查是否没有应用于TCP / IP数据包的ACL。
我也会检查交换机的CPU负载,即使它的使用率低,如果它有一些愚蠢的configuration,导致它切换到CPU,它可以很容易地过载。 我们已经超载了高端交换机(10Gbps回程),stream量在100Mbps范围内,因为我们无意中发送了必须在CPU内切换的stream量。
那么,废话。 看来我误解了tcpdump和wireshark日志。 我得到的延迟是100微秒,而不是毫秒!
替代文字http://ironicsurrealism.blogivists.com/files/2009/10/homer-simpson-doh.gif
这看起来像是你从美国的一边到另一边的延迟。 交换机是否pipe理? 你能连接到交换机,并检查问题? 我期望在本地networking上<1-2毫秒
根据我的经验,思科交换机应该在延迟时间内插入less于1ms,所以是的,这是一个问题的表示。
两台设备是否通过导线连接到交换机(即不是802.11)? 在同一个VLAN中?
这是一个值得信赖的networking? 如果设备和交换机的负载很轻,我会担心有人使用ARP劫持插入自己的交通stream量作为一个中间人…
如果您检查这些框(arp -an)上的ARP表并检查其他框的IP地址与ifconfig的输出,MAC地址是否匹配?
你提到你正在分析tcpdump输出。 你比较两个盒子之间的时间戳吗? 如果是这样,你确定时钟是同步的吗?
您是否可以访问networking上的第三台主机来比较其他两个盒子的性能?