`
wbj0110
  • 浏览: 1555723 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

企业应用网站性能优化实例分析(转)

阅读更多

前段时间对某个企业应用网站进行了一次优化分析,解决这个网站经常死机和CPU高负载的种种问题,根据我接触的一些应用和服务器配置,我对这个案例 总结了一些优化方案,用来解决网站的高负载和高并发等问题,这里我和大家分享一下这个案例,希望能和大家一起探讨一下这种解决方案的优劣。

  一、网站当前状况和性能现状

  系统硬件配置:CPU为两个Intel Xeon 2.4G,物理内存为2.5G.

  系统软件配置:操作系统为Windows Server 2003标准版,数据库为SQL Server 2000.

  服务器访问量:工作日:访问人数 10000,浏览量 30000 ,休息日:访问人数 4000,浏览量 10000,每用户访问页面为2.88页面,平均停留时间为3分钟。由于存在大型下载文件,服务器流量每天有80G到160G左右。

  WEB系统:采用Tomcat服务器,使用Struts和Hibernate.

  网站系统:网站有几套不同的系统,有新闻发布CMS系统、文件下载系统、反馈系统等等,使用基于Java的Struts和Hibernate的MVC架构,动态应用。

  服务器CPU目前通常为40%左右,很多情况能增加到80-90%.

  二、网站性能分析

  通常情况下CPU达到80%说明系统性能存在瓶颈,需要找出系统的瓶颈究竟在哪里。

  分析过程是,远程登录服务器,打开SQL Server 2000的事件探查器,记录和分析SQL语句,同时打开任务管理器,查看各个进程占用CPU的状况。

   经过查询,SQLServer占用较大的CPU,说明系统调用CPU查询较多,初步可以确认是数据库引起的系统瓶颈,由于使用Struts和 Hibernate应用,调用数据库频繁,因此可以采用减少SQL查询的方式降低对SQLServer的调用,通常情况下有两种方法:Cache或静态 化。

  另外,服务器的Web系统采用的架构存在一些问题,因为存在大型下载文件,占用的流量非常大,而Tomcat本身对于静态文件的处理性能并不好,也会对系统性能产生负面的影响。

  三、网站和服务器优化方案

  1、缓存

   将页面静态化是通常的优化方案,但是对于当前的Tomcat服务器下的Struts和Hibernate未必有效,因为Tomcat对于静态HTML文 件本身支持并不理想,并且新闻内容更新较为频繁。因此,在现有架构的基础上,可以使用hibernate的ehcached的动态缓存的方式,在动态应用 中减少数据库负载,提升访问速度。

  使用ehcache对访问频率高,对数据库消耗大的页面进行动态缓存(时间10分钟),在缓存的时间范围内这些页面直接重缓存中读取,无需访问数据库,提高这些页面的访问速度,减小数据库访问的压力。这样SQL Server数据库的负载会大为降低。

  2、静态化

  对于一般的网站来说,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。因此,从长远考虑,需要对当前网站的架构进行一番调整,以适应静态化页面的需求。

  首先,由于Tomcat对于静态页面支持不太好,也不支持URL 重写,因此需要安装Apache服务器。

  其次,由于Struts对于搜索引擎不友好,因此将其全部转换为静态HTML页面,即可降低对数据库的查询次数,也可提高对搜索引擎的友好度。因此需要使用HTML静态化的方式优化服务器端的WEB程序。

  具体实施方案是,将现有Tomcat配置为8080端口,安装Apache服务器,配置为80端口,在Apache中修改httpd.conf文件,使得Tomcat解析JSP文件,静态HTML文件、图片文件、大型下载文件使用性能更好的Apache支持。

  修改Apache的.haccess文件,将Struts应用重写为静态Html文件形式,修改相关代码,使得其能自动生成静态HTML文件。

  优化访问量最多的页面,首页index.jsp为目前访问量最多的页面,里面的动态代码删除,将这个页面转化为静态的html页面index.html.

  3、应用部署

  如果资金允许的话,可以将数据库SQL Server 2000升级为SQLServer 2005,并单独部署到另外一台独立服务器上,文件下载也单独部署一台服务器。

  由于Tomcat本身的局限性,一个Tomcat的资源无法无限利用服务器的所有资源,并且Tomcat需要响应的请求太多,势必影响到整体的性能,因此配置多服务器可以使得Web网站的负载大幅降低,从而提高整体的响应能力。

  不过这种部署的缺点是需要付出升级软件、购买服务器、托管带宽等成本开销,建议不到万不得已,可以不用付出额外的资金升级。

分享到:
评论

相关推荐

    EBS性能调优之全面挖掘_V4.2(ebs性能优化、oracle性能优化、linux性能优化)

    数据库优化包括:实例的性能优化和SQL语句的性能优化,实例优化和sql优化均可以通过AWR报告来分析并作出优化方案。 这篇文档描述了如何调查EBS系统性能下降原因、如何使用和理解AWR报告、分别阐述了数据库层/应用层/...

    ORACLE学习笔记2:日常应用、深入管理、性能优化.

    第1篇 日常应用 第1章 安装和卸载 第2章 数据库管理 第3章 数据库实例管理 ... 第17章 常用性能监测、分析和优化工具 第18章 对SQL语句进行分析和优化 第19章 索引和提示优化 第20章 数据库分区技术

    Oracle数据库性能优化PDF

    资源名称:Oracle数据库性能优化 PDF内容简介:本书面向实际应用,从多个角度出发,对Oracle优化中的很多关键问题进行了深入全面的探讨,涵盖了Oracle优化的各个技术层面,从内存优化、IO规划及优化,到SQL优化调整...

    MATLAB优化算法案例分析与应用(进阶篇)源代码

    第2篇为MATLAB高级算法应用设计,包括人脸检测识别、改进的多算子融合图像识别系统设计、罚函数的粒子群算法的函数寻优、车载自组织网络中路边性能及防碰撞算法研究、免疫算法的数值逼近优化分析、启发式算法的函数...

    《Sql Server 2008查询性能优化》扫描版-part2

    书 名: SQLServer2008查询性能优化 作 者:(美)弗里奇,(美)达姆 ,姚军 译 出版社: 人民邮电出版社 本书通过大量实例,详细介绍了SQL Server数据库系统优化的各种方法和技巧。内容涵盖了数据库应用系统中...

    SQL Server 2008 查询性能优化 part1

    本书通过大量实例,详细介绍了SQL Server数据库系统优化的各种方法和技巧。内容涵盖了数据库应用系统中各种性能瓶颈的表现形式及其发生的根源和解决方法,从硬件瓶颈到查询、索引设计以及数据库管理等,贯穿了...

    信令分析与网络优化方法及实例

    对于通信工程专业毕业生有用的面试资料 监测网络性能 信令分析在网络优化中所起的重要作用 典型实例

    Oracle数据库性能优化的艺术 (文平) 高清PDF扫描版

    《oracle数据库性能优化的艺术》内容高屋建瓴,用辩证法中的系统化分析方法,不仅从硬件(服务器系统、存储系统、网络系统等)、软件(操作系统、中间件系统、应用软件等)和应用场景(用户访问模式、用户使用频度、...

    SQLServer2008查询性能优化 2/2

    《SQL Server 2008查询性能优化》通过大量实例,详细介绍了SQL Server数据库系统优化的各种方法和技巧。内容涵盖了数据库应用系统中各种性能瓶颈的表现形式及其发生的根源和解决方法,从硬件瓶颈到查询、索引设计...

    基于Web应用的性能测试与优化_苏波

    为保证 Web 应用软件的质量和可靠性,Web 应用程序性能测试技术的研究越来越...讨论了 Web 应用的性能测试原理和测试工具,并对一个 Web 应用实例进行性能测试,然后对测试结果进行分析,根据测试结果提出了优化措施。

    《Sql Server 2008查询性能优化》扫描版-part1

    书 名: SQLServer2008查询性能优化 作 者:(美)弗里奇,(美)达姆 ,姚军 译 出版社: 人民邮电出版社 本书通过大量实例,详细介绍了SQL Server数据库系统优化的各种方法和技巧。内容涵盖了数据库应用系统中...

    SQL Server 2008 查询性能优化 part2

    本书通过大量实例,详细介绍了SQL Server数据库系统优化的各种方法和技巧。内容涵盖了数据库应用系统中各种性能瓶颈的表现形式及其发生的根源和解决方法,从硬件瓶颈到查询、索引设计以及数据库管理等,贯穿了...

    Java优化编程(第2版)

    14.2.2 ajax技术性能优化实例 小结 第15章 其他优化话题 15.1 用weakhashmap屏蔽内存泄漏 15.2 优化java应用大小 15.3 通过randomaccess接口优化迭代列表 15.4 合并java中的多进程与系统优化 小结 附录a together...

    Linux系统案例精解:存储、Oracle数据库、集群、性能优化、系统管理、网络配置

    这是一本集linux系统管理、oracle数据库、ha高可用、系统性能分析、linux日志管理、磁盘阵列存储管理、linux内核优化于一身的综合范例指南。本书最大的特色在于采用了大量的企业应用案例,将企业应用中常用的管理...

    Oracle9i数据库系统优化与调整.pdf

    第6章 性能优化基础知识 第7章 系统优化方法 第二部分 ORACLE应用系统设计优化 第8章ORACLE数据库系统优化安装 第9章 项目分析、设计与管理 第10章 数据库结构设计要点 第三部分 ORACLE应用系统开发优化 第12...

    SQLServer2008查询性能优化 1/2

    《SQL Server 2008查询性能优化》通过大量实例,详细介绍了SQL Server数据库系统优化的各种方法和技巧。内容涵盖了数据库应用系统中各种性能瓶颈的表现形式及其发生的根源和解决方法,从硬件瓶颈到查询、索引设计...

    Java Web开发实例大全

    Java Web开发实例大全(提高卷)筛选、汇集了Java Web开发从基础知识到高级应用各个层面的大量实例及源代码,共有600个左右,每个实例及源代码按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析...

    Java优化编程(第二版PDF)

    通过丰富、完整、富有代表性的实例,展示了如何提升Java应用性能,并且给出了优化前与优化后的Java应用程序的性能差别,以实际的实例与数字告诉你,为什么不可以这么做,应该怎么做,深入分析了影响Java应用程序性能...

    java优化编程(pdf)

    本书通过丰富、完整、富有代表性的实例,展示了如何提升Java应用性能,并且给出了优化前与优化后的Java应用程序的性能差别,以实际的实例与数字告诉你,为什么不可以这么做,应该怎么做,深入分析了影响Java应用程序...

    Java优化编程(第一版PDF)

    本书通过丰富、完整、富有代表性的实例,展示了如何提升Java应用性能,并且给出了优化前与优化后的Java应用程序的性能差别,以实际的实例与数字告诉你,为什么不可以这么做,应该怎么做,深入分析了影响Java应用程序...

Global site tag (gtag.js) - Google Analytics