JVM 调优实战--JVM的运行参数
为什么要进行JVM优化?
本篇博文基于jdk1.8来讲解。
JVM的参数
标准参数比较稳定,基本上各个不同的jdk版本都会支持。
-X参数是非标参数,各个版本不同,可能用着用着就没了。
-XX参数也属于非标参数,用于JVM调优和debug调试,使用率比较高。
标准参数
jvm的标准参数,一般都是很稳定的,在未来的jvm版本中不会改变。
可以通过 java -help打印出来所有的标准参数:
实战:查看jvm版本
实战:通过-D设置系统属性参数
-server与-client参数
对于64位操作系统,jvm默认是server模式,手动指定为client模式不会生效:
一般情况下,都是使用的server模式。
-X非标参数
JVM的-X参数是非标准参数,在不同版本的JVM中,参数可能会有所不同,可以通过 java -X查看所有非标准参数
-Xint、-Xcomp、-Xmixed
-Xint是解释模式,代码会逐行执行所有字节码,会降低运行速度,至少低10倍;(编译快,运行慢。)
-Xcomp是编译模式,jvm在第一次使用时会将所有的字节码编译成本地代码;(编译慢,运行快。)
-Xmixed是混合模式,也是jvm默认也是推荐使用的模式。混合使用解释和编译模式,由jvm自己决定。
-XX非标参数
-Xms和-Xmx参数
尽量将这两个参数的值设置成一样的,因为在运行过程中弹性扩容或减小容量都会带来性能损耗。
查看JVM的运行参数
运行java命令时打印出运行参数
=表示是默认值未曾修改;
:=表示值已经被修改过。
查看正在运行的JVM参数
查看java进程的两种方式:
①通过ps -ef|grep tomcat Linux命令来查看;
②通过jps命令查看所有java进程。
5212是Tomcat进程;
5246是jps本身的进程ID。
通过jps -l命令可以查看完整的包名:
通过 jinfo -flags 5212查看完整jvm参数信息:
可以通过字节转换成兆M来查看MaxHeapSize最大堆内存为466M:
查看某一个参数的值,使用如下命令: