内容简介:JDK本身是提供了一些监控工具,有一些是命令行,也有图形界面。本次介绍命令行如何进行监控。命令行是非常重要的,因为在我们生产环境基本上是没有图形界面的,完全是通过命令行。
JDK本身是提供了一些监控工具,有一些是命令行,也有图形界面。本次介绍命令行如何进行监控。
命令行是非常重要的,因为在我们生产环境基本上是没有图形界面的,完全是通过命令行。
主要内容:
- JVM的参数类型
- 运行时JVM参数查看
- jstat查看虚拟机统计信息
- jmap+MAT实战内存溢出
- jstack实战死循环与死锁
JVM参数类型
那么都有哪些JVM参数类型呢?一共分为三大类
- 标准参数
- X参数
- XX参数
标准参数
1.-help
2.-server -client
3.-version -showversion
4.-cp -classpath
标准参数,在各个版本的JVM里面中,基本保持不变。相对比较稳定
例如:java -help
X参数
- 非标准参数
也就是说在各个版本的JVM中可能会变,但是变化的也比较小。
1.-Xint:解释执行
2.-Xcomp:第一次使用就编译成本地代码
3.-Xmixed:混合模式,JVM自己来决定是否编译成本地代码
举例:
但是我们这块X参数平时用的并不多,用的更多而是后面这块XX参数。
XX参数
这块参数用的是非常多,相信许多同学在网上会经常看到XX参数来设置JVM。我们先来看下它都有什么特点。
特点:
- 非标准化参数化
- 相对不稳定
- 主要用于JVM调优和Debug
分类
主要分为两大类
- Boolean类型
格式:-XX:[+-]
比如:
-XX:+UseConcMarkSweepGC
表示启用了CMS垃圾收集器
-XX:+UseG1GC
表示启用了G1垃圾收集器
- 非Boolean类型
格式:-XX:
比如:
-XX:MaxGCPauseMillis=500
表示GC最大的停顿时间是500ms。
-XX:GCTimeRatio=19
表示GCTimeRatio等于19。
小结
以上先简单了解一下分为两大类:Boolean 与 非Boolean类型。Boolean是带有+-号,而非Boolean类型是key,value形式存在,中间用等号。
-Xmx -Xms
这两个参数,相信许多小伙伴们都见过。这两个参数分别是一个设置最大内存,一个设置最小内存。
-
不是X参数,而是XX参数
1.-Xms等价于-XX:InitialHeapSize
2.-Xmx等价于-XX:MaxHeapSize
3.-Xss等价于-XX:ThreadStackSize
InitialHeapSize
初始堆的大小。 MaxHeapSize
最大的堆大小。 ThreadStackSize
线程堆栈大小
可以先简单查看下运行后的进程,最大的堆大小值。
查看一下线程的堆栈大小。
可以看到这块的线程堆栈大小有1024k,默认情况不做修改的话,堆栈其中的一个线程就有1024k,这线程应该还是比较大的。我们在调优的时候还是会把这个值调小一些。
这次就先介绍到这里,下一章讲介绍 如何查看JVM运行时参数 。
推荐
文末
文章收录至
Github: https://github.com/CoderMerlin/coder-programming
Gitee: https://gitee.com/573059382/coder-programming
欢迎 关注 并star~
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Rust关联类型与默认泛型类型参数
- TypeScript 进阶:Class 中的动态类型参数
- bug诞生记——不定长参数隐藏的类型问题
- Kotlin的独门秘籍Reified实化类型参数(下篇)
- vue 子组件修改props引用类型参数引发的思考
- [ PHP 内核与扩展开发系列] 函数的参数:arginfo 与类型绑定
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
SHA 加密
SHA 加密工具
HSV CMYK 转换工具
HSV CMYK互换工具