JDKはVM分析ツールjps,jstat,jmap,jconsoleを持参

3249 ワード

一、概説 
    SUNのJDKの中のいくつかのツールは、とても使いやすいです.無料で、商用ではないという原則を守っています.これらのツールを簡単に紹介します.(注:この文書の下のすべてのツールはJDK 5.0以上のツールセットに存在し、javacと同様に、わざわざインストールする必要はありません)  .
     
    私は全部で以下の4つのツールを見つけました:jconsoleとjmapを重点的に見てみましょう.
jps  
: unix  ps  ,       java  ,           java  ,         。   
  
jstat  
:       VM    。      VM                    。   
  
jmap  
:     java  (  pid)    ,  ‘  ’   ( :      ,    )。   
  
jconsole  
:  java GUI    ,               。                VM。  

二、使用紹介: 
     
    1、jstat:多くの人がunixシステムのpsコマンドを使ったことがあると思います.このコマンドは主に現在のシステムのプロセス状況、どのようなプロセス、およびidを表示するために使用されています.jpsも同様で、現在のシステムのjavaプロセスとid番号を表示する役割を果たします.各javaプログラムがjava仮想マシンインスタンスを独占するため、いくつかのjavaプロセスを開始したのか、およびそれらのプロセス番号(次のプログラムの準備)を確認し、optでこれらのプロセスの詳細な起動パラメータを表示できます. 
    使用方法:現在のコマンドラインの下にjpsを打つ(JAVA_HOMEが必要で、なければ、プログラムを変更するディレクトリの下に打つ).
残念ながらlinuxの下のpsは使いやすくなくて、名前は使いにくいです.しかし、4番目のツールjconsoleのインタフェースには、具体的なJARパッケージの名前が表示されます.
     
    2、jstat:VMメモリ使用量を監視する. 
    jstatツールは特に強力で、スタック内の各部分の使用量やロードクラスの数を詳細に表示するオプションがたくさんあります.使用する場合は、プロセスを表示するプロセスidと、選択したパラメータを追加します.各パラメータの意味について詳しく説明します. 
    jstat-class pid:classをロードした数や、スペースなどの情報を表示します. 
    jstat-compiler pid:VMのリアルタイムコンパイル数などの情報を表示します. 
    jstat-gc pid:gcの情報を表示し、gcの回数、および時間を表示できます.このうち最後の5つは,young gcの回数,young gcの時間,full gcの回数,full gcの時間,gcの総時間である. 
    jstat-gccapacity:表示可能、VMメモリの3世代(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回印刷され、-h 3を加えて3行ごとにタイトルを表示することもできます. 
     
   3、jmapはすべてのメモリ内のオブジェクトを出力できるツールであり、VM内のheapをバイナリでテキストに出力することもできる.メソッドjmap-histo pidを使用します.SHELL jmap-histo pid>a.logを連用してテキストに保存できる場合(windowsでも使用可能)、しばらくしてからテキストコントラストツールを使用してGCが回収したオブジェクトを比較することができます.jmap-dump:format=b、file=f 1 3024は、3024プロセスのメモリheapをf 1ファイルに出力することができる. 
     
    4、jconsoleはjavaで書かれたGUIプログラムで、VMを監視し、遠隔のVMを監視することができ、非常に使いやすく、機能が非常に強い.GUIプログラムですので、ここでは詳しく説明しませんが、できないところはSUNの公式ドキュメントを参考にすることができます. 
    使用方法:コマンドラインにjconsoleを打って、選択プロセスでいいです. 
     
    ヒント:windowsはプロセス番号を表示します.タスクマネージャのデフォルトではプロセスid番号は表示されませんので、次の方法で追加できます.ctrl+alt+delタスクマネージャを開き、「プロセス」タブを選択し、「表示」->「選択列」->「PID」をクリックすればいいです.もちろん他にもいい選択肢があります.
三、参考資料:
    article:http://elf8848.iteye.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 
転載先:http://jiajun.iteye.com/blog/443196、このブロガーはその内容が正しいかどうかについて責任を負いません.原作者の著作権を尊重してください.