jdkはvm分析ツールjps,jstat,jmap,jconsoleを持参

2852 ワード

一、概説
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.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