分享
 
 
 

新手笔记-网站加速:不是太少,而是太多

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

标题:新手笔记-网站加速:不是太少,而是太多

关键词:网站开发、网站加速方案、合理选型

8月30号: 回忆进行网站加速步骤,真是百感交集!

很长时间没有写笔记了,网站的工作的确是非常琐碎。不过真的要做好实在是很难,下面这个笔记断断续续写了两个月,很多想法又都发生了变化,所以写的很乱,请大家对付看吧:)

网站的技术工作其实涉及的面非常广。从网站信息发布的运行平台的选择到采编入库的设计与开发,都需要进行很多的调研与方案定制。综合的进行不是简单的几篇笔记就可以完成的。这次先对加速的方案进行简单的说明。目前所处的网站采用零零总总的加速方式有很多,下面是对这些加速方式的简单说明。

解决网站的压力问题,是所有商业化的网站都要考虑的事情,从对访问量的预期,以及不同时段压力的不同,都要进行综合的考虑。硬件是最重要考虑的方面。软件同样也非常重要。定义的框架是否合适,物理上的数据库是否将读写进行分离,这些都是在网站的设计阶段要考虑的部分。但遗憾的是,最初网站的设计者并没有将这样都考虑进行,而是将问题留到的上线之后再进行调整,这就导致了上线之后的很大压力。在我们的新版网站刚上线的时候,访问高峰期数据库服务器的CPU负载一直在80%以上,网站服务器的CPU负载也保持在平均70%。加速、加速、再加速就成为领导嘴中的问号与感叹号。

有很多成功的经验可以从网上找到,当然也不能放过改版之前网站的成功经验。于是我们找到了下面几种加速方法(虽然这个时候再出想有什么加速方法已经非常晚了,但也还是要进行下去。)

下面是几种用上的加速方法

1. ASP.net本身的页面缓存技术与数据缓存技术

各种的网站开发语言都会有自己缓存技术,可以在开发过程中进行运用。页面缓存是将页面通过在ASPX的页面上用<%outputcache….%>写上缓存的时间,缓存的方案。数据缓存则可以将几乎所有ASP.net支持的变量按照你所想要的方式缓存起来,以提供给程序调用时使用。

2. 针对复杂的查询建立索引

除去一开始进行的设计时已经建立好的索引,你可能还需要在网站对数据库访问很大时,用SQL的事务跟踪器去找出查询语句的瓶颈,并为之想出相应的方法,比如用存储过程,为还没有建立索引的表建好索引,多建几张临时表,等等。由于我数据库方面不是很熟,这里就不多说了。

3. 将DB的读写进行分离

这是前辈们传下来的宝贵经验,同时对SQL数据库进行读写操作是非常慢的一种数据库访问方式,比较好的方式是根据读写的压力不用,分别建立两类结构完全相同的数据库服务器,将负责写的那类服务器的数据定时复制给负责读的服务器。

4. 将DB与Web服务器分离

DB与Web服务器在一台机器上会使访问速度变慢。所以要使得网站加速,这方面也需要进行考虑。

5. 将常用的数据,以及更新比较少的数据形成静态文件

网站的开发,有一些数据变化量是非常小的,比如详细文章页面,采编人员将其输入进我们的系统之后,几乎不进变化。这种情况下,可以采用将常用的数据定期的生成静态的数据文件的方法。来对网站进行提速。程序可以通过访问静态文件的方式,来达到提高网站整体速度的目的。

这里要对这个方式进行简单的说明,数据库情况好的时候,对数据库的读写是比对文件的读写要快的,但是如果大量的对数据库进行读写,或是每一次都会有比较复杂的逻辑对数据库进行读操作时,并且在实时性要求不太高的情况下,不如将这些复杂的操作每次的生成静态的数据文件,这样可以使得程序每次只需要对静态文件进行读操作,可以达到减轻数据库压力的效果。

还有一个好处是,万一数据库发生无法读取的数据故障,那么网站的实际上是可以运营在这些静态的数据文件之上的,在系统运行并不稳定的运营初期,这样的数据文件是非常有意义。这种加速方式可以对应到上面的Asp.net的数据缓存。由于所有的数据都被存储成标准的XML格式数据文件,所以这种数据缓存方式不仅仅可以在Asp.net的应用程序使用,也在可以提供给其它的一些应用使用,

6. 将被访问的动态页面通过加速程序定时生成静态页面,以提供给用户一个静态的页面快照。

终级加速方案?可以将动态页面定时读出,另存为静态页面。与Asp.net的页面缓存相似,唯一区别是页面加速可控度高,而且如果Asp.net无法执行,静态页面也可以很方便的在其它的HTTP server上使用。

以上所说的是在Asp.net+SQL的环境下可以采用的网站加速的方式。可以老实的告诉大家,第5种与第6种方式都是在系统运行不稳定的情况下,或是对IIS6没有信心的情况下的产物。我个人并不推荐大家采用。

说完了目前网站所采用的方式之后,想与大家分享一下运用这些加速方式之后的体会,以及得到的一些经验与教训。希望大家在以后的网站开发过程中不要重复同样的错误。

l 加速---不是太少,而是太多

可以从上面所说的得出一个结论,如果一个网站在设计与运行的过程中,即有数据库级的加速,又有业务逻辑层的加速,还有最终页面级的加速,那么存在问题就会是,是不是所有的加速形式都必须要存在?是不是有你已经做了一些没有意义的费工作?实际上,当我重新回头去看堆积在网站中的所有加速方法时,不禁产生一堆疑问:为什么在我已经定义好了页面缓存之后还要有一堆循环生成的数据文件?为什么数据库的索引都建好之后还要有数据级的缓存?什么情况下有了页面缓存还需要有页面加速?……,当一大堆的为什么出现在你面前时,你才能够了解,去给一个网站加速的方式不是太少,而是太多,你所要做的是选择出那些最少,最合适的方案来处理你所要面对的问题,而不是慌慌张张的将你要知道的所有的加速方案都堆砌在网站上,这样得到的结果可能就会是网站的更新效率低下,维护费用增加,不确定性也在增加,等等。所以,记住,加速的方法,不是太少,而是太多,要合理进行选择。

l 不要因为一次错误而进行否决某种方案

如果你试了一下数据加速的方法,发现你的网站的访问速度没有得到很好的提高,那么你会怎么样?放弃后找一条新的路子,还是对仔细研究你的这次试验的结果究竟说明了什么?看看我上面的说的,当你有太多的选择时,你可能会对每一项都并不看重,那么你错了,我的项目组在选择加速方式的时候走过一些回头路,这些回头路都是由于我们提出一个好的方案A,试一下,没有太好的效果之后马上放弃,转到另一次的实验,通过一段时间的运行,突然又发现方案A不好使的原因是由于其它的原因,而不是方案A本身的原因,再回头使用方案A,又花费很多的时间与精力。所以在可以选择方案很多的情况下,也一定要慎重的考虑,而不要因为一次错误而进行否决某种方案。

总而言之,网站加速一定是要在开始的设计阶段计划好,而设计之后的调整就是属于很痛苦的,这个就与面向方面编程(AOP)所说的问题有一些共同的地方。AOP的问题回头再与大家讨论吧。

加速的部分就是这些想法了,欢迎大家与我进行沟通,我的MAIL地址是viktoryu@hotmail.com

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有