この記事は、最初に公開された番号 クレイグのタブーを 取得するには、最初の時間に従ってください。
あなたの人生をコーディングして、コーディング王になりましょう!
序文
前の投稿"では、実際の障害を通して、JVMの問題を発見し、トラブルシューティングする方法を説明しました。今回は、JVMの問題を素早く発見し、トラブルシューティングする方法を実際の障害を通して解説しました。
JVM内のEden、Survivor、old agesのメモリ使用量、Young GCとFull GCの実行回数と消費時間をリアルタイムで簡単に表示します。
これらの指標を介して、システムの圧力とメモリ割り当てが合理的であるかどうかを判断するための分析プロセスをたどることができます。多くのパートナーは、前の記事を読んで、jstatについて話をするように求めている、次は、この小さいながらも強力なツールを使用する方法を参照してください。
主な記事
jstat -gc [PID]
デフォルトでは、みんなのサーバーはLinuxなので、まずjpsコマンドを使ってJavaのプロセス番号を取得し、次にこのコマンドを使ってJVMのメモリとGCの状態を表示することができます。
コマンドは実行後に多くの重要な指標を教えてくれますが、イメージがかなり小さいので、各列を1つずつ説明します:
S0C | Eden ゾーンサイズ |
S1C | Eden ゾーンサイズ |
SOU | Eden ゾーンサイズ |
S1U | Eden ゾーンサイズ |
EG | Eden ゾーンサイズ |
EU | エデン領域で使用されるメモリサイズ |
OC | 旧時代のサイズ |
おうしゅうつうかたんい | 旧世代で使用されていたメモリサイズ |
MC | メソッド領域のサイズ |
MU | メソッド領域で使用されるメモリサイズ |
YGG | システムがこれまでに実行したヤングGGの回数 |
YGGT | Young GC |
FGC | システムがこれまでに実行したフルGCの数 |
FGCT | Full GC |
GCT | 全GCの合計時間 |
jstatの使い方
実際、jstat -gcコマンドは、基本的にJVMの初期分析を満たすことができます。
JVMプロセスを理解する上で、最も重要な情報は何でしょうか?
エデンゾーン、老齢物増加率
ヤングGC、フルGCのトリガー頻度と各回経過時間
各ヤングGCの後、どれだけの物体が生き残り、どれだけの物体が古い時代に行くのでしょうか?
基本的な原則に従うことができる、つまり、メモリ空間の合理的な割り当ては、可能な限り若い世代に滞在するオブジェクトは、JVMの良好なパフォーマンスの最適化である頻繁なFullGCを避けるために、古い世代を入力していないようにします!
まとめ
この記事は、主に最後のいくつかの記事の内容の補足であり、私はあなたがjstatコマンドを使用することを学ぶことができることを願って、JVM関連の問題を検索し、トラブルシューティングすることは非常に便利です。
便利なツールであるjstatを実行すると、オンラインで実行されているJVMの詳細なビューを簡単に取得し、特定の操作のためにJVMを最適化することができます。
学生の中には、すでにビジュアルモニタリングツールを導入している成熟した大企業の出身者もいるでしょう。
ビジュアライゼーション・ツールを使ってはいけないと言っているわけではありませんが、優秀で資格のあるエンジニアは、あらゆる種類のコマンドライン・ツールを非常に柔軟に使いこなし、コマンドラインですべてを終わらせることができなければならないと申し上げているのです。
だからこそ、最も使いやすく、効率的で実用的なコマンドラインJVMモニタリング・ツールの1つであるjstatは、間違いなく手に入れる価値があります。会社の状況は人それぞれなので、もしあなたの会社が様々な可視化ツールを提供していない場合は?
そして、あなたは、開始し、問題を見つけるために、最低で最も原始的なコマンドラインツールから始めなければなりません。この記事のアイデアを理解した後、あなたは他のツールを使用することができます、あなたは簡単に明確に分析するためにツールによって提供されるデータを介してラインJVMの操作を置くことができます。