JVM参数说明
1、JDK提供的Java命令
Java命令存在jdk/bin目录
1)javac
2)java
3)javap
4)jps(对Java程序进行展示)
Linux(ps)
5)jps(进程id)
6)jstack(展示堆栈信息、堆空间或堆空间相应垃圾回收的信息)
7)jmap(查看堆空间信息)
8)jstat()
2、非Java命令
top(实时动态地查看系统整体运行情况)
3、参数设置(两种形式)
1)对当前JVM实例进行设置
2)对所有的JVM实例设置全局参数,在全局配置文件中设置
-Xms20M(设置堆内存容量的最小值20M,必须以M为单位)
-Xmx20M(设置堆内存容量的最大值20M)
-Xss128k(设置虚拟机栈的大小为128k)
-Xoss128k(设置本地方法栈大小)
注:多个参数设置用空格分开
-XX:PermSize=10M(设置堆中永久代的容量,必须以M为单位)
-XX:MaxPermSize=20M(设置永久代的最大容量为20M)
-Xmn10(设置年轻代的大小为10)
-XX:NewRatio=4(设置年轻代和老年代的比值为1:4)
-XX:SurvivoRatio=8(Survivor区和Eden区比值为1:8)
-XX:+UseG1GC(设置垃圾回收器为G1回收器)
-XX:+PrintGCDetails(打印详细的GC操作)
4、实际问题定位
(*问题)1
某服务器CPU的使用率达到99%、排查那个程序的线程导致高CPU使用率
CPU使用情况——top命令
- 查看CPU使用最高的进程
- 查看该进程下线程的CPU使用情况
- 查看线程堆栈信息
(*问题)2
某java程序大量消耗内存,导致频繁Full GC
- 排查思路
- 命令使用