“jps -v” 命令:可以显示传递给 Java 虚拟机的参数(java启动参数、内存分配大小等信息)。
打印java服务进程ID
"jps" 命令:查看所有java服务进程ID
打印:
3200 ApplicationTest
2968 Launcher
打印堆信息
"jmap -heap 进程ID"命令:打印堆信息
使用案例说明:排查内存溢出、泄漏;排查是否存在内存溢出:第一次打印堆空间的占用大小used、然后执行GC回收后,再次执行"jmap -heap 进程ID"命令查看堆空间的used是否被清空
打印:
Eden Space: // Eden区
capacity = 34078720 (32.5MB) // 总空间大小
used = 16630280 (15.859870910644531MB) // 已使用空间
free = 17448440 (16.64012908935547MB) // 剩余空间
48.79960280198317% used
From Space: // From区
capacity = 5242880 (5.0MB)
used = 0 (0.0MB)
free = 5242880 (5.0MB)
0.0% used
To Space: // To区
capacity = 5242880 (5.0MB)
used = 0 (0.0MB)
free = 5242880 (5.0MB)
0.0% used
PS Old Generation // 老年代
capacity = 89653248 (85.5MB)
used = 0 (0.0MB)
free = 89653248 (85.5MB)
0.0% used
输出java进程的线程快照-排查死锁
"jstack 进程ID > thread.txt" 命令:输出该进程的线程快照到thread.txt文件中。
该命令用于排查死锁问题,首先需要通过“top”命令查找CPU占用高的进程“PID”,
然后通过“ps -mp 进程PID -o THREAD,tid,time”命令定位到占用CPU占用率高的线程“TID”,
然后将10进制的TID转为16进制,用于在thread.txt文件中找到占用较高的线程所在位置
(在thread.txt文件中全局搜索转为16进制的TID即可定位到具体位置)