欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOCX文档下载  

    基于SSI框架的高性能网站服务器端优化的问题和策略.docx

    • 资源ID:8926912       资源大小:16.28KB        全文页数:5页
    • 资源格式: DOCX        下载积分:2
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要2
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于SSI框架的高性能网站服务器端优化的问题和策略.docx

    基于SSI框架的高性能网站服务器端优化的问题和策略1 引 言随着互联网络的普及,网上的用户群体数量不断增加,网站的访问流量也呈指数式增加,例如facebook拥有8.9亿的用户,每天要处理9200亿的用户web请求。很多网络服务商因为网站没有经过优化,一旦访问量大就显得不堪重负,体现在服务器不能及时处理用户的请求,用户需要长时间等待。因此搭建高性能的网站来满足不断增长的访问量已成为迫在眉睫的问题。高性能的网站主要体现在响应时间较短、并发数较大、吞吐容量较大等方面。目前,已经有一些资料针对web前端进行优化,而针对服务器端程序优化的研究很少,本文主要研究通过JSP静态化、多线程并发优化从而将网站性能进行提升。2 网站优化目前的研究情况互联网周刊中提出通过"集群"软件来实现多个服务器之间的高速切换,确保服务器系统的高响应【1】。韩涛在高性能电子商务网站前端设计理念研究中指出"在网站前端通过合理设置缓存和网站文件的压缩"来达到提高网站性能的目的【2】。也有文献提出通过"减少DNS查找","优化CSS","图片压缩"等方式来提高网站性能【3】 【4】。这些策略在一定程度上可以缓解服务器的压力,但是存在着一定的问题。如"集群"方式,是通过引入多个服务器协同工作,引入多个服务器势必造成搭建网站的费用增加,对于大型的网站,如网易,淘宝可以实现,但是对于中小型网站,由于投入的经费有限,此种模式可行性不高;通过"web前端"合理设置这种方式,可行性较好,但主要针对的是客户的浏览器的缓存和图片压缩等方面进行优化,没有考虑服务器方程序的优化,优化的程度受到一定的限制。通过查阅资料,发现在国内服务器端优化的研究资料非常少,因此,文中提出了基于服务器端的优化策略,策略中包括JSP静态化,多线程并发等技术,并将这些优化策略引入到咸阳师范学院图书馆网站中。3 JSP静态化3.1 未静态化的JSP执行情况服务器接收到客户方浏览器发出的访问JSP页面的请求之后,服务器先将JSP文件编译为成为Servlet文件,然后对这个Servlet编译、执行,查询数据库之后,将动态拼凑的代码返回至客户端。如下图1所示。从客户端发出浏览请求到请求的页面显示出来所等待的时间受以下三个因素影响:1)服务器编译JSP文件并执行所需要的时间。2)读写数据库所需要的时间。3)客户方网络的带宽,带宽会影响服务器接收请求以及将处理结果反馈的时间。第一个因素通过JSP静态化策略可以改善访问效率,第二个因素借助缓存技术能减小访问时间。3.2 JSP静态化多个客户同时访问同一个服务器中的JSP页面,服务器需要对每个请求的JSP文件单独进行编译,执行,响应时间会比较长。但是如果将客户请求的JSP页面静态化,也就是转换成html文件,这样不需要经过服务器的编译,可以直接加载到客户浏览器上显示,可以有效降低服务器负荷。转换成静态页面适合蜘蛛抓取信息,另外对搜索引擎的SEO优化起到很好的效果。JSP静态化的执行过程如下图2所示。JSP静态化包括以下三个步骤:1)定义一个继承"JspWriter"的类,覆盖JspWriter的输出函数,数据输出到指定的文件中。2)定义数据库查询并获取数据。3)读取网页模板,添加数据后生成新的静态网页。网页模板可以通过FreeMarker来定义。FreeMarker是基于模板生成文本输出的通用工具, 使用纯 Java编写。使用FreeMarker可以生成 HTML页面,由FreeMarker生成页面,通过模板显示准备的数据【5】。FreeMarker的工作原理如下图3所示。4 基于SSI框架的高性能网站的搭建应用JSP静态化,数据缓存等高性能网站策略搭建了咸阳师范学院图书馆网站。该网站采用SSI框架技术,使用My sql数据库管理软件,应用FreeMarker模版引擎。SSI 是struts,spring和ibatis的一个集成框架【6】,该框架是目前较流行的一种Web应用程序开源框架。系统的基本业务流程是:view层通过JSP页面实现交互,接收请求和传送响应,Struts根据配置文件struts-config.xml将ActionServlet接收到的Request分派给相应的Action处理;business层管理服务组件,Spring IoC容器向Action提供业务模型组件和该组件的协作对象数据处理组件完成业务逻辑,并提供事务处理、缓冲池等容器组件【7】 。4.1 网站系统分析图书馆网站分为用户管理,角色管理,日志管理,任务管理,通用页面管理,列表页面管理6个模块。网站的系统结构图如图4所示。4.2 图书馆网站提高性能的策略分析图5说明了本文提出的高性能网站的六大策略的关系,定时器在这些策略中起核心作用,它控制生成静态网页的时间和将缓存的数据写入数据库的时间。并发技术和多线程技术的引入是为了更高效的将数据写入缓存。线程池是高效管理数据库的连接的一种方式。1)JSP静态化技术网站使用FreeMarker作为模板引擎,利用FreeMarker的Configuration类的getTemplate方法生成模板对象,利用模板对象的process方法将数据根据模板写回指定路径静态文件中,这里的模板是事先定义的以ftl作为扩展名的网页模板。静态化核心算法如下:public static void crateHTML(Object, String, String) Configuration freemarkerCfg = new Configuration()freemarkerCfg.setEncoding(Locale.getDefault(), "UTF-8")Writer out ,Writer outStreamOutputStream fileOutTemplate template=freemarkerCfg.getTemplate(templatePath, "UTF-8") template.setEncoding("UTF-8")String htmlPath = ConfigRuntime.getBaseTargetPath() + targetHtmlPathFile htmlFile = new File(htmlPath)fileOut = new FileOutputStream(htmlFile)outStream=new OutputStreamWriter(fileOut,"UTF-8")out = new BufferedWriter(outStream)template.process(data, out) FileUtils.close(fileOut)FileUtils.close(outStream)FileUtils.close(out) 2)缓存、多线程、并发技术使用缓存技术可以将那些频繁访问的数据,以及那些需要大量处理时间来创建的数据存储在内存中,从而提高系统性能。缓存技术分为操作系统磁盘缓存,数据库缓存,应用程序缓存,Web服务器缓存,客户端浏览器缓存。应用程序缓存主要是减少对数据库的查询,而Web服务器缓存可以减少对应用服务器的请求。可见,缓存技术的应用领域是非常广的。本文主要针对的是应用程序缓存。为了避免多次访问数据库,将用户的session、角色信息和菜单信息存放在全局静态map中。frame.base.memory中的一个类缓存了用户 session 中的菜单,另外一个缓存了所有角色和菜单信息。Jave web启动了多个线程将数据加入缓存提高访问效率。多线程操作时对某些变量设置读锁或者写锁,只有拥有写锁的线程才可以修改变量的值,以此避免多线程同时修改变量的值,造成变量的值不一致。3)数据库链接池使用java创建jdbc数据库连接速度慢,当创建一个jdbc 连接之后,数据库访问结束后需要关闭连接,下次访问数据库还需要重新创建,效率比较低。数据库连接池的基本思想就是为数据库连接建立一个"缓冲池"。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从"缓冲池"中取出一个,使用完毕之后再放回去。程序中可以设定连接池最大连接数来防止系统与数据库连接的数量,也可以通过连接池的管理机制监视数据库的连接的数量和使用情况,为系统开发、测试及性能调整提供依据图书馆网站项目通过spring来管理数据库链接,在spring-core.xml中定义了数据库初始连接的最大数为20,最小数为1,一个连接在池中最小的生存时间为300秒。配置文件的核心代码如下:4)定时器技术通过定时器可以设定静态页面生成的时间以及缓存数据写入内存中的时间。可见,上述的JSP静态化以及数据缓存技术必须与定时器相结合才能发挥定时生成页面和将缓存数据写入数据库的作用。图书馆网站中设定有两种定时器,分别是写入数据的timer定时器和定时生成页面的Spring定时器。Spring定时器在配置文件spring-quartz.xml中定义。5 测 试网站搭建在浪潮NF5240M3服务器上,处理器英特尔XeonE5-240702.20GHz,内存16GB,主板浪潮NF5240M3,操作系统 Windows 2008R2 Server Standard 64位。使用Jmeter测试性能,主要测试指标有响应时间、并发数、吞吐量。1)响应时间测试从打开浏览器窗口输入域名到返回页面需要的时间如下图6所示,累积花费时间588ms。如果网站没有优化,所需要的时间如下图7,累积响应时间7518ms,经过优化系统提速12倍。2)并发数和吞吐量测试(1)测试设置100个线程,每秒有10个线程访问网站,每个线程循环5次,累积访问网站500次。如下图8所示,网站系统的吞吐量是每秒处理50.2个请求,在图中Label表示请求类型,#sample表示样本数目,Average是图形报表中的平均值,Median是图形报表中的中间值,90%Line是指90%请求的响应时间比所得数值还要小,Min代表服务器响应的最短时间,Max表示服务器响应的最长时间,Error表示请求的错误百分比,Throughout表示服务器每单位时间处理的请求数,KB/sec表示每秒钟请求的字节数。表9为未优化的网站的聚合图,在图中吞吐量为每秒钟处理46.1个请求。经过优化,吞吐量提高了23%。(2)测试设置500个线程,每秒有10个线程访问网站,每个线程循环5次,累积访问网站2500次。网站的平均吞吐量是每秒钟2746K字节。如图10所示。图11为没有优化的网站500个线程访问量的聚合图,吞吐量为每秒种2612K字节。优化后吞吐量提高了5%。6 结束语本文基于SSI框架提出了web后台优化策略,从JSP静态化技术、缓存、多线程、并发技术、数据库连接池和定时器等方面进行优化,缩短了系统的响应时间和吞吐量。下一步工作是继续研究这些优化策略对后台优化的不同效率。参考文献【1】 陈谷龙.网络前端设计.互联网周刊, 2000,9(04):85-86.【2】 韩涛.高性能电子商务网站前端设计理念研究.江苏商论,2011,(05):50-52.【3】 马淼.高性能网站优化设计.中国传媒科技,2012,(05):35-37.【4】 武俊峰,朱喜梅.基于电子商务的网站设计与性能优化研究 .自动化技术与应用,2008,( 07):21-23.【5】 李昊,刘志镜.线程池技术的研究.现代电子技术,2004(03):77-80.【6】 张琪.企业WEB应用下SSI框架分析南京工业职业技术学院学报,2011(02):56-58.【7】 约翰逊.Spring框架高级编程.蒋培译.北京:机械工业出版社, 2006 . 蒋玉婷,刘素访. 基于Struts架构的大型购物系统研究与实现.电脑知识与技术,2010(33):21-22. TEWARIR, DAHLIN M,VIN HM,et al.Beyond Hierarchies: Design Considerationsfor Distribut ed Caching on the Internet . / /Proc ICD C c99. Aust in , May 1999 .徐大伟. 基于MVC和iBatis的创新教育网络平台的实现.长春大学学报,2009(12):41-42.张建超,张连堂.网站架构演变技术研究.现代计算机(专业版),2012 (4) :53-55.崔英志,张绪玉,高博.Web2.0时代的网站架构.重庆工学院学报,2008(05):60-63.施为.Web应用程序中的数据缓存技术分析.淮阴师范学院学报(自然科学版).2006(05):320-321.佘青.利用Apache Jmeter进行Web性能测试的研究.智能计算机与应用,2012(02):32-33.

    注意事项

    本文(基于SSI框架的高性能网站服务器端优化的问题和策略.docx)为本站会员(rrsccc)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开