JVM:查看java記憶體情況命令

來源:互聯網
上載者:User

標籤:記憶體池   stat   com   follow   full gc   線程   heap   載入類   唯讀   

jinfo:可以輸出並修改運行時的java 進程的opts。 

jps:與unix上的ps類似,用來顯示本地的java進程,可以查看本地運行著幾個java程式,並顯示他們的進程號。 
jstat:一個極強的監視VM記憶體工具。可以用來監視VM記憶體內的各種堆和非堆的大小及其記憶體使用量量。 
jmap:列印出某個java進程(使用pid)記憶體內的所有‘對象‘的情況(如:產生那些對象,及其數量)。 
jconsole:一個java GUI監視工具,可以以圖表化的形式顯示各種資料。並可通過遠端連線監視遠端伺服器VM。

詳細:在使用這些工具前,先用JPS命令擷取當前的每個JVM進程號,然後選擇要查看的JVM。 
jstat工具特彆強大,有眾多的可選項,詳細查看堆內各個部分的使用量,以及載入類的數量。使用時,需加上查看進程的進程id,和所選參數。以下詳細介紹各個參數的意義。 
jstat -class pid:顯示載入class的數量,及所佔空間等資訊。 
jstat -compiler pid:顯示VMJust-In-Time 編譯的數量等資訊。 
jstat -gc pid:可以顯示gc的資訊,查看gc的次數,及時間。其中最後五項,分別是young gc的次數,young gc的時間,full gc的次數,full gc的時間,gc的總時間。 
jstat -gccapacity:可以顯示,VM記憶體中三代(young,old,perm)對象的使用和佔用大小,如:PGCMN顯示的是最小perm的記憶體使用量量,PGCMX顯示的是perm的記憶體最大使用量,PGC是當前新產生的perm記憶體佔用量,PC是但前perm記憶體佔用量。其他的可以根據這個類推, OC是old內純的佔用量。 
jstat -gcnew pid:new對象的資訊。 
jstat -gcnewcapacity pid:new對象的資訊及其佔用量。 
jstat -gcold pid:old對象的資訊。 
jstat -gcoldcapacity pid:old對象的資訊及其佔用量。 
jstat -gcpermcapacity pid: perm對象的資訊及其佔用量。 
jstat -util pid:統計gc資訊統計。 
jstat -printcompilation pid:當前VM執行的資訊。 
除了以上一個參數外,還可以同時加上 兩個數字,如:jstat -printcompilation 3024 250 6是每250毫秒列印一次,一共列印6次,還可以加上-h3每三行顯示一下標題。

jmap是一個可以輸出所有記憶體中對象的工具,甚至可以將VM 中的heap,以二進位輸出成文本。 
命令:jmap -dump:format=b,file=heap.bin <pid> 
file:儲存路徑及檔案名稱 
pid:進程編號 
?jmap -histo:live  pid| less :堆中活動的對象以及大小 
?jmap -heap pid : 查看堆的使用狀況資訊


jinfo:的用處比較簡單,就是能輸出並修改運行時的java進程的運行參數。用法是jinfo -opt pid 如:查看2788的MaxPerm大小可以用 jinfo -flag MaxPermSize 2788。

jconsole是一個用java寫的GUI程式,用來監控VM,並可監控遠端VM,非常易用,而且功能非常強。使用方法:命令列裡打 jconsole,選則進程就可以了。 
JConsole中關於記憶體分區的說明。

Eden Space (heap): 記憶體最初從這個線程池分配給大部分對象。 
Survivor Space (heap):用於儲存在eden space記憶體池中經過記憶體回收後沒有被回收的對象。 
Tenured Generation (heap):用於保持已經在 survivor space記憶體池中存在了一段時間的對象。 
Permanent Generation (non-heap): 儲存虛擬機器自己的靜態(refective)資料,例如類(class)和方法(method)對象。Java虛擬機器共用這些類資料。這個地區被分割為唯讀和唯寫的, 
Code Cache (non-heap):HotSpot Java虛擬機器包括一個用於編譯和儲存本地代碼(native code)的記憶體,叫做“代碼緩衝區”(code cache)

?jstack ( 查看jvm線程運行狀態,是否有死結現象等等資訊) : jstack pid : thread dump 
?jstat -gcutil  pid  1000 100  : 1000ms統計一次gc情況統計100次;

另外推薦一款查看jmap dump 的記憶體對象工具 MemoryAnalyzer 
網址:http://www.eclipse.org/mat/,可以查看dump時對象數量,記憶體佔用,線程情況等。

【原文地址:http://boendev.iteye.com/blog/882479】

JVM:查看java記憶體情況命令

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.