王管冲
摘 要:任何网站在高峰期时,可能会出现性能衰减,甚至系统崩溃。本文阐述了前置排队保护机制,资源动态调整,数据库优化调整,内容分发网络,网页精简等网站性能优化方法,充分利用现有资源,防止崩溃,提高性能,节约硬件成本。
关键词:网站;高峰期;性能优化;统一门户
1 引言
随着财政办公信息化水平不断提高,业务系统也越来越多,因此要将各个财政业务整合到一个一体化的财政平台,建立基于平台的统一门户管理。在统一门户管理中有有一点非常重要,那就是门户的性能问题。由于集中了全省的财政用户、银行用户、预算单位用户、甚至是普通大众用户,用户数量大大增加;再加上财政工作具有明显的时间性,在年初、年末、月末等时间是高峰期,访问量非常大。因此,做好网站的性能优化,顺利应对高峰期的信息化工作就显得尤为重要。
2 网站性能优化的方法
我们平时上网抢购时经常会发现,由于访问人数过多,抢购开始前的一段时间,抢购网站就逐渐进入半瘫痪状态,开始抢购后更是如此,抢购开始几十分钟后,不断刷新,勉强可以看到该商品的成功购买数只有十几二十个,大概相当于每分钟成交一笔,而我们平时随意找一台个人电脑配个网站,也不只这样的性能。这说明网站在高峰期出现拥堵,严重降低了系统性能。服务器的性能是在设计软件系统时根据可能的访问量确定的,平时服务器的高性能闲置无用,到高峰期的时候性能反而降低,访问速度变慢,不耐烦的用户反复点击刷新页面,恶性循环,最终导致系统崩溃。因此要想优化网站性能,首先得保证系统在高峰期时性能不降低。
⑴我认为首先应该在web服务器的前端放置一台高I/O的前置服务器,放置简单的引导页面,该页面不存取数据库,故不会对数据库造成压力,同时由于页面简单,能容纳的访问量比主web服务器要高许多倍,不易造成过载。该页面不仅起到引导作用,同时它还能统计在线用户数,探查后端的应用服务器和数据库服务器的繁忙程度,如果他们过于繁忙,则阻止用户访问后端,让用户进入排队队列,并给出友好的提示,如“当前在线人数过多,系统正在为您排队。请勿点击刷新页面,刷新后您将重新排队”,还可以给出一个简单的排队gif动画,这样用户就不会反复点击页面了。以前在学校选课系统,全校几万人都会在刚开放的时候选好老师开的课,并发量很大,就采用了强制限流排队的方法,虽然服务器是很烂一个台式机 ,但是好歹可以让大家按照先后顺序有条不紊地把课选好。
⑵在高峰期时段,应该关闭或限制一些当前不急用和少人用的系统,利用云技术将资源集中供应给高峰应用,如我们的数据库小型机,分为四个虚拟硬分区,其cpu核数、内存等资源均可进行调整,减少闲置资源,投入高峰资源池,以适应高峰期应用。
⑶高峰期间,应检查哪些数据访问率最高,增加对这些数据表的索引,优化查询视图,并可以将这些数据表常驻服务器的高速SSD硬盘,能使访问速度发生数量级上的提高。
⑷对于瓶颈在web服务器的繁忙应用,则可考虑使用CDN(内容分发网络),在访问量较大的地市、县等各个出口节点设置CDN代理缓存服务器,使用户可就近取得所需内容,解决网络拥挤的状况,节约带宽,提高用户访问网站的响应速度,降低主服务器的负载。
⑸要优化网页结构,网页上尽量减少js代码的使用,如需使用应尽量简化;减少图片数量和大小;调整网页结构,使其简单化,一个好网站一定是一个简单的网站,百度就是个成功的案例。
⑹在系统上线前应做好压力测试,真实模拟现实中的高峰期,系统上线后也必须详细记录运行状况,找出瓶颈所在,使用上面的方法解决各种瓶颈。
3 结论
无论哪个网站,都可能出现高峰期的性能问题,一味增加设备投入耗资巨大,如果找不出症结所在,仍然是徒劳无功。找出系统瓶颈所在,利用文中所述的前置排队保护机制,资源动态调整方法,数据库优化调整,内容分发网络,网页精简等手段,充分利用现有资源,可以几十数百倍的提高性能。只有当优化手段无法解决问题时,才根据前面查出的瓶颈,增加相应设备的投入。
[参考文献]
[1]傅清祥,王晓东.《算法与数据结构》.电子工业出版社.
[2]杨文龙,姚淑珍,吴芸.《软件工程》.电子工业出版社.
[3]罗晓沛,侯炳辉.《系统分析师教程》.清华大学出版社.