ディレクトリ
転載このブログアリ診断ツール、オープンソースのJava
1. Arthasは何ですか
Arthasはオンライン解決するために多くの問題を解決することができるオンラインのオープンソースのJavaアリババ非常に強力な診断ツール、ある便利ではありません。
コマンドラインインタラクティブモードを使用してArthasは診断は、JDK6 +、Linuxでは、マック、Windowsオペレーティングシステムをサポートし、タブを使用して、キーコマンドでも、情報のすべての種類の自動補完をサポートし、診断は非常に便利です。
これは、公式ウェブサイトです。
https://alibaba.github.io/arthas/index.html
Githubの住所:
https://github.com/alibaba/arthas
2. Arthasは、任意の問題を解決することができます
Arthasは公式の説明を見て
あなたは次のような問題と同様の無力が発生したときに、Arthasはあなたが解決することができます:
1、ジャーパッケージがロードされているからクラスを?なぜ例外に関連するカテゴリの様々な報告しますか?
2、なぜ私は実行するコードを変更していませんか?それは私がコミットしなかっただろうか?支店がミスをしましたか?
3、問題はそれをログ追加することにより、再リリース、オンラインデバッグすることはできませんか?
4、オンラインユーザーのデータ処理に問題が発生したが、同じオンラインデバッグすることはできませんが、ラインが再現することはできません!
5.システムの健全性を表示するには、グローバルな視点がありますか?
6. JVMのリアルタイムステータスの監視を実行する方法はありますか?
読書はあまりにもNiubiではないでしょうか?特に、それはあなたがトラッキングコードのデバッグログの行を追加することはできません、抗オンラインクラスをコンパイルすることができます。
3.クイックインストール
公式推奨arthas-boot
、非常に簡単にインストールするには、以下のオンライン解決の一般的な問題は、Linux環境に基づいても、プレゼンテーションのためのLinuxベースの環境です。
ステップ1:ダウンロード
任意のディレクトリにダウンロードしarthas-boot
、このパッケージを。
wgetのhttps://alibaba.github.io/arthas/arthas-boot.jar
[root@VM_0_7_centos ~]# wget https://alibaba.github.io/arthas/arthas-boot.jar
--2019-07-30 14:48:31-- https://alibaba.github.io/arthas/arthas-boot.jar
Resolving alibaba.github.io (alibaba.github.io)... 185.199.108.153, 185.199.109.153, 185.199.110.153, ...
Connecting to alibaba.github.io (alibaba.github.io)|185.199.108.153|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 98637 (96K) [application/java-archive]
Saving to: ‘arthas-boot.jar’
100%[==========================================================================================================>] 98,637 32.8KB/s in 2.9s
2019-07-30 14:48:36 (32.8 KB/s) - ‘arthas-boot.jar’ saved [98637/98637]
ステップ2:実行
使用するjava -jar
コマンド実行arthas-boot
パッケージを。
Arthasは-boot.jar -jar javaの
[INFO] arthas-boot version: 3.1.1
[INFO] Found existing java process, please choose one and hit RETURN.
* [1]: 13062 spring-boot-best-practice-0.0.1-SNAPSHOT.jar
ステップ3:選択プロセス
実行しarthas-boot
、すべてのJavaプロセス、コンソールが表示され、あなたは、診断プロセスを選択する必要があります。
第二の工程に示すように、唯一のJavaプロセス番号、トランスポートを入力し、存在し、Arthasは、ターゲット・プロセスに取り付けられており、ログを出力します。
[INFO] Start download arthas from remote server: https://maven.aliyun.com/repository/public/com/taobao/arthas/arthas-packaging/3.1.1/arthas-packaging-3.1.1-bin.zip
[INFO] Download arthas success.
[INFO] arthas home: /root/.arthas/lib/3.1.1/arthas
[INFO] Try to attach process 13062
[INFO] Attach process 13062 success.
[INFO] arthas-client connect 127.0.0.1 3658
,---. ,------. ,--------.,--. ,--. ,---. ,---.
/ O | .--. ''--. .--'| '--' | / O ' .-'
| .-. || '--'.' | | | .--. || .-. |`. `-.
| | | || | | | | | | || | | |.-' |
`--' `--'`--' '--' `--' `--' `--'`--' `--'`-----'
wiki https://alibaba.github.io/arthas
tutorials https://alibaba.github.io/arthas/arthas-tutorials
version 3.1.1
pid 13062
time 2019-07-30 14:49:34
この時点で、インストール時に、起動は完了です。
もっと他のインストールを参照してくださいます。https://alibaba.github.io/arthas/install-detail.html
4.実際の使用
起動後、カーソルは、操作コマンドのさまざまなArthasはコンソールに入ります。
私たちはそれとすぐに開始する機能の基本的な理解を持っているようにここでは、スタックの長さは、いくつかのプレゼンテーション一般的に使用されるコマンドを実行します。
図1に示すように、ダッシュボードの
リアルタイム・データ・パネル現在のシステム、プレスCTRL + Cの表示が終了します。
$ダッシュボード
2.スレッドは、
現在のJVMのスレッドのスタック情報を表示します。
スレッドID、スタックを実行している指定したスレッドを表示します。
$スレッド20
N個のスレッドの前にトップを表示し、現在のスタックを出力します。
$スレッド-n 3
3. SC
ビュークラスの詳細をJVMがロードされました。
$皮下-d *テスト
4. SM
ビュー方式情報は、クラスをロードされています。
$のSM -d cn.javastack.springbootbestpractice.SpringBootBestPracticeApplicationのメイン
5. JAD
指定されたソースコードの逆コンパイルは、クラスがロードされています。
$ JADファイルcn.javastack.springbootbestpractice.SpringBootBestPracticeApplication
6.トレース
非リアルタイムコマンドを返す内部呼経路の表示方法、及び経路法、および詳細時間のかかる各ノード上で総時間を出力します。
$トレースJ cn.javastack.springbootbestpractice.web.JsonTest getUserInfo
7.モニター
モニターのタイミングメソッドを呼び出します。
$モニターcn.javastack.springbootbestpractice.web.JsonTest getUserInfo -c 5
5 -C:統計は5秒ごとに1回、期間を表し、デフォルト値は120秒です。
説明monitor寸法:
8.ウォッチ
例外は、パラメータ等がスローされ、戻り値:データ・コールを実行するための観察方法は、簡単など、指定された方法の場合に観察することができます。
$ cn.javastack.springbootbestpractice.web.JsonTest getUserInfo '{パラメータ、returnObj}' -x 2 -bを見ます
-b、トラバース深さ:-X 2方法の場合に上記のパラメータを監視する、フロントモニタ方式で行います。
9. /終了を終了し
、現在のArthasはを終了します。
クライアントのみ、このコマンドが終了し、現在、それはあなたが次回接続を使用してポートを直接接続することができます閉じません、ターゲットプロセスに添付Arthasは、実行を継続し、接続されています。
10.シャットダウンは
Arthasは、Arthasは、すべてのクライアントを終了し、サーバーをシャットダウンします。
上記--helpコマンドで見つけることができるさまざまなコマンドで詳細を使用して、基本的な使用10コマンドを示しています。
もっと他のコマンドは、を参照してください。
https://alibaba.github.io/arthas/commands.html
5.まとめ
締結し、それのような、診断ArthasはにJavaアプリケーションを使用することは簡単である:JVMのパネルシステムデータ、リアルタイムの動作状態、クラスがロードされ、性能監視方法、表示方法の実行パスなど。
これらの便利な機能Arthasは本当に私たちは、オンラインでいくつかの一般的な質問を解決するのに役立つことができますが、また、アプリケーションコードの独立したが、それは、分散システムである場合にのみ限定されたJVMプロセス内で、Arthasはは難しいビット。