面试系列(七)| JVM常见命令
JVM 常用命令介绍
下面介绍一下
JVM
中常用的调优、故障处理等工具。
- jps :虚拟机进程工具,全称是 **JVM Process Status Tool**,它的功能和
Linux
中的ps
类似,可以列出正在运行的虚拟机进程,并显示虚拟机执行主类 Main Class 所在的本地虚拟机唯一ID
,虽然功能比较单一,但是这个命令绝对是使用最高频的一个命令。 - _jstat_:虚拟机统计信息工具,用于监视虚拟机各种运行状态的信息的命令行工具,它可以显示本地或者远程虚拟机进程中的类加载、内存、垃圾收集、即时编译等运行时数据。
- jinfo:Java 配置信息工具,全称是 _Configuration Info for Java_,它的作用是可以实时调整虚拟机各项参数。
- _jmap_:Java 内存映像工具,全称是 _Memory Map For Java_,它用于生成转储快照,用来排查内存占用情况
- jhat:虚拟机堆转储快照分析工具,全称是 _JVM Heap Analysis Tool_,这个指令通常和 jmap 一起搭配使用,jhat 内置了一个 HTTP/Web 服务器,生成转储快照后可以在浏览器中查看。不过,一般还是 jmap 命令使用的频率比较高。
- _jstack_:Java 堆栈跟踪工具,全称是 Stack Trace for Java ,顾名思义,这个命令用来追踪堆栈的使用情况,用于虚拟机当前时刻的线程快照,线程快照就是当前虚拟机内每一条正在执行的方法堆栈的集合。
常见的 JVM 调优参数有哪些?
命令参数 | 作用 |
---|---|
-Xms256m | 初始化堆大小为 256m |
-Xmx2g | 最大内存为 2g |
-Xmn50m | 新生代的大小 50m |
-XX:+PrintGCDetails | 打印 gc 详细信息 |
-XX:+HeapDumpOnOutOfMemoryError | 在发生OutOfMemoryError 错误时,来 dump 出堆快照 |
-XX:NewRatio=4 | 设置年轻的和老年代的内存比例为 1:4 |
-XX:SurvivorRatio=8 | 设置新生代Eden 和 Survivor 比例为 8:2 |
-XX:+UseSerialGC | 新生代和老年代都用串行收集器Serial + Serial Old |
-XX:+UseParNewGC | 指定使用ParNew + Serial Old 垃圾回收器组合 |
-XX:+UseParallelGC | 新生代使用Parallel Scavenge ,老年代使用 Serial Old |
-XX:+UseParallelOldGC | 新生代ParallelScavenge + 老年代 ParallelOld 组合 |
-XX:+UseConcMarkSweepGC | 新生代使用ParNew ,老年代使用 CMS |
-XX:NewSize | 新生代最小值 |
-XX:MaxNewSize | 新生代最大值 |
-XX:MetaspaceSize | 元空间初始化大小 |
-XX:MaxMetaspaceSize | 元空间最大值 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 码农Stormling!
评论
ValineGitalk