JVM常用参数整理

1.参数设置实例:

-Xmx3550m -Xms3550m -Xss128k -XX:MetaspaceSize=256m -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -XX:+UseSerialGC

参数说明:

-Xmx3550m:设置JVM最大可用内存为3550M。等价于-XX:InitialHeapSize。
-Xms3550m:设置JVM促使内存为3550m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。等价于-XX:MaxHeapSize

-Xss128k:设置每个线程的堆栈大小。根据应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。

JVM给了三种选择:串行收集器、并行收集器、并发收集器,但是串行收集器只适用于小数据量的情况,所以这里的选择主要针对并行收集器和并发收集器。默认情况下,JDK5.0以前都是使用串行收集器,如果想使用其他收集器需要在启动时加入相应参数。JDK5.0以后,JVM会根据当前系统配置进行判断。

 -XX:MetaspaceSize:元空间初始大小,一般要修改。默认情况下,64位服务器,16G内存,元空间默认大小只有21MB,一旦元空间的大小触及这个高水位线,就会触发Full GC并卸载没有用的类,然后重置高水位线的值。容易造成元空间内存不够用,报OOM。建议将 -XX:MetaspaceSize设置为较高的值。

-XX:+PrintGCDetails: 搜集gc详细日志信息。

-XX:+UseSerialGC:串行收集器。jdk8默认并行收集器。并发收集器,但是串行收集器只适用于小数据量的情况,所以这里的选择主要针对并行收集器和并发收集器

posted @ 2021-08-09 10:50  安然66  阅读(76)  评论(0)    收藏  举报