- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
影响JavaEE性能的十大问题分享.
影响Java EE性能的十大问题分享本文作者是一名有10多年经验的高级系统架构师,他的主要专业领域是Java EE、中间件和JVM技术。他在性能优化和提升方面也有很深刻的见解,下面他将和大家分享一下常见的10个影响Java EE性能问题。1.缺乏正确的容量规划容量规划是一个全面的和发展的过程标准,预测当前和未来的IT环境容量需求。制定合理的容量规划不仅会确保和跟踪当前IT生产能力和稳定性,同时也会确保新项目以最小的风险部署到现有的生产环境中。硬件、中间件、JVM、调整等在项目部署之前就应该准备好。2.Java EE中间件环境规范不足“没有规矩,不成方圆”.第二个比较普遍的原因是Java EE中间件或者基础架构不规范。在项目初始,新平台上面没有制定合理的规范,导致系统稳定性差。这会增加客户成本,所以花时间去制定合理的Java EE中间件环境规范是必须的。这项工作应与初始容量规划迭代相结合。3.Java虚拟机垃圾回收过度各位对“java.lang.OutOfMemoryError”这个错误信息是不是很熟悉呢?由于JVM的内存空间过度消耗(Java堆、本机堆等)而抛出的异常。垃圾收集问题并不一定会表现为一个OOM条件,过度的垃圾收集可以理解成是JVM GC线程在短时间里进行轻微或超量收集集合数据而导致的JVM暂停时间很长和性能下降。可能有以下几个原因:与JVM的负载量和应用程序内存占用量相比,Java堆可能选择的太小。JVM GC策略使用不合理。应用程序静态或动态内存占用量太大,不适合在32位JVM上使用。JVM OldGen随着时间推移,泄漏越来越严重,而GC在几个小时或者几天后才发现。JVM PermGen空间(只有HotSpot VM)或本机堆随着时间推移会泄露是一个非常普遍的问题;OOM的错误往往是观察一段时间后,应用程序进行动态调动。YoungGen和OldGen的比例空间与你的应用程序不匹配。Java堆在32位的VM上太大,导致本机堆溢出,具体可以表现为OOM试着去链接一个新的Java EE应用程序、创建一个新的Java线程或者需要计算本地内存分配任务。建议:观察和深入理解JVM垃圾回收。启动GC,根据健康合理的评估来提供所有的数据。记住,GC方面的相关问题不会在开发中或者功能测试时发现,它需要在多用户高负载的测试环境下发现。4.与外部系统集成过多或过少导致Java EE性能差的第四个原因是高分布式系统,典型案例是电信IT环境。在这个环境中,一个中间件领域(例如,服务总线)很少会做所有的工作,而仅仅是把一些业务“委托”给其他部分,例如产品质量,客户资料和订单管理,到其他Java EE中间件平台或遗留系统中,如支持各种不同的负载类型和通信协议的大型机。这样的外部系统调用意味着客户端的Java EE应用程序触发创建或重用套接字链接从外部系统中读写数据。根据业务流程的实施和实现可以配置成同步调用或异步调用。需要注意的是,响应时间会根据外部系统的稳定状况进行改变,所以通过适当的使用超时来保护Java EE应用程序和中间件也是非常重要的。下面这3种情况是经常出现问题和性能降低的地方:同步和相继调用太多的外部系统。在Java EE客户端应用程序和外部系统之间链接超时,使数据丢失或者值太高导致客户端线程被卡住,从而导致多米拉效应。超时,但程序仍正常执行,可是中间件不处理这种奇怪的路径。最后,建议多进行负面测试,这意味着需要“人为”创造产生这些问题的条件,用来测试应用程序和中间件之间是如何处理外部系统错误。5.缺乏适当的数据库SQL调优和容量规划大家可能会对这一个感到惊奇:数据库问题。大多数Java EE企业系统是依赖关系型数据库处理复杂的业务流程。一个基础扎实稳固的数据库环境可以确保IT环境有规模的增长,来支持日益不断扩大的业务。在实际中,与数据库相关的性能问题是很常见的。由于多数数据库事务处理都是由JDBC数据源执行的(包括关系持久化API,例如Hibernate)。而性能问题最初都会表现为线程阻塞。以下是我在10年的工作中,经常出现的关于数据库方面的问题(以Oracle数据库为例):孤立的,长时间运行的SQL.主要表现为线程阻塞、SQL没有进行优化、缺少索引、非最佳的执行计划、返回大量数据集等等。表或行级数据锁定。当提交一个双阶段事务模型时(例如,臭名昭着的Oracle可疑事务)。Java EE容器可能会留下一些未处理的事务等待最后的提交或回滚,留下的数据锁能触发性能问题,直到最后的锁被移除。例如中间件断电或者服务器崩溃都可能引起这些情况发生。缺乏合理规范的数据库管理工具。例如Oracle里面的REDO logs,数据库数据文件等。磁盘空间不足,日志文件不旋转等都会触发较大的性能问题和断电情况。建议:合理的容量规划,包括负载和性能
您可能关注的文档
- 弱电系统培训教程(安防..doc
- 弹性力学及有限元基础复习权威版(必威体育精装版)..doc
- 弹性力学简明教程答案..doc
- 弹性力学_第二章__应力状态分析..doc
- 弹性力学期末考试卷A答案2..doc
- 弹力袜及其相关知识..doc
- 弹性力学与有限元分析试题及其答案..doc
- 弹涂施工方案134..doc
- 弹性力学轴对称问题的有限元法..doc
- 弹性学分制下计算机专业应用型人才培养研究..doc
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
最近下载
- 文华财经期货软件指标公式源码赢顺云指标散户机构庄家资金成交量.docx
- 基于Android的天气预报的设计实现.doc VIP
- 中药饮片自查情况表.docx
- 浙江嵊州市剡城中学教育集团2023年重点高中自主招生(提前提)考试语文模拟试卷(无答案)部编人教.docx
- 16J601 木门窗的图集.docx VIP
- 高中英语_Unit 4 After Twenty Years教学设计学情分析教材分析课后反思179.pdf VIP
- xx商业地产招商佣金实施细则.docx
- 西门子16层螺旋CT-心脏重建方法.pdf
- 学校食堂有害生物防治制度.docx
- 基于Android的天气预报系统的设计与实现.docx VIP
文档评论(0)