架构师考试论文-论Web应用系统性能优化技术与应用.docx

架构师考试论文-论Web应用系统性能优化技术与应用.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

摘要:

2018年下半年,本人有幸参加了某汽车玻璃生产厂商的“产品质量追溯与条码管理系统”的性能优化工作。该系统基于三层B/S架构,是以条码管理为基础、涵盖原材料采购、生产物料准备、生产制造执行、仓储管理、成品调拨销售为一体的综合性管理系统。在本次性能优化工作中,本人作为技术负责人,主要负责系统现有情况分析和优化方案制定等工作。

本文以该系统的性能优化过程为例,首先介绍该系统的基本情况,然后探讨进行系统性能优化可以采用什么样的技术架构和措施,以及各种技术和措施所发挥的作用和效果,最后着重探讨在针对该系统进行性能优化时,我们是如何结合实际情况和以往的经验,在项目中使用反向代理加负载均衡、Redis内存数据库、数据库读写分离以及OracleAWR报告分析与优化等技术成功完成优化工作的。

正文:

在软件技术快速发展的今天,越来越多的软件企业选择B/S架构开发应用系统,终端用户能够非常直观地利用浏览器端与系统服务器进行交互,但是随着WEB应用系统规模的扩大以及访问量的提升,对WEB应用系统的性能要求也在逐步的提高。

2018年下半年,我公司受当地某汽车玻璃生产厂商的委托,为我公司之前为其开发的“产品质量追溯与条码管理系统”进行性能优化工作。该系统是一个基于产品条码管理的,涵盖车间整个生产过程的综合性管理系统。该系统需要覆盖到该厂商分布在全国各地的三家生产基地和十多家供货仓库,且每个生产基地包含钢化与夹层两个车间,每个车间内又分别包含十余道工序,这些工序都需要通过条码扫描设备或PC机24小时不间断高频度地与该系统进行交互,交接班时交互峰值可达每秒钟数百次。目前该系统出现了页面加载缓慢、数据上传等待时间过长、特定功能提交浏览器超时等情况,这已经影响到了该厂商车间的正常生产。该厂商要求我们针对上述情况进行优化以保证其生产业务正常进行。

作为本次优化工作的技术负责人,本人主要负责系统问题诊断分析以及优化方案制定等工作,在与客户敲定优化需求与上线时间后,我们开始针对该系统进行整体分析,从而为后续性能优化提供依据,同时我们也在考虑应该使用哪些技术对该系统进行性能优化。

针对WEB应用系统进行性能优化时,我们经常从降低单台服务器负载,提升WEB页面性能、引入内存数据库、数据库效率提升等几个方面着手。

从降低单台服务器负载的角度来讲,传统的单服务器节点模式在很多场景下已经无法满足访问量的需求,这时我们就需要考虑引入负载均衡技术,该技术将应用程序部署在集群中,然后使用Nginx等反向代理工具反向代理集群并提供一个统一的访问入口,Nginx使用静态或者动态算法将请求分发到集群的各服务器上。这样做的好处是能够有效的提高系统的性能和吞吐量,缺点是需要增加硬件成本。

从WEB页面性能的角度来讲,我们可以通过减少前后端交互次数和分离静态资源两种方式进行优化。减少前后端交互次数是指分析页面初始化时与应用服务器的交互次数,将页面各组件取值的多次交互合并为一次交互,这样可以有效降低软件前后端的交互频率,节约系统的开支;分离静态资源是指将页面中的静态资源从应用服务器中分离后单独部署或部署到Nginx上,这样也可以降低应用服务器的压力,提升整体的性能,这样做的缺点是需要增加额外的部署,增加成本。

从引入内存数据库的角度来讲,可以将系统中变化频率较低,使用频率较高的数据项一次性从传统数据库中取出,然后加载到效率更高的内存数据库中(如Redis等),后续使用到这些数据可直接从内存数据库中读取,提高系统性能,但是这种方式不建议使用在变化频率较高的数据上,另外还需要考虑数据一致性的问题。

从数据库应用效率提升的角度来讲,我们可以读写分离的方式,将数据库拆分,主库写、从库读,这样主从库就可以分别向读写两个方向进行优化。也可以通过对数据库日志的分析,找到效率较低的SQL语句,通过对SQL查询语句的优化或者索引的建立,提升SQL查询语句的效率。

针对我们本次需要优化的系统,下面着重探讨我们如何结合系统的实际情况

使用“负载均衡”、“Redis”内存数据库、数据库读写分离以及OracleAWR报告分析技术对系统进行优化以及所达到的效果。

一、负载均衡技术

我们本次需要优化的系统是一个典型的三层B/S架构应用系统,采用集中式部署的方式,为该生产厂商分布在全国的三家生产基地以及十多家供货仓库提供服务。该系统运行在两台服务器中,其中一台服务器通过Weblogic中间件运行应用程序,另外一台服务器运行Oracle数据库。这种传统的单服务器提供应用服务的方式显然已经不能满足当前的性能需要,我们考虑为应用服务器建立负载均衡,但是这样显然会增加客户的成本,于是我们与客户进行了探讨,客户从实际的需要和成本的角度考虑后,决定再提供三台服务器来实现负载均衡,我们将三台服务器均克隆为应用服务器,并且在

文档评论(0)

祝秀珍 + 关注
实名认证
内容提供者

好文档 大家想

1亿VIP精品文档

相关文档