JDKはVM分析ツールjps,jstat,jmap,jconsoleを持参
3249 ワード
一、概説
SUNのJDKの中のいくつかのツールは、とても使いやすいです.無料で、商用ではないという原則を守っています.これらのツールを簡単に紹介します.(注:この文書の下のすべてのツールはJDK 5.0以上のツールセットに存在し、javacと同様に、わざわざインストールする必要はありません) .
私は全部で以下の4つのツールを見つけました:jconsoleとjmapを重点的に見てみましょう.
二、使用紹介:
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、このブロガーはその内容が正しいかどうかについて責任を負いません.原作者の著作権を尊重してください.
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、このブロガーはその内容が正しいかどうかについて責任を負いません.原作者の著作権を尊重してください.