面试系列(七)| 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




