12月31, 2011

如何利用CDN进行全网加速

CDN是什么?

CDN即内容分发网络,主要功能是加快网络数据传输,让用户尽快的看到所需的内容。 不清楚的同学可以继续看百科里的介绍。http://baike.baidu.com/view/21895.htm

同时Yslow和pagespeed也把CDN作为一条很重要的性能优化法则。

CDN目前做的事情

一般国内的大公司现在都已经建设了自己的CDN服务,如:百度、淘宝、腾讯。

目前主要功能是加快静态资源的传输,如:JS\CSS\图片。尤其是图片服务,由于数据量非常大,非常依赖CDN的加速。

仔细想想,其实还可以利用CDN做更多的一些事情。

CDN还可以做什么?

1、动态内容的加速

上面说到,现在CDN主要是用于静态资源的加速,对于动态内容由于要经过机房后端程序的处理,那如何加速呢?

当然肯定不能将所有的后端程序都在CDN上部署一遍,这肯定不现实。

其实可以在CDN上做一层代理,用户对于动态内容的访问首先到达CDN,然后CDN通过代理访问机房,由于CDN和机房之间是服务器对服务器的数据传输,所以非常的快。

这种方式虽然理论上可以行的通,主要有下面2个问题:

1): 流量的加倍

由于机房的流量本身不会减少,同时CDN要多一层流量,所以流量相对之前加倍了。但由于小城市的流量费用很低,在流量费用上不会加倍,如:北京的费用是其他二线城市流量费用的十倍。

2): 动态内容本身不大

由于动态内容本身不大,GZIP之后可能也不超过20K,所以带来的效果不太好说。

用于动态内容的加速,由于不确定性比较多,效果和收益需要评估,但可以作为一种性能优化的方式去研究。

2、大文件上传的加速

由于中国的网络主要还是ADSL,并且还是非对称的,也就是上行速度和下行速度是不一样的。据相关的数据统计,上行速度是下行速度的1/4,差的地方达到了1/20。 也就是说如果当前的下载速度有100K,那么上传速度可能只有25K,并且可能还会小。

针对这种情况,对于相册或者云盘这样的服务,就需要对上传性能进行优化了。

优化方式实际上也是在CDN上建立代理,用户上传文件先到达CDN,然后通过CDN传到机房。

这种方式虽然带来了流量的双倍,但一般一个服务上传流量相对与下载流量可以忽略不计,即使双倍了也没什么问题。

ps: 对于图片上传的服务,由于上传时间较长,并且用户的网络不稳定,之前的统计数据来看,经常出现上传失败的情况,通过这种方式也是解决上传失败一个很好的办法。

本文链接:http://welefen.com/post/use-cdn-upgrade-performance.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。