Web服务器性能改进小结
摘要:
早些年从程序员开始,就接触的是Web开发,对于Web服务器有着深厚的感情。但一些年后,不再写程序的我,开始玩玩架构,可是发现架构出来的产品对Web服务器性能有着贪婪的需求,好比计算机对内存永远不满足一样。总希望Web服务器是一个超级无比强大的巨人,可是这种希望就是一种贪婪,所以整理一下,回头对Web服务器性能改进做一些小结,希望用以下方式来提高Web服务性能。
正文:
-
提高Web服务器本身的配置。
这是最简单最直接的性能提升,也是最傻瓜式的硬件升级,来加以提升Web服务器的的性能。
-
提高网络宽带。
既然我们讲的是Web服务器,不可避免的便是网络数据传输。光靠上面一提升CPU、内存等还是不够的。高速宽带对Web服务器性能提升也很重要。
-
Web服务器并行工作。
分布式越来越成为现代软件应用里很好的一种架构方式。像我们熟悉的云计算,其实本质也就是一种分布式计算。因此高负载的Web站点,用多个Web服务器分布式结构,对性能的提升有很大的帮助。想让Web服务器并行工作,一般分两种,一种是摆在不同地域的Web服务器内容完全相同,根据访问者不同IP,来决定该访问者去向哪个服务器。貌似Google有点这意思,全球有不少Google的服务器。另外一种当然是内容不同的,其实也就是功能不同,角色不同,比如一台提供动态页面,一台提供静态页面,一台专门处理数据等等,这种也很常见,像一些企业为了减少一台服务器的负载,往往将数据库服务器转向另一台专门用来处理的数据的Web 服务服务器。
-
从负载均衡上提高Web服务器性能。
有的Web服务器的流量,简直是海量的。没有足够的吞吐量,和网络数据处理能力,一般的服务器绝对扛不住。用前面的方式也可以解决,只是这条主要强调负载均衡,解决网络堵塞,可以提供服务就近原则,实现地理位置无关性,又那Google来说,你觉得Google慢过吗?那是因为人家绝对处理过负载均衡了。可以用多台服务器共同分担一些繁重的计算和I/O操作,从而消除网络瓶颈,提高吞吐量,提升性能。
-
Web交换机
有些网络设备,属于大型网络才会用到。这些恐怕也只能把它归结为硬件提升了。
-
缓存
计算机里常用到缓存,那么Web里其实也可以做到的。将经常访问和用到的数据缓存到客户端本地,下次再访问直接从本地获取,不用频繁从服务器请求,这有效的提高了访问速度,也减少了频繁访问的流量。访问Web服务器,无非是用户请求、服务器响应,如果是一些重复的数据,我们没有必要每次操作都要去服务器端请求。缓存,这项技术,跟架构师和开发人员关系紧密,大家可以关注这一点。写好或架构好你的Web程序,这次处理的好的话,一个Web性能的提升是很大的。
后记:
以上是简单的总结,有不对或遗漏之处,欢迎跟帖指出。其实B/S模式下的系统比古老的C/S系统优势多多,加上现在B/S系统界面也不逊于C/S,所以如果能对Web服务器性能进行优化,是很可观的有价值的研究工作。
原文链接:http://www.zivsoft.com/show.asp?id=56
转载请注明作者和出处