青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

大龍的博客

常用鏈接

統計

最新評論

使用Jstat監控gc情況

性能測試過程中,我們該如何監控java虛擬機內存的使用情況,用以判斷JVM是否存在內存問題呢?如何判斷JVM垃圾回收是否正常?一般的top指令基本上滿足不了這樣的需求,因為它主要監控的是總體的系統資源,很難定位到java應用程序。
在項目實踐過程中,我們探索和使用了一款新工具--Jstat。
    先秀一下。Jstat是JDK自帶的一個輕量級小工具。全稱“Java Virtual Machine statistics monitoring tool”,它位于java的bin目錄下,主要利用JVM內建的指令對Java應用程序的資源和性能進行實時的命令行的監控,包括了對Heap size和垃圾回收狀況的監控。可見,Jstat是輕量級的、專門針對JVM的工具,非常適用。
那,該怎么用呢?
    語法結構如下:jstat [Options] vmid [interval] [count]
    Options — 選項,我們一般使用 -gcutil 查看gc情況
    vmid    — VM的進程號,即當前運行的java進程號
    interval– 間隔時間,單位為秒或者毫秒
    count   — 打印次數,如果缺省則打印無數次
    下面給出一個實際的例子:

            

注:由于JVM內存設置較大,圖中百分比變化不太明顯

    圖中參數含義如下:

    S0 — Heap上的 Survivor space 0 區已使用空間的百分比
    S1 — Heap上的 Survivor space 1 區已使用空間的百分比
    E   — Heap上的 Eden space 區已使用空間的百分比
    O   — Heap上的 Old space 區已使用空間的百分比
    P   — Perm space 區已使用空間的百分比
    YGC — 從應用程序啟動到采樣時發生 Young GC 的次數
    YGCT– 從應用程序啟動到采樣時 Young GC 所用的時間(單位秒)
    FGC — 從應用程序啟動到采樣時發生 Full GC 的次數
    FGCT– 從應用程序啟動到采樣時 Full GC 所用的時間(單位秒)
    GCT — 從應用程序啟動到采樣時用于垃圾回收的總時間(單位秒)

    上圖的示例,紅框中,我們可以看到,5次young gc之后,垃圾內存被從Eden space區(E)放入了Old space區(O),并引起了百分比的變化,導致Survivor space使用的百分比從19.69%(S0)降到10.34%(S1)。有效釋放了內存空間。綠框中,我們可以看到,一次full gc之后,Old space區(O)的內存被回收,從36.81%降到35.01%。

    圖中同時打印了young gc和full gc的總次數、總耗時。而,每次young gc消耗的時間,可以用相間隔的兩行YGCT相減得到。每次full gc消耗的時間,可以用相隔的兩行FGCT相減得到。例如紅框中表示的第一行、第二行之間發生了1次young gc,消耗的時間為52.281-52.252=0.029秒。

    常駐內存區(P)的使用率,始終停留在37.6%左右,說明常駐內存沒有突變,比較正常。

如果young gc和full gc能夠正常發生,而且都能有效回收內存,常駐內存區變化不明顯,則說明java內存釋放情況正常,垃圾回收及時,java內存泄露的幾率就會大大降低。但也不能說明一定沒有內存泄露。

    以上,介紹了Jstat按百分比查看gc情況的功能。其實,它還有其它功能,例如加載類信息統計功能、內存池信息統計功能等,那些是以絕對值的形式打印出來的,比較少用,在此就不做介紹。

  

    為了更全面的監控JVM內存使用情況,我們需要引入更強大的工具來進一步分析–JConsole。敬請關注。

--------

一、概述

    SUN 的JDK中的幾個工具,非常好用。秉承著有免費,不用商用的原則。以下簡單介紹一下這幾種工具。(注:本文章下的所有工具都存在JDK5.0以上版本的工具集里,同javac一樣,不須特意安裝) 。
    
    我一共找到以下四個工具:重點看看jconsole和jmap。

Java代碼 復制代碼
  1. jps   
  2. :與unix上的ps類似,用來顯示本地的java進程,可以查看本地運行著幾個java程序,并顯示他們的進程號。   
  3.   
  4. jstat   
  5. :一個極強的監視VM內存工具。可以用來監視VM內存內的各種堆和非堆的大小及其內存使用量。   
  6.   
  7. jmap   
  8. :打印出某個java進程(使用pid)內存內的,所有‘對象’的情況(如:產生那些對象,及其數量)。   
  9.   
  10. jconsole   
  11. :一個java GUI監視工具,可以以圖表化的形式顯示各種數據。并可通過遠程連接監視遠程的服務器VM。  

二、 使用介紹: 
    
    1、jstat :我想很多人都是用過unix系統里的ps命令,這個命令主要是用來顯示當前系統的進程情況,有哪些進程,及其 id。 jps 也是一樣,它的作用是顯示當前系統的java進程情況,及其id號。我們可以通過它來查看我們到底啟動了幾個java進程(因為每一個java程序都會獨占一個java虛擬機實例),和他們的進程號(為下面幾個程序做準備),并可通過opt來查看這些進程的詳細啟動參數。 
    使用方法:在當前命令行下打 jps(需要JAVA_HOME,沒有的話,到改程序的目錄下打) 。

可惜沒有linux下的ps好用,名稱不好用。但是在第四個工具jconsole的界面里面會有具體JAR包的名稱。
    
    2、jstat :對VM內存使用量進行監控。 
    jstat工具特別強大,有眾多的可選項,詳細查看堆內各個部分的使用量,以及加載類的數量。使用時,需加上查看進程的進程id,和所選參數。以下詳細介紹各個參數的意義。 
    jstat -class pid:顯示加載class的數量,及所占空間等信息。 
    jstat -compiler pid:顯示VM實時編譯的數量等信息。 
    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每三行顯示一下標題。
    
   3、jmap 是一個可以輸出所有內存中對象的工具,甚至可以將VM 中的heap,以二進制輸出成文本。使用方法 jmap -histo pid。如果連用 SHELL jmap -histo pid>a.log可以將其保存到文本中去(windows下也可以使用),在一段時間后,使用文本對比工具,可以對比出GC回收了哪些對象。jmap -dump:format=b,file=f1 3024可以將3024進程的內存heap輸出出來到f1文件里。 
    
    4、jconsole 是一個用java寫的GUI程序,用來監控VM,并可監控遠程的VM,非常易用,而且功能非常強。由于是GUI程序,這里就不詳細介紹了,不會的地方可以參考SUN的官方文檔。 
    使用方法:命令行里打 jconsole,選則進程就可以了。 
    
    友好提示:windows查看進程號,由于任務管理器默認的情況下是不顯示進程id號的,所以可以通過如下方法加上。ctrl+alt+del打開任務管理器,選擇‘進程’選項卡,點‘查看’->''選擇列''->加上''PID'',就可以了。當然還有其他很好的選項。

三、參考資料:

    article:http://elf8848.javaeye.com/blog/442806


    jps:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jps.html


    jstat:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstat.html


    jmap:http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jmap.html


    jconsole:http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html    

posted on 2011-10-11 19:37 大龍 閱讀(331) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久精品亚洲热| 欧美成人精品一区| 久久综合九色综合欧美狠狠| 久久这里有精品15一区二区三区| av不卡免费看| 日韩视频在线观看| 亚洲巨乳在线| 亚洲色图制服丝袜| 亚洲影视在线播放| 欧美专区在线观看一区| 欧美有码在线视频| 久久中文字幕一区二区三区| 久久久久国产精品厨房| 久久久在线视频| 久久精品国产99国产精品澳门| 亚洲天堂av在线免费| 久久久www| 欧美日韩精品免费观看视频完整| 欧美日本不卡| 国产亚洲亚洲| 亚洲国产日韩欧美在线图片| 亚洲人成在线播放网站岛国| 在线精品视频一区二区| 一区二区免费在线播放| 欧美一区二区日韩一区二区| 欧美高清在线一区| 亚洲欧美国产精品桃花| 久久久久久久97| 亚洲盗摄视频| 亚洲国产精品va| 午夜一级在线看亚洲| 欧美在线视频在线播放完整版免费观看 | 欧美日韩综合精品| 亚洲第一二三四五区| 国产精品视频自拍| 亚洲欧洲在线视频| 制服丝袜激情欧洲亚洲| 欧美精品久久天天躁| 欧美国产一区视频在线观看| 精品91视频| 欧美激情综合五月色丁香| 亚洲人成77777在线观看网| 免费不卡在线观看| 伊人婷婷久久| 欧美福利影院| 亚洲最快最全在线视频| 国产精品99久久久久久久女警| 欧美久久视频| 午夜日韩激情| 亚洲国产二区| 午夜精品电影| 亚洲欧洲精品一区| 国产精品毛片在线| 久久久免费精品| 亚洲黄色尤物视频| 欧美在线免费视频| 午夜精品久久久久久| 久久riav二区三区| 国产日韩欧美中文在线播放| 午夜精品影院| 欧美一区二区在线看| 久久精品国产亚洲a| 亚洲无线一线二线三线区别av| 亚洲一品av免费观看| 一区二区视频欧美| 一区二区三区四区国产| 在线日韩电影| 午夜欧美精品久久久久久久| 亚洲免费观看| 久久深夜福利免费观看| 香蕉尹人综合在线观看| 欧美午夜不卡在线观看免费| 免费在线欧美黄色| 久久精品国产96久久久香蕉| 亚洲少妇最新在线视频| 欧美国产激情二区三区| 亚洲第一成人在线| 一本一本久久a久久精品牛牛影视| 美女日韩欧美| 亚洲日本成人网| 中文久久精品| 欧美日韩一区二区三| 99精品欧美一区| 欧美在线观看网址综合| 国产亚洲一区精品| 久久久国产精品亚洲一区| 久久亚洲国产成人| 精品成人在线视频| 欧美电影在线播放| 亚洲精品国精品久久99热| 一区二区三区四区在线| 国产亚洲网站| 久久福利毛片| 久久欧美中文字幕| 亚洲激情欧美激情| 亚洲综合三区| 欧美国产精品一区| 国产精品手机视频| 国内精品久久久久久久97牛牛| 黑人巨大精品欧美一区二区| 日韩一级片网址| 久久精品视频播放| 99视频+国产日韩欧美| 久久久久久久久久码影片| 欧美日韩中文字幕日韩欧美| 在线观看成人av电影| 亚洲无线一线二线三线区别av| 久久视频国产精品免费视频在线 | 亚洲靠逼com| 性欧美精品高清| 亚洲三级电影在线观看| 美女视频网站黄色亚洲| 伊人婷婷欧美激情| 久久人人精品| 午夜精品国产更新| 欧美性片在线观看| 中文精品视频| 在线亚洲自拍| 久久影视三级福利片| 蜜臀va亚洲va欧美va天堂 | 欧美不卡视频| 蜜臀av国产精品久久久久| 欧美1区免费| 亚洲第一在线综合网站| 性色av一区二区三区| 国产欧美va欧美va香蕉在| 亚洲欧美综合v| 欧美一区日韩一区| 激情自拍一区| 欧美成人高清| 欧美日韩精品免费观看| 欧美日韩大片一区二区三区| 亚洲最新在线| 日韩一二在线观看| 国产日韩专区| 亚洲高清视频一区二区| 欧美视频日韩| 欧美福利在线观看| 国产精品成人国产乱一区| 欧美视频在线一区二区三区| 亚洲午夜电影| 久久亚洲综合网| 亚洲欧美综合| 欧美日韩国产精品一区| 老司机67194精品线观看| 欧美日韩国产区| 蜜臀久久99精品久久久久久9| 欧美日韩国产a| 欧美激情麻豆| 在线观看久久av| 亚洲欧美日韩爽爽影院| 亚洲最快最全在线视频| 蜜臀a∨国产成人精品| 久久久人成影片一区二区三区观看 | 亚洲激情国产| 一区二区三区在线视频播放| 亚洲欧美综合| 久久aⅴ乱码一区二区三区| 欧美视频在线观看免费| 亚洲国产黄色| 99国产精品久久久久老师| 欧美91精品| 日韩午夜免费视频| 国产精品99久久久久久久女警| 欧美国产大片| 中文国产一区| 久久久久久69| 亚洲国产天堂久久国产91| 久久综合综合久久综合| 欧美激情一区二区在线 | 久久亚洲欧洲| 亚洲激情一区| 夜夜嗨av一区二区三区免费区| 亚洲精品系列| 精品99一区二区| 欧美成人免费播放| 一区二区三区日韩欧美| 久久久999| 亚洲精品美女| 国产精品手机视频| 久久爱另类一区二区小说| 免费视频一区| 欧美资源在线观看| 亚洲人成久久| 国产一区清纯| 欧美日韩精品一区二区三区| 香港成人在线视频| 亚洲高清免费| 久久久久久久综合日本| 正在播放日韩| 亚洲激情校园春色| 黄色一区二区在线| 国产精品色网| 欧美午夜激情视频| 欧美激情综合五月色丁香小说| 久久精品一区| 欧美在线啊v| 欧美一区二区三区在线看 | 欧美aⅴ99久久黑人专区| 亚洲欧美日韩中文播放|