我正在研究一个问题,一些图片托管在美国,一些用户得到非常缓慢的加载时间。例如,这个图像;http://opencirrus-g0805.hpl.hp.com/books40/UMICH/2160/10/47/23/59/216010472359/SCALE/sp3031.jpg
来自美国的数据中心使用apache ab;
Server Hostname: opencirrus-g0805.hpl.hp.com
Document Path: /books36/IA/2160/40/00/01/15/216040000115/SCALE/sp0831.jpg
Document Length: 62604 bytes
Failed requests: 0
Requests per second: 1666.38 [#/sec] (mean)
Time per request: 6.001 [ms] (mean)
Transfer rate: 102405.91 [Kbytes/sec] received
from another box in the dc;
Requests per second: 1847.39 [#/sec] (mean)
Time per request: 5.413 [ms] (mean)
Transfer rate: 113526.09 [Kbytes/sec] received
From missouri
Requests per second: 27.88 [#/sec] (mean)
Time per request: 358.700 [ms] (mean)
Transfer rate: 1774.29 [Kbytes/sec] received
ping from missouri
PING opencirrus-g0805.hpl.hp.com (198.55.33.68) 56(84) bytes of data.
64 bytes from opencirrus-g0805.hpl.hp.com (198.55.33.68): icmp_seq=1 ttl=51 time=55.9 ms
From London they are getting very slow
Requests per second: 5.29 [#/sec] (mean)
Time per request: 1891.408 [ms] (mean)
Transfer rate: 358.92 [Kbytes/sec] received
even though ping is much less than the time per request;
PING opencirrus-g0805.hpl.hp.com (198.55.33.68) 56(84) bytes of data.
64 bytes from opencirrus-g0805.hpl.hp.com (198.55.33.68): icmp_seq=1 ttl=54 time=177 ms因此,对于伦敦的用户来说,下载62K文件需要超过一秒钟的时间,而在美国,用户大约需要650 US。
这是意料之中的事,我能做些什么来加快速度呢?(在本地,web服务器似乎能够非常快地将文件提供给局域网上的框-我不确定在web服务器端可以做些什么)
发布于 2010-09-23 09:38:04
从你引用的数字来看,我会说你获得了相当好的带宽--当然,你永远也不会得到相同的带宽,就像你在同一个国家获得的带宽一样。
请记住,HTTP请求至少需要2次半往返(TCP握手、http请求/响应、关闭连接)。所以你的美国线路的开销是0.0559*2.5 = 0.14 s,而英国的0.177*2.5=0.4425 S
因此,实际交付内容所需的时间(包括美国用户的任何端点处理)为0.51秒,英国为1.45秒。
或者0.95 MBit/s美国和0.3MBit/s代表英国。
你是怎么加快速度的?嗯,你可以使用一个私人网络服务,如Akmai加速器(如果你想在英国的互联网上提供内容,而不是建立分支机构的话,这将是相当昂贵的)。或者您可以使用内容传递网络(CDN)。
但是在尝试之前,您应该确保您的HTTP缓存信息是优化的。
发布于 2010-09-23 09:47:58
不知道从本地边缘提供内容(包括动态内容和静态内容)是否是您愿意做的事情,但如果您愿意,经验丰富的系统管理员在地理位置设置akamai相似的缓存边缘并不困难。一些替代方案是FS大IP,Bluecoat,或开放源代码清漆。
https://serverfault.com/questions/183809
复制相似问题