JVM 調優命令 已規劃

系統命令

ps -ef | grep java 查看java相關進程
lsof -i tcp:8080   列出當前系統TCP端口8080的應用PID

JVM命令

jcmd

jcmd -help
用法
	jcmd <pid | main class> <command ...|PerfCounter.print|-f file>
示例
	[Jcmd命令詳解](https://docs.oracle.com/javase/8/docs/technotes/tools/windows/jcmd.html "Jcmd命令詳解")

jps

主要用來輸出JVM中運行的進程狀態信息
用法
	jps [-q] [-mlvV] [<hostid>]
示例
	jps

jstat

命令能夠用於持續觀察虛擬機內存中各個分區的使用率以及GC的統計數據
用法
	jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
示例

jmap

能夠用來查看堆內存的使用詳情,1.8後建議使用jcmd,減小性能損耗
用法
	jmap -help
示例
	jmap -heap 65356 查看指定PID 堆內存狀況
	jmap -dump:live,format=b,file=/Users/zhao/Downloads/dump.prof 65356  導出Dump文件
	jmap -permstat 65356 查看永久代

jstack

能夠用來查看Java進程內的線程堆棧信息,1.8後建議使用jcmd,減小性能損耗
用法
	jstack -help
示例
	jstack -l 65356 > /Users/zhao/Downloads/jstack.txt  列舉運行中線程信息

jhat

JVM Heap Analysis Tool
用法
	jhat [-stack <bool>] [-refs <bool>] [-port <port>] [-baseline <file>] [-debug <int>] [-version] [-h|-help] <file>
示例
	jhat /Users/zhao/Downloads/dump.prof 分析Dump文件

jdb

jdb 使用 Java Debug Interface (JDI) 啓動並鏈接到 JVM. 源代碼位於 $JAVA_HOME/demo/jpda/examples.jar.

JPDA Java Platform Debugger Architecture html

jinfo

jinfo pid
打印系統,應用的配置,參數,屬性信息

JVM工具

Java Mission Control

JMC界面

jconsole

JConsole界面

jvisualvm

Java Visual VM

JVM參數

- server
- client
- Xmx  堆內存 最大值
- Xms  堆內存 初始值
- XX:PermSize 持久代 初始值
- XX:MaxPermSize 持久代 最大值
- Xmn 年輕代
- XX:NewRatio 年輕代 / 年老代
- XX:SurvivorRatio 年輕代 / 存活代
- XX:NewSize 年輕代 大小
- XX:NewMaxSize 年輕代 最大值
- XX:MaxTenuringThreshold 垃圾最大存活年齡,年齡指複製算法一次或標記等
- XX:GCTimeRatio 垃圾回收時間/程序運行時間
- XX:TargetsurvivorRatio
- Xss 線程所佔堆棧大小-XX:ThreadStackSize

Control+Break Handler

Thread Dump

Detect Deadlocks

Heap Summary

相關文章
相關標籤/搜索