1. JDK版本选择
如果新手请选择SUN的JVM,在满足项目需要的前提下,尽量选用版本较高的JVM,一般来说高版本产品在速度和效率上比低版本会有改进。 JDK1.4比JDK1.3性能提高了近10%-20%,JDK1.5比JDK1.4性能提高25%-75%。 因此对性能要求较高的情况推荐使用 JDK1.6。
这里需要补充的是,各位在打算升级JVM时,一定要先让开发先试用高版本的JVM,调试高版本JVM对工程的影响,经过测试后逐步部署到测试环境,经过一定时间的验证,发现没有问题后再谨慎的更换到生产。JVM版本不一致,很容易出现各类异常,对待生产,谨慎永远是第一原则!
JVM调优参见:http://vekergu.blog.51cto.com/9966832/1626733
2 JDK参数优化
Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置JAVA_OPTS参数。
2.1 JAVA_OPTS参数说明
-server 启用jdk 的 server 版;
-Xms java虚拟机初始化时的最小内存;
-Xmx java虚拟机可使用的最大内存;
-XX:PermSize 内存永久保留区域
-XX:MaxPermSize 内存最大永久保留区域
-Xms=-Xmx=服务器内存*70%,如部署tomcat,jboss在同一台服务器-Xms=-Xmx=服务器内存*80%*1
/4
,现公司服务器内存一般都可以加到最大4G,所以可以采取以下配置,把以下参数添加到catalina.sh里面,
JAVA_OPTS=
'-Xms1024m -Xmx4096m -XX:PermSize=256M -XX:MaxNewSize=256m-XX:MaxPermSize=256m'
#-Xmx6000m :设置JVM最大可用内存为6000MB
#-Xms6000m :设置JVM初始可用内存为6000MB
#-Xmn2g :设置年轻代大小为2G
#-Xss128k :设置每个线程的堆栈大小为128k
#-XX:NewRatio=4 :设置年轻代与年老代的比值为4
#-XX:SurvivorRatio=4 :设置年轻代中Eden区与Survivor区的大小比值为4
#-XX:PermSize=512m :设置堆栈永久区起始大小为512m
#-XX:MaxPermSize=512m :设置堆栈永久区最大大小为512m
#-XX:MaxTenuringThreshold=0 :设置垃圾最大年龄为0
#-XX:+UseParallelGC :选择垃圾收集器为并行收集器
#-XX:ParallelGCThreads=8 :配置并行收集器的线程数
#-XX:+UseParallelOldGC :配置年老代垃圾收集方式为并行收集
#-XX:+UseAdaptiveSizePolicy :并行收集器会自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低响应时>间或者收集频率等,此值建议使用并行收集器时,一直打开。