JVM参数说明与配置
参数名与参数说明
-server 启用能够执行优化的编译器, 显著提高服务器的性能,但使用能够执行 优化的编译器时,服务器的预备时间将会较长。生产环境的服务器强烈推荐设置 此参数。
-Xss 单个线程堆栈大小值;JDK5.0 以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在 3000~5000 左右。
-XX:+UseParNewGC 用来设置年轻代为并发收集【多CPU】,如果你的服务器 有多个CPU,你可以开启此参数;开启此参数,多个CPU 可并发进行垃圾回收,可提高垃圾回收的速度。此参数和+UseParallelGC,-XX:ParallelGCThreads 搭配使用。
+UseParallelGC 选择垃圾收集器为并行收集器。此配置仅对年轻代有效。即上述配置下,年轻代使用并发收集,而年老代仍旧使用串行收集。可提高系统的吞吐量。
-XX:ParallelGCThreads :年轻代并行垃圾收集的前提下(对并发也有效果)的线程数,增加并行度,即:同时多少个线程一起进行垃圾回收。此值最好配置与处理器数目相等。
永久存储区相关参数:
参数名参数说明
-Xnoclassgc 每次永久存储区满了后一般GC 算法在做扩展分配内存前都会触发一次FULL GC,除非设置了-Xnoclassgc。
-XX:PermSize 应用服务器启动时,永久存储区的初始内存大小。
-XX:MaxPermSize 应用运行中,永久存储区的极限值。为了不消耗扩大JVM 永久存储区分配的开销,将此参数和-XX:PermSize 这个两个值设为相等。
堆空间相关参数
参数名参数说明
-Xms 启动应用时,JVM 堆空间的初始大小值。
-Xmx 应用运行中,JVM 堆空间的极限值。为了不消耗扩大JVM 堆控件分配的开销,将此参数和-Xms 这个两个值设为相等,考虑到需要开线程,讲此值设置为总内存的80%。
-Xmn 此参数硬性规定堆空间的新生代空间大小,推荐设为堆空间大小的1/4。
上面所列的JVM 参数关系到系统的性能,而其中-XX:PermSize,-XX:MaxPermSize,
-Xms,-Xmx 和-Xmn 这5 个参数更是直接关系到系统的性能, 系统是否会出现内存溢出。
-XX:PermSize 和-XX:MaxPermSize 分别设置应用服务器启动时,永久存储区的初始大小和极限大小;在生成环境中强烈推荐将这个两个值设置为相同的值,以避免分配永久存储区的开销,具体的值可取系统“疲劳测试”获取到的永久存储区的极限值;如果不进行设置
-XX:MaxPermSize 默认值为64M,一般来说系统的类定义文件大小都会超过这个默认值。
-Xms 和-Xmx 分别是服务器启动时,堆空间的初始大小和极限值。-Xms 的默认值是物理内存的1/64 但小于1G,-Xmx 的默认值是物理内存的1/4 但小于1G.在生产环境中这些默认值是肯定不能满足我们的需要的。也就是你的服务器有8g 的内存,不对JVM 参数进行设置优化,应用服务器启动时还是按默认值来分配和约束JVM 对内存资源的使用,不会充分的利用所有的内存资源。
到此我们就不难理解上文提到的“我的服务器有8g 内存,系统也就100M 左右,居然出现内存溢出”这个“怪现象”了。在上文我曾提到“永久存储区溢(java.lang.OutOfMemoryError: Java Permanent Space)”和“JVM 堆空间溢出(java.lang.OutOfMemoryError: Java heap space)”这两种溢出错误。现在大家都知道答案了:“永久存储区溢出(java.lang.OutOfMemoryError: Java Permanent Space)”乃是永久存储区设置太小,不能满足系统需要的大小,此时只需要调整-XX:PermSize 和-XX:MaxPermSize 这两个参数即可。“JVM 堆空间溢出(java.lang.OutOfMemoryError: Java heap space)”错误是JVM 堆空间 不足,此时只需要调整-Xms 和-Xmx 这两个参数即可。
分享到:
相关推荐
在/usr/local/apache-tomcat-5.5.23/bin目录下的catalina.sh 添加:JAVA_OPTS='-Xms512m -Xmx1024m' 要加“m”说明是MB,否则就是KB了,在启动tomcat时会报内存不足。 -Xms:初始值 -Xmx:最大值 ...
jvm 配置jvm参数 配置jvm参数
详述tomcat服务端配置,使并发更加流畅
JVM参数配置及MyEclipse内存不足.rarJVM参数配置及MyEclipse内存不足.rarJVM参数配置及MyEclipse内存不足.rar
Java虚拟机JVM参数配置说明.pdf
主要介绍了JVM 参数配置详细介绍的相关资料,需要的朋友可以参考下
常用jvm参数都在这张图中,参考起来方便,是国外大神整理的
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、...
如何配置jvm参数,并且调优,适合各路开发者,
jvm参数优化后,tomcat稳定可靠,附件为通过长时间在线测试的配置参数文件
JVM运行时各种参数配置说明
linux 下jvm基本参数设置 查看linux jvm的设置基本命令
深入详解JVM内存模型与JVM参数详细配置,感兴趣的小伙伴们可以一块学习下。
常用JVM配置参数.ppt
Linux 下,weblogic10.3.6版本,集群的安装配置及调试
常用JVM配置参数.
jvm优化;
jvm配置参数详解,以及Java gc详解
深入详解JVM内存模型与JVM参数详细配置.pdf
1、java虚拟机的基本介绍。 2、字节码的执行 3、常用的jvm参数配置 4、算法和种类 5、gc参数配置 6、类加载器 7、性能监控工具 8、jvm堆栈分析