AVAWEB系统性能调优

AVAWEB系统性能调优

ID:68619378

大小:70.51 KB

页数:19页

时间:2021-10-19

AVAWEB系统性能调优_第1页
AVAWEB系统性能调优_第2页
AVAWEB系统性能调优_第3页
AVAWEB系统性能调优_第4页
AVAWEB系统性能调优_第5页
AVAWEB系统性能调优_第6页
AVAWEB系统性能调优_第7页
AVAWEB系统性能调优_第8页
AVAWEB系统性能调优_第9页
AVAWEB系统性能调优_第10页
资源描述:

《AVAWEB系统性能调优》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、JAVAWEB系统性能调优广州合道信息科技有限公司2014年3月²文档信息项目名:项目编号:作者:罗承伟创建日期:2014-03-21使用者:标题:Javaweb系统性能调优方案分类:部门名称:研发部版权声明:²文档状态文档状态□草稿■正式文档评审人员评审组组长:评审组成员:评审时间²修订文档历史记录日期版本说明作者2014-03-21初稿罗承伟目录1.性能调优流程性能调优无疑是个庞大且复杂的话题,也是项目中非常重要的一环。由于性能调优涵盖的面实在是太多了,我们仅看看性能调优过程中常见的一些做法。、确定调优目标性能调优,首先是要确

2、定性能调优的目标是什么,如果现在应用已经满足了需求,就没必要去做性能调优了,毕竟不经过一个系统的过程,其实是无法确定你所做的性能调整是否真的调优了性能,是否没有造成应用中其他的问题,所以确定性能目标是非常重要的,在定义性能目标的时候通常这么定义的呢:1.最大并发数2.QualityofService服务的质量,在软件系统方面我们认为主要表现在请求的出错率,系统的load等。3.最长响应时间对于任何请求所能承受的最大响应时间。4.TPS每秒需要支持的最大事务数,最典型的指标是:“某页面最高需要支撑每秒3000次的访问次数”。例如一个

3、web系统,需要定义出来的目标是:并发目标:最高支撑200并发;QoS:出错率须控制在万分之一,系统的load最高只能到达10;TPS:每秒完成3000次请求的处理;最大响应时间:最长允许的响应时间为5秒。至于请求的平均响应时间这些就不在性能调优目标中定义,因为要达到TPS的要求,响应时间是必须要达到一个级别的,而且响应时间随着高并发是会出现劣化的。当然,还可以把性能指标定到更为细节,例如某个方法的TPS在100并发时需要达到多少。在确定好了性能目标后,重要的就是如何来测量系统的性能了。、测量系统性能对于新系统而言,需要评估出其正

4、式运行时的数据量的增长情况;而对于已运行的系统,则需要根据监控获取到系统的运行数据(例如高峰并发数、系统的响应速度情况、系统的load、网络流量、每类请求在总的请求中所占的百分比等)。新系统而言,要评估出具体的性能相对来说稍微好做一点,因为此时系统通常较为单纯,数据量的增长也不可能是一夜之间增长的,因此基本可以按照一种正常的方法在测试环境评估出其正式运行的性能。而对于已运行的系统而言,则较为麻烦,因为通常来讲要在测试环境中模拟正式运行环境基本是不太可能的,因此这个时候通常要采取一些模拟的方法或更高压力的方法来尽量更为准确的评估出系

5、统的性能。在测试系统性能时,通常可采用的方法有:1.单元测试可借助单元测试来测试某个请求的性能2.压力测试压力测试无疑是测量系统性能中最常采用的方式,根据定义的性能目标对系统进行压力测试,以确定系统是否满足性能要求,同时也可以根据压力测试的结果来分析系统的瓶颈,进而进行对应的调优,可用于做压力测试的工具还是不少的,像loadrunner、Jmeter等。由于性能测试属于测试团队的工作范畴,就不在这展开去讲了。、分析性能瓶颈根据测量系统性能的结果,多数是可以分析出系统性能瓶颈,同时还可以结合像jvm堆栈、jprofiler、系统日志

6、等来进行进一步的确定,另外也可以根据性能调优人员的经验,例如可以去了解开发人员是否采用了不适合的数据结构等。1.JVM性能调优工作中我们使用开源的J2EE容器较多,一般常用的就是tomcat及jboss,网上对tomcat和jboss进行优化的资料很多,本文仅仅对JVM参数进行讨论。、JVM内存组成及分配JAVA内存组成介绍:堆(Heap)和非堆(Non-heap)内存按照官方的说法:“Java虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在Java虚拟机启动时创建的。”“在JVM中堆之外的内存称为

7、非堆内存(Non-heapmemory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,所以方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中。组成图l方法栈&本地方法栈线程创建时产生,方法执行时生成栈帧l方法区存储类的元数据信息常量等l堆Java代码中所有的new操作lnativeMemory(Cheap)DirectBytebufferJ

8、NICompileGC、堆内存分配JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。