跟踪路由至 serverfault

跟踪路由至 serverfault

目前我们正在决定是否将我们的数据中心从西海岸迁至东海岸。

但是,我发现从我所在的西海岸位置到东海岸的延迟数字有些令人不安。以下是示例结果,在 Google Chrome 中检索一个小的 .png 徽标文件,并使用开发工具查看请求需要多长时间:

  • 西海岸到东海岸:
    延迟时间为 215 毫秒,传输时间为 46 毫秒,总计时间为 261 毫秒
  • 西海岸到西海岸:
    延迟 114 毫秒,传输时间 41 毫秒,总计 155 毫秒

俄勒冈州科瓦利斯在地理位置上离我位于加利福尼亚州伯克利的位置更近,这很有道理,所以我预计连接速度会更快一些……但当我对纽约服务器执行相同测试时,我发现延迟增加了 +100ms。这对我来说似乎有点过分。特别是因为传输实际数据的时间仅增加了 10%,但延迟却增加了 100%!

对我来说,这感觉...不对...。

我在这里找到了一些有用的链接(通过谷歌!)...

...但没有任何权威性。

那么,这是正常的吗?感觉不正常。当网络数据包从美国东海岸<-->西海岸移动时,我应该预期的“典型”延迟是多少?

答案1

光速:
你不会把打败光速作为一个有趣的学术观点。 此链接计算出从斯坦福到波士顿的最佳传输时间为 ~40ms。当此人进行计算时,他认为互联网的传输速度大约为“光速的两倍以内”,因此传输时间约为 ~85ms。

TCP 窗口大小:
如果您遇到传输速度问题,您可能需要增加接收窗口 tcp 大小。如果这是高带宽高延迟的连接(称为“长胖管道”),您可能还需要启用窗口缩放。因此,如果您要传输大文件,则需要有足够大的接收窗口来填充管道,而无需等待窗口更新。我在我的回答中详细介绍了如何计算调整大象

地理位置和延迟:
一些 CDN(内容分发网络)的缺点是它们将延迟和地理位置等同起来。谷歌对他们的网络进行了大量研究,发现了其中的缺陷,他们在白皮书中发布了研究结果超越端到端路径信息来优化 CDN 性能

首先,尽管大多数客户端由地理位置相近的 CDN 节点提供服务,但相当一部分客户端的延迟比同一区域的其他客户端高出几十毫秒。其次,我们发现排队延迟通常会抵消客户端与附近服务器交互的好处。

BGP 对等连接:
此外,如果您开始研究 BGP(核心互联网路由协议)以及 ISP 如何选择对等连接,您会发现这通常更多地与财务和政治有关,因此您可能并不总是根据 ISP 获得到达某些地理位置的“最佳”路线。您可以使用镜子路由器. 您还可以使用特殊 whois 服务

whois -h v4-peer.whois.cymru.com "69.59.196.212"
PEER_AS | IP               | AS Name
25899   | 69.59.196.212    | LSNET - LS Networks
32869   | 69.59.196.212    | SILVERSTAR-NET - Silver Star Telecom, LLC

使用类似这样的 GUI 工具来探索这些对等点也很有趣链接排名,它为你呈现了你周围的互联网图景。

答案2

本网站建议美国东海岸/西海岸之间的延迟大约为 70-80 毫秒(例如旧金山到纽约)。

跨大西洋航线
纽约 78 伦敦
法兰克福 87 号
跨太平洋航线
SF 147 香港
横跨美国的路径
旧金山 72 纽约

世界城市对的网络延迟

以下是我的计时(我在英国伦敦,因此西海岸的时间比东海岸的时间要早​​)。我得到的延迟差异为 74 毫秒,这似乎支持了该网站的数值。

NY - 108ms latency, 61ms transfer, 169 total
OR - 182ms latency, 71ms transfer, 253 total

这些是使用 Google Chrome 开发工具测量的。

答案3

如果可能的话,首先使用 ICMP 进行测量。ICMP 测试通常默认使用非常小的有效负载,不使用三次握手,并且不必像 HTTP 那样与堆栈上的另一个应用程序交互。无论如何,最重要的是不要将 HTTP 结果与 ICMP 结果混淆。它们是苹果和橘子。

按照Rich Adams 的回答并使用网站他建议,您可以看到在 AT&T 的主干网上,ICMP 流量在旧金山和纽约端点之间移动需要 72 毫秒。这是一个合理的数字,但您必须记住,这是在完全由 AT&T 控制的网络上。它没有考虑到到您的家庭或办公室网络的转换。

如果您从源网络对 careers.stackoverflow.com 执行 ping 操作,您应该会看到与 72 毫秒相差不远(可能为 +/- 20 毫秒)的时间。如果是这样,那么您可以假设你们之间的网络路径没有问题,并且运行在正常范围内。如果不是,请不要惊慌,从其他几个地方进行测量。这可能是您的 ISP。

假设通过了,下一步就是处理应用层,确定 HTTP 请求中出现的额外开销是否有问题。由于硬件、操作系统和应用程序堆栈的不同,应用程序之间的开销可能有所不同,但由于东海岸和西海岸的设备大致相同,因此东海岸用户可能会访问西海岸服务器,西海岸用户可能会访问东海岸服务器。如果两个站点都配置正确,我希望看到所有数字大致相等,从而表明您看到的情况基本正常。

如果这些 HTTP 时间差异很大,那么性能较慢的站点存在配置问题我不会感到惊讶。

现在,一旦您处于这一点,您就可以尝试在应用程序端进行一些更积极的优化,以查看这些数字是否可以完全减少。例如,如果您使用的是 IIS 7,您是否利用了它的缓存功能等?也许你可以在那里赢得一些东西,也许不能。当谈到调整 TCP 窗口等低级项目时,我非常怀疑它会对 Stack Overflow 之类的东西产生很大影响。但是嘿 - 除非你尝试并测量,否则你不会知道。

答案4

我身处挪威,看到了一致的差异:

serverfault       careers
  509ms            282ms
  511ms            304ms
  488ms            295ms
  480ms            274ms
  498ms            278ms

这是通过使用 Google Chrome 的资源视图并反复刷新每个链接的科学、准确和经过验证的方法进行测量的。

跟踪路由至 serverfault

Tracing route to serverfault.com [69.59.196.212]
over a maximum of 30 hops:

  1    <1 ms     1 ms    <1 ms  81.27.47.1
  2     2 ms     1 ms     1 ms  qos-1.webhuset.no [81.27.32.17]
  3     1 ms     1 ms     1 ms  81.27.32.10
  4     1 ms     2 ms     1 ms  201.82-134-26.bkkb.no [82.134.26.201]
  5    14 ms    14 ms    14 ms  193.28.236.253
  6    13 ms    13 ms    14 ms  TenGigabitEthernet8-4.ar1.OSL2.gblx.net [64.209.94.125]
  7    22 ms    21 ms    21 ms  te7-1-10G.ar3.cph1.gblx.net [67.16.161.93]
  8    21 ms    20 ms    20 ms  sprint-1.ar3.CPH1.gblx.net [64.212.107.18]
  9    21 ms    21 ms    20 ms  sl-bb20-cop-15-0-0.sprintlink.net [80.77.64.33]
 10   107 ms   107 ms   107 ms  144.232.24.12
 11   107 ms   106 ms   105 ms  sl-bb20-msq-15-0-0.sprintlink.net [144.232.9.109]
 12   106 ms   106 ms   107 ms  sl-crs2-nyc-0-2-5-0.sprintlink.net [144.232.20.75]
 13   129 ms   135 ms   134 ms  sl-crs2-chi-0-15-0-0.sprintlink.net [144.232.24.208]
 14   183 ms   183 ms   184 ms  sl-crs2-chi-0-10-3-0.sprintlink.net [144.232.20.85]
 15   189 ms   189 ms   189 ms  sl-gw12-sea-2-0-0.sprintlink.net [144.232.6.120]
 16   193 ms   189 ms   189 ms  204.181.35.194
 17   181 ms   181 ms   180 ms  core2-gi61-to-core1-gi63.silverstartelecom.com [74.85.240.14]
 18   182 ms   182 ms   182 ms  sst-6509b-gi51-2-gsr2-gi63.silverstartelecom.com [74.85.242.6]
 19   195 ms   195 ms   194 ms  sst-6509-peak-p2p-gi13.silverstartelecom.com [12.111.189.106]
 20   197 ms   197 ms   197 ms  ge-0-0-2-cvo-br1.peak.org [69.59.218.2]
 21   188 ms   187 ms   189 ms  ge-1-0-0-cvo-core2.peak.org [69.59.218.193]
 22   198 ms   198 ms   198 ms  vlan5-cvo-colo2.peak.org [69.59.218.226]
 23   198 ms   197 ms   197 ms  stackoverflow.com [69.59.196.212]

Trace complete.

追踪职业路线

Tracing route to careers.stackoverflow.com [64.34.80.176]
over a maximum of 30 hops:

  1     1 ms     1 ms     1 ms  81.27.47.1
  2     2 ms     1 ms    <1 ms  qos-1.webhuset.no [81.27.32.17]
  3     1 ms     1 ms     1 ms  81.27.32.10
  4     1 ms     1 ms     2 ms  201.82-134-26.bkkb.no [82.134.26.201]
  5    12 ms    13 ms    13 ms  193.28.236.253
  6    13 ms    14 ms    14 ms  TenGigabitEthernet8-4.ar1.OSL2.gblx.net [64.209.94.125]
  7    21 ms    21 ms    21 ms  ge7-1-10G.ar1.ARN3.gblx.net [67.17.109.89]
  8    21 ms    20 ms    20 ms  tiscali-1.ar1.ARN3.gblx.net [64.208.110.130]
  9   116 ms   117 ms   122 ms  xe-4-2-0.nyc20.ip4.tinet.net [89.149.184.142]
 10   121 ms   122 ms   121 ms  peer1-gw.ip4.tinet.net [77.67.70.194]
 11     *        *        *     Request timed out.

不幸的是,它现在开始进入循环或诸如此类的情况,并继续给出星星和超时,直到 30 跳然后完成。

请注意,跟踪路由来自与开始时的时间不同的主机,我必须通过 RDP 连接到我的托管服务器才能执行它们

相关内容