最近系統總是每隔一周左右就莫名其妙down掉。於是研究了一下jdk下面幾個常用的查看
jvm運行時狀態的參數,很快找出了問題所在。現在把幾個命令記錄一下:
1. jstat
這個命令對於查看Jvm的堆棧信息很有用。能夠查看eden,survivor,old,perm等heap的capacity,utility信息
對於查看系統是不是有能存洩漏以及參數設置是否合理有不錯的意義
2. jstack
這個是用來查看jvm當前的thread dump的。可以看到當前Jvm裡面的線程狀況。
這個對於查找blocked線程比較有意義
3. jmap .
這個是用來查看jvm當前的heap dump的。可以看出當前jvm中各種對象的數量,所占空間等等。
尤其值得一提的是這個命令可以到處一份binary heap dump的bin文件,這個文件能夠直接用
Eclipse Memory Anayliser來分析,並找出潛在的內存洩漏的地方。
4. 還有一個比較有用的非jvm命令--netstat
通過這個命令可以看到linux系統當前在各個端口的鏈接狀態,比如查看數據庫連接數等等