WEB开发网
开发学院操作系统Linux/Unix IBM WebSphere Application Server诊断和调优(二... 阅读

IBM WebSphere Application Server诊断和调优(二)

 2010-09-27 08:17:54 来源:WEB开发网   
核心提示: 配置heap最小最大值,我想大多数人都有经验,IBM WebSphere Application Server诊断和调优(二)(9),对于Sun的JVM来说,一般可以设置heap最大最小值一致,它的方法区就放在Java Heap里面,JVM规范里面并没有要求方法区的必须存放的位置,也是推荐的做法

配置heap最小最大值,我想大多数人都有经验。对于Sun的JVM来说,一般可以设置heap最大最小值一致,也是推荐的做法。因为它的GC策略默认是复制、分代算法。也就是说,它会将heap分成不同的几个区,譬如Solaris JVM中最上面有两个大小相等的区。GC时刻,将一个区的存活对象复制到另外一个对等区,垃圾对象就算遗弃了。这样在heap里面,就不存在碎片问题。另外,根据Java对象的存活期不同,将之转移到不同的区(Tenured区),存活最长的在最底部(火车算法),这也就是分代模型。具体请参考官方文档:http://java.sun.com/docs/hotspot/gc1.4.2/

对于maxPermSize(Permanent Generation),主要和那些加载到JVM里面的Java Class对象相关,它的空间不是在Java Heap里面分配。如果你当前的heap有1000M,permSize是200M,那么JVM至少占用1200M。

在这个空间内的对象的生存期和JVM是一样的,譬如JDK的核心类库,它们被System Classloader加载到JVM的Method Area(方法区)后,就不会被GC掉的,这些对象一般是Class对象,而不是普通的实例对象,也就是JVM的元数据。我们在用反射时经常用到它们。所以,对于现在象Spring、Hibernate这些框架经常通过反射创建实例,可能对maxPermSize要求就大了,缺省的64M很多时候是不够的,特别是对于应用服务器里的应用,象JSP就会产生和加载很多classes。不过,如果是它导致的OOM,一般会有类似 perm size提示。

但是,对于IBM的JVM,情况就完全不一样。它的默认GC策略并没有采取复制、分代。这个可以从GC日志分析出来。它不像Sun的JVM那样,有个单独的方法区,它的方法区就放在Java Heap里面。JVM规范里面并没有要求方法区的必须存放的位置,因为它只是一个JVM实现问题。

编缉推荐阅读以下文章

  • 设置并置 WebSphere Application Server 负载均衡器和内容主机
  • 利用 WebSphere Application Server 6.1 构建 SIP 集群应用环境及其性能调优
  • 如何实现WebSphere Application Server 6集群环境下的定时服务
  • WebSphere Application Server对SIP的支持
  • IBM WebSphere Application Server诊断和调优(一)
  • WebSphere Application Server Web 2.0 功能部件包入门

上一页  4 5 6 7 8 9 10  下一页

Tags:IBM WebSphere Application

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接