JVM常用命令及其使用范围

发布时间 2023-09-04 15:30:55作者: zhangliangddq

1、jstack

jstack主要用来查看某个Java进程内的线程堆栈信息

1.1 打印线程信息

https://www.cnblogs.com/hopeway-shaon/p/17676986.html

1.2 获取进行运行的情况

jstack -l PID

2、jmap

jmap用来查看堆内存使用状况,一般结合jhat使用。

2.1 jmap -heap pid查看进程堆内存使用情况

包括使用的GC算法、堆配置参数和各代中堆内存使用情况。如下图:

2.2 dump出堆信息

jmap -dump:live,format=b,file=./dump/dumpName.hprof 18376
可以使用MAT等软件进行分析
内存分析工具 MAT 的使用
https://blog.csdn.net/aaa2832/article/details/19419679
https://www.jianshu.com/p/c6e2abb9f657
https://www.javatang.com/archives/2017/11/08/11582145.html
https://www.javatang.com/archives/2017/10/25/36441958.html

3、jstat

堆内存以及GC使用明细 2000毫秒执行一次 共计5次
jstat -gc pid 2000 5

堆内存使用百分比
jstat -gcutil pid

4、

5、lscpu

https://blog.csdn.net/guihunkun/article/details/120179625
CPU(s): 96 #逻辑cpu个数 96 = 4122
On-line CPU(s) list: 0-95
Thread(s) per core: 2 #每个核心线程数
Core(s) per socket: 12 #每个物理CPU的核数
Socket(s): 4 #物理CPU个数