我测量了从我的服务器(使用pingdom服务)由nginx切断的静态图像文件的加载速度。 服务器通常应该在几秒钟内处理这个请求。 我的服务器位于达拉斯,TX。 当我使用pingdom达拉斯服务器时,需要200ms来加载文件。 这包括DNSparsing和数据传输。 很显然,如果转移时间较长,则需要较长的时间。 但令人惊讶的是,这个数值在纽约为800ms,在阿姆斯特丹为1.5s。
从服务器到客户机的数据传输距离的作用是显而易见的,没有任何东西与我的服务器性能相关。 但是,当我查看谷歌和冰等主要网站的差异, 差距只有50%(例如美国为200ms,欧洲为300s)。
服务器到服务器的远程请求有什么需要改进吗?
+1到Chopper3,但我也想解释一下。
地理距离与转移的关系不如你想象的那么重要。
什么是重要的:
示例1:在我的大学里,我们通过国有的ISP获得我们的互联网。 这个ISP有自己的networking和芝加哥的同行。 因此,为了连接到路上的房子,连接需要一路走到芝加哥。 因此,与芝加哥的交stream比在路上的交stream要快得多。
我想你需要考虑道路而不是像乌鸦苍蝇。 只是因为更近的东西并不意味着互联网真的很接近。 这也并不意味着它更快。 这是与互联网非常夸张。 例如,如果达拉斯和纽约之间的一条“自由之路”正在饱和,从欧洲转移到达拉斯可能会更快。
这些大公司拥有地理上分散的数据中心,所以你正在接近一个离你更近的站点,而不是一个中心站点 – 这就是事实。
您应该尝试CDN服务(内容交付networking)。 它有助于减less远离服务器的用户的延迟。 欲了解更多信息,请访问maxcdn网站。 你会发现有关你的问题的必要细节。
关键字是延迟。 这取决于你是否需要许多小型互动来获得你的内容,或者如果只是一个大的批量转移。
前者会受延迟的影响,后者则不是那么多。
例:
如果有1000个小事务,每个事件的延迟时间为0.01s,那么事务完成后需要10s。 常数因子是通过可用带宽划分的有效载荷。 “本地”延迟可能是因为10个因素较小(0.001秒延迟) – 对于整个群体来说> 1秒 – 对于用户来说感觉就足够快了。
现在,如果只用2笔交易就可以提供相同的有效载荷,那么这个0,02就没有问题了。
所以答案是:减less传递你的有效负载所需的tcp-tras的数量。
你的testing文件有多大?
不要忘了TCP慢启动的效果意味着延迟在减缓初始连接方面起着重要作用。
阅读http://www.bookofspeed.com/chapter3.html上的“宽带神话”
现在取决于您运行的是哪个版本,可以在Linux和Windows服务器上增加initcwnd以减less一些延迟效应。
请注意,一个imageload不代表整个网站。 不可避免的跨大西洋延迟将影响作为额外的90毫秒(YMMV)左右载入的每个元素,而不是每个请求的百分比。 这意味着较大的物品不会比较小的物品受到任何“更坏”的影响。
除了第一个请求,你的一些请求会并行发生(例如,一个访客可能同时在你的站点和CSS上加载3或4个图像),所以这些延迟将不会被用户感觉到。
话虽如此,CDNs是减less这些延迟的好方法,并非常容易使用静态资产,如图像和CSS。 他们也不贵。