- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JAVA WEB系统性能调优
V1.0
广州合道信息科技有限公司
2014年月: 罗承伟 创建日期: 2014-03-21 使用者: 标题: Javaweb 系统性能调优方案 分类: 部门名称: 研发部 版权声明:
文档状态
文档状态 □草稿 ■正式 文档评审人员 评审组组长:
评审组成员: 评审时间
修订文档历史记录
日期 版本 说明 作者 2014-03-21 V1.0 初稿 罗承伟
目录
1. 性能调优流程 4
1.1、确定调优目标 4
1.2、测量系统性能 5
1.3、分析性能瓶颈 5
2. JVM性能调优 5
2.1、JVM内存组成及分配 6
2.1.1、JAVA内存组成介绍:堆(Heap)和非堆(Non-heap)内存 6
2.1.2、堆内存分配 6
2.1.3、非堆内存分配 7
2.1.4、JVM内存限制(最大值) 8
2.2、JVM参数详解 8
2.3、参数配置示例 14
3. J2EE应用监控 15
3.1、数据库连接池监控(Druid) 15
3.1.1、Druid连接池配置 15
3.1.2、Druid连接池监控 17
3.2、容器管理及监控(psi-probe) 18
3.2.1、Tomcat下安装部署 18
3.2.2、probe监控界面 22
3.3、JAVA虚拟机监控(Visual VM) 25
3.3.1、VisualVM安装 25
3.3.2、VisualVM简介 25
3.3.3、安装插件 26
3.3.4、监控本地JAVA应用 27
3.3.5、监控远程JAVA应用 28
3.3.6、使用Visual VM查看JVM相关信息 31
3.3.7、使用Visual VM解决内存溢出问题 33
3.3.8、使用Visual VM查看Tomcat的线程状态 34
3.3.8、使用Visual VM查看CPU消耗情况 36
性能调优流程
性能调优无疑是个庞大且复杂的话题,也是项目中非常重要的一环。由于性能调优涵盖的面实在是太多了,我们仅看看性能调优过程中常见的一些做法。
1.1、确定调优目标
性能调优,首先是要确定性能调优的目标是什么,如果现在应用已经满足了需求,就没必要去做性能调优了,毕竟不经过一个系统的过程,其实是无法确定你所做的性能调整是否真的调优了性能,是否没有造成应用中其他的问题,所以确定性能目标是非常重要的,在定义性能目标的时候通常这么定义的呢:
最大并发数
Quality of Service
服务的质量,在软件系统方面我们认为主要表现在请求的出错率,系统的load等。
最长响应时间
对于任何请求所能承受的最大响应时间。
TPS
每秒需要支持的最大事务数,最典型的指标是:“某页面最高需要支撑每秒3000次 的访问次数”。
例如一个web系统,需要定义出来的目标是:
并发目标:最高支撑200并发;
QoS:出错率须控制在万分之一,系统的load最高只能到达10;
TPS:每秒完成3000次请求的处理;
最大响应时间:最长允许的响应时间为5秒。
至于请求的平均响应时间这些就不在性能调优目标中定义,因为要达到TPS的要求,响应时间是必须要达到一个级别的,而且响应时间随着高并发是会出现劣化的。
当然,还可以把性能指标定到更为细节,例如某个方法的TPS在100并发时需要达到多少。
在确定好了性能目标后,重要的就是如何来测量系统的性能了。
1.2、测量系统性能
对于新系统而言,需要评估出其正式运行时的数据量的增长情况;而对于已运行的系统,则需要根据监控获取到系统的运行数据(例如高峰并发数、系统的响应速度情况、系统的load、网络流量、每类请求在总的请求中所占的百分比等)。
新系统而言,要评估出具体的性能相对来说稍微好做一点,因为此时系统通常较为单纯,数据量的增长也不可能是一夜之间增长的,因此基本可以按照一种正常的方法在测试环境评估出其正式运行的性能。
而对于已运行的系统而言,则较为麻烦,因为通常来讲要在测试环境中模拟正式运行环境基本是不太可能的,因此这个时候通常要采取一些模拟的方法或更高压力的方法来尽量更为准确的评估出系统的性能。
在测试系统性能时,通常可采用的方法有:
单元测试
可借助单元测试来测试某个请求的性能
压力测试
压力测试无疑是测量系统性能中最常采用的方式,根据定义的性能目标对系统进行压力测试,以确定系统是否满足性能要求,同时也可以根据压力测试的结果来分析系统的瓶颈,进而进行对应的调优,可用于做压力测试的工具还是不少的,像loadrunner、Jmeter等。由于性能测试
您可能关注的文档
最近下载
- 二年级语文上单元归类复习.pdf VIP
- ASME B18.29.1-2010 螺旋线圈螺纹插入-自由运行和螺纹锁定(英寸系列).pdf VIP
- 电力行业检查标准清单(发电部分).docx VIP
- 2025至2030年中国四川省渔业行业发展趋势预测及投资规划研究报告.docx
- 新苏教版六年级科学上册试卷1-5单元测试卷含答案5单元全册打包期中期末复习.docx VIP
- 危大工程与超过一定规模的危大工程清单(住建部2018第31号文).pdf VIP
- 2025小学科学学科教师基本功大赛试题(理论部分附答案).docx VIP
- 钢筋混凝土化粪池22S702.docx VIP
- L23R401 城镇热水管道直埋敷设图集.docx
- GMP文件管理规程(新版).pdf VIP
文档评论(0)