谐和 2008-4-15 09:11
网站大流量压力 如何进行系统应对?
当一个企业的网站访问量越来越大时,当一个博客发展为知名博客的时候,博客的访问量通常都会非常大,使用使用虚拟主机的话,个人博客由于访问量过大经常会而引起[url=http://server.ctocio.com.cn/]服务器[/url]性能问题,这是很多人的烦恼,有人使用取消[url=http://whatis.ctocio.com.cn/searchwhatis/251/6093751.shtml]RSS[/url]等错误的方法来解决问题,显然是下错药,那么对于网站大流量带来的问题,正确的解决方法应该是什么呢?下面是我个人总结的一些经验,供大家参考。
第一步:确认服务器硬件能力
普通的[url=http://whatis.ctocio.com.cn/searchwhatis/383/6025883.shtml]P4[/url]服务器一般最多能支持每天10万独立[url=http://whatis.ctocio.com.cn/searchwhatis/191/6025691.shtml]IP[/url],如果访问量比这个还要大,那么必须首先配置一台更高性能的专用服务器才能解决问题,否则怎么优化都不可能彻底解决性能问题。
第二步:优化[url=http://database.ctocio.com.cn/]数据库[/url]访问
服务器的负载过大,一个重要的原因是[url=http://whatis.ctocio.com.cn/searchwhatis/461/5947461.shtml]CPU[/url]负荷过大,降低服务器CPU的负荷,才能够有效打破[url=http://whatis.ctocio.com.cn/searchwhatis/146/7475146.shtml]瓶颈[/url]。而使用静态页面可以使得CPU的负荷最小化。前台实现完全的静态化当然最好,可以完全不用访问数据库,不过对于频繁更新的网站,静态化往往不能满足某些功能。
缓存技术就是另一个解决方案,就是将动态数据[url=http://storage.ctocio.com.cn/]存储[/url]到缓存文件中,动态网页直接调用这些文件,而不必再访问数据库,WordPress和Z-[url=http://whatis.ctocio.com.cn/searchwhatis/366/5946866.shtml]Blog[/url]都大量使用这种缓存技术。我自己也写过一个Z-Blog的计数器插件,也是基于这样的原理。
如果确实无法避免对数据库的访问,那么可以尝试优化数据库的查询SQL.避免使用Select * from这样的语句,每次查询只返回自己需要的结果,避免短时间内的大量SQL查询。
第三,禁止外部的盗链。
外部网站的图片或者文件盗链往往会带来大量的负载压力,因此应该严格限制外部对于自身的图片或者文件盗链,好在目前可以简单地通过refer来控制盗链,[url=http://whatis.ctocio.com.cn/searchwhatis/299/6025299.shtml]Apache[/url]自己就可以通过配置来禁止盗链,[url=http://whatis.ctocio.com.cn/searchwhatis/452/6025452.shtml]IIS[/url]也有一些第三方的[url=http://whatis.ctocio.com.cn/searchwhatis/229/6025729.shtml]ISAPI[/url]可以实现同样的功能。当然,伪造refer也可以通过代码来实现盗链,不过目前蓄意伪造refer盗链的还不多,可以先不去考虑,或者使用非技术手段来解决,比如在图片上增加水印。
第四,控制大文件的下载。
大文件的下载会占用很大的流量,并且对于非[url=http://whatis.ctocio.com.cn/searchwhatis/427/5948927.shtml]SCSI[/url]硬盘来说,大量文件下载会消耗CPU,使得网站响应能力下降。因此,尽量不要提供超过2M的大文件下载,如果需要提供,建议将大文件放在另外一台服务器上。目前有不少免费的[url=http://whatis.ctocio.com.cn/searchwhatis/445/7372445.shtml]Web 2.0[/url]网站提供图片分享和文件分享功能,因此可以尽量将图片和文件上传到这些分享网站。
第五,使用不同主机分流主要流量
将文件放在不同的主机上,提供不同的镜像供用户下载。比如如果觉得RSS文件占用流量大,那么使用FeedBurner或者FeedSky等服务将RSS输出放在其他主机上,这样别人访问的流量压力就大多集中在FeedBurner的主机上,RSS就不占用太多资源了。
第六,使用流量分析统计软件。
在网站上安装一个流量分析统计软件,可以即时知道哪些地方耗费了大量流量,哪些页面需要再进行优化,因此,解决流量问题还需要进行精确的统计分析才可以。我推荐使用的流量分析统计软件是[url=http://whatis.ctocio.com.cn/searchwhatis/191/6093191.shtml]Google[/url] Analytics(Google分析)。我使用过程中感觉其效果非常不错,稍后我将详细介绍一下Google Analytics的一些使用常识和技巧。