tomcat优化:
JVM内存JAVA_OPTS参数说明
我经常会这样来设置服务器端的JVM:JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss512k"
-server:一定要作为第一个参数,在多个CPU时性能佳
-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
-Xmx:java heap最大值,使用的最大内存
上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。
-XX:PermSize:设定内存的永久保存区域
-XX:MaxPermSize:设定最大内存的永久保存区域
-XX:MaxNewSize:
-Xss 15120 这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.
+XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
-Xss:每个线程的Stack大小
-verbose:gc 现实垃圾收集信息
-Xloggc:gc.log 指定垃圾收集日志文件
-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一
-XX:+UseParNewGC :缩短minor收集的时间
-XX:+UseConcMarkSweepGC :缩短major收集的时间
提示:此选项在Heap Size 比较大而且Major收集时间较长的情况下使用更合适。
来源:(http://blog.sina.com.cn/s/blog_4bd8e63a0100jufg.html ) - JVM内存JAVA_OPTS参数说明_太阳_新浪博客
详细设置为:
%EIO_JRE_HOME%/bin/java -Xms512m -Xmx1024m -XXermSize=128m -XX:NewSize=64m -XX:MaxNewSize=128m -XX:NewRatio=3 -XX:SurvivorRatio=6 -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=40 -Xverify:none -Dsun.java2d.ddlock=true -Dsun.awt.noerasebackground=true -Dswing.aatext=true -jar %EIO_HOME%/EIOffice.jar
http://www.alixixi.com/program/a/2008070736859.shtml
Linux上:
在/usr/tomcat/bin/catalina.sh中加入
export JAVA_OPTS='-Xms[初始化内存大小] -Xmx[可以使用最大内存]'
例如:export JAVA_OPTS='-Xms256m -Xmx512m'
如果你用unix/linux
/tomcat/bin/catalina.sh 加上命令:JAVA_OPTS=-Xms128m -Xmx512m
echo Using CATALINA_BASE: %CATALINA_BASE% 上面添加或更改
内存4g以上 建议 set JAVA_OPTS=%JAVA_OPTS%-Xms512m -Xmx1024m
内存2g 建议 set JAVA_OPTS=%JAVA_OPTS%-Xms128m -Xmx512m
时间结果:
添加后:
JAVA_OPTS='-Xms2048m -Xmx4096m'
error: tomcat Invalid maximum heap size: -Xmx4096m
JAVA_OPTS='-server -Xms2048m -Xmx2048m -XX:NewSize=128m -XX:MaxNewSize=192m -XX:SurvivorRatio=8'
修改为2048,就没有报错。