J2EE系统应用性能问题解决的通用方法

原创 2011年08月17日 11:10:24
 

应用服务器资源的使用情况

JVM堆的使用情况

系统资源的使用情况

数据库资源的使用情况

网络活动

这些现象表明J2EE应用依赖很多外部资源,并且是运行在一个层次化的执行模式的环境中:

由于Java虚拟机和应用服务器掩盖了操作系统和硬件的特性,所以在设计软件系统时,架构工程师更应该深刻理解整个操作环境。

在设计软件系统时,架构工程师应把性能和可扩展性放在首位,然后开始寻找容易解决的问题,反应时间缓慢通常的原因是访问数据库效率低和过多地调用远程对象和方法。接下来,架构工程师可继续寻找不明显的原因,例如算法的累积影响和不必要的开销。

现在市场上的各个J2EE应用服务器有很多配置项目。这里只简单介绍一些常见的性能优化配置项目。

很多应用服务器都有一些与J2EE规范有关的操作系统配置项目或非标准的特性,这可以提高系统性能。应该化时间来理解这些性能配置。

Java虚拟机堆和垃圾回收设置

任何Java应用的性能调整基础都涉及到堆的大小和垃圾回收设置。(这里主要讨论Sun HotSpor JVM).

堆可分为三代,年轻的(新的),年老的和持久的。Hotspot JVM的内存基本配置包括最大堆大小,初始堆大小和年轻一代堆的大小。当配置最大堆大小时可参考下面一些指导:

最大大小应小于物理内存,避免虚存的页面调度。

需要减去其他进程使用的内存

在负载测试时进行优化

注意不要将最大堆大小设置得过大。堆越大,内存中保存的对象越多。内存中对象越多,回收过程时间越长。

配置初试堆大小的一般性策略包括:

将初始大小设置为最大堆大小

将初始大小设置为最大堆大小的1/4到1/2

对于年轻一代堆大小,Sun 推荐是设置为最大堆大小的1/3。

也可以选择不同的垃圾回收算法。首先是增量垃圾回收。该算法的意思是减少单个对象回收停顿时间,这样的结果是整体回收性能的下降。该算法将相互引用的对象分组,然后尝试按组回收。尝试回收的部分越小,回收处理的时间往往会越少。

J2EE Design Patterns 3 -- Pattern太多了,没必要教条,把Pattern当做启发,理解问题和掌握解决问题的通用方法和思想最重要。

Composite View

J2EE系统很慢,如何解决性能问题

这篇文章,是PRO JAVA EE 5 Performance Management and Optimization 的一个章节,作者Steven Haines分享了他在调优企业级JAVA应用时所遇...

应用OSCache提升J2EE系统运行性能

文章摘要Cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能。本文中作者给大家介绍一个实现J2EE框架中Web应用层...

应用OSCache提升J2EE系统运行性能

Cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在Web应用中,通过缓存页面的输出结果,可以很显著的改善系统运行性能。本文中作者给大家介绍一个实现J2EE框架中Web应用层缓存功能...
  • ocean20
  • ocean20
  • 2011年07月21日 09:41
  • 580

如何诊断 J2EE 系统中的性能问题

如何诊断 J2EE 系统中的性能问题时间:2004-12-14作者:John Bley浏览次数: 本文关键字:诊断, J2EE, 性能, 测试, 瓶颈文章工具 推荐给朋友 打印文章现在要求您诊断 We...
  • ppslide
  • ppslide
  • 2011年06月17日 13:14
  • 327

javamail,java发email,发邮件,jaf,activation,j2ee5冲突问题解决

首先要引mail.jar和activation.jar包 下载地址为: javamail:http://java.sun.com/products/javamail/downloads/index.h...

J2EE for Spring在Idea里无法加载applicationContext.xml问题解决

本文并不能很好解决问题,请移步下文获得最终的解决方案:最终解决方案今天博主在学习spring,在此过程中可谓是问题一个接一个,最令人头疼的还是加载xml文件的问题,但是找了好多关于idea构建spri...
  • tydyz
  • tydyz
  • 2017年08月01日 01:17
  • 677

J2EE for SpringMVC 映射静态资源独Js不成功的问题解决

刚才博主遇到一个很头大的问题,静态资源映射了,路径语法啥的都没问题而css和img又能够映射成功,能够正常读取,经过反复检查,博主发现是版本跟不上了。看看博主的配置先:...
  • tydyz
  • tydyz
  • 2017年08月08日 18:53
  • 177
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:J2EE系统应用性能问题解决的通用方法
举报原因:
原因补充:

(最多只允许输入30个字)