チューニング | JVMパフォーマンス監視とチューニングを知らないと言うのはやめましょう

チューニング | JVMパフォーマンス監視とチューニングを知らないと言うのはやめましょう

[[350999]]

この記事はWeChatの公開アカウント「小明野菜市場」から転載したもので、著者は小明野菜市場です。記事を転載する場合は小明野菜市場の公式アカウントまでご連絡ください。

こんにちは!私はシャオシャオです。今日は今週最後の記事です。この記事では、JVM のチューニングとパフォーマンスの監視に焦点を当てます。

一般的なツール

よく使用されるツールは、主に JDK 組み込みツールと Arthas です。

JDK組み込みツール

jps 仮想マシンプロセスステータスツール

仮想マシンのプロセスステータスを表示するためのツールコマンドの例

  1. $ jps
  2. 15236 日本人
  3. 14966 例1

jstat 仮想マシン統計監視ツールは、仮想マシンのヒープ メモリ、メモリ情報、クラスのロードおよびアンロード情報などを表示するために使用されます。

ヒープメモリ情報を表示する

  1. jstat -gc 14966
  2. S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
  3. 2048.0 2048.0 0.0 0.0 12800.0 9345.8 34304.0 26638.8 5248.0 4971.3 640.0 554.9 2 0.032 2 0.049 0.082

ヒープメモリ情報を1000ミリ秒ごとに10回印刷する

クラスのロードとアンロードの情報を表示する

  1. $ jstat -クラス 14966
  2. ロードされたバイト数 アンロードされたバイト数 時間 
  3. 829 1604.4 0 0.0 0.37

Java 構成情報ツール

JVMの起動パラメータを表示する

  1. $ jinfo -フラグ 26472
  2. VM フラグ:
  3. -XX:CICompilerCount=3 -XX:InitialHeapSize=52428800 -XX:MaxHeapSize=52428800 -XX:MaxNewSize=17301504 -XX:MinHeapDeltaBytes=524288 -XX:New

jstack Java スタック トレース ツール

つまり、現在のメモリに対して関連するスナップショットが生成され、関連するスナップショット情報が保存されます。

jmap Kava メモリ マッピング ツール

メモリオブジェクトの数と占有されているメモリスペースを表示するために使用されます

jhatはhtmlタイプのスナップショットファイルを生成します

  1. $ jhat ダンプ.hprof
  2. dump.hprofから読み込んでいます...
  3. ダンプファイルは2020年5月3日日曜日17:09:07 CSTに作成されました
  4. スナップショットを読み取り、解決中...
  5. 42293 個のオブジェクトを解決しています...
  6. 参照を追跡すると、8 つのドットが予想されます。
  7. 重複参照の削除............
  8. スナップショットが解決されました。
  9. ポート7000HTTPサーバーを起動しました
  10. サーバーの準備できました

起動後、ブラウザを開き、http://localhost:7000/

jvisualvm & VisualVM: ヒープダンプスナップショット分析ツール

上記のコマンドと同様に、ウェブサイトではなくファイルを直接エクスポートします。


オブジェクト情報


スレッド情報

jconsole: JVM パフォーマンス監視

パフォーマンス監視用のユーザーインターフェースを起動します


起動に成功した後

アルサス

AlibabaのオープンソースJava診断ツール

インストール

ダウンロード

  1. wget https://alibaba.github.io/arthas/arthas-boot.jarjava -jar arthas-boot.jar

解凍

  1. arthas-packaging-bin.zip を解凍します。

インストール

  1. sudo su adminrm -rf /home/admin/.arthas/lib/*cd arthas./install- local .sh

起動する

  1. ./.shとして

ヘルプ

ダッシュボードリアルタイムデータパネル

スレッド スレッド情報


jad 逆コンパイル クラス

データの観察を見る

チューニング

展開


Full GC 時間が長いため、サーバーが頻繁にフリーズします。その理由は通常

  1. 新しい世代が小さすぎるため、オブジェクトが古い世代に早めに入り、フルGCがトリガーされます。
  2. 古い世代は大きく、フルGCには長い時間がかかります

解決策は、NewRatio の値を減らして、古い世代に入るオブジェクトの数をできるだけ減らすことです。

メモリ使用量を調整する

直接記憶

OutOfMemoryError: ダイレクトバッファメモリを回避するために XX:MaxDirectMemorySize を調整します

スレッドスタック

StackOverflowError または OutOfMemoryError を回避するために -Xss を調整します: 新しいネイティブ スレッドを作成できません

GCの観点から、多数のオブジェクトが新世代に生き残る問題を解決し、マイナーGC時間が長すぎるというパラメータを調整します。

  1. -XX:生存率=65536
  2. -XX:最大テンリングしきい値=0
  3. -XX:常に在職

著者について

私は、二級都市で生まれ、一級都市に住んでいるプログラマーの Xiaoxiao です。私はXiaoxiaoです。また次回お会いしましょう。

<<:  Kubernetes をローカルで実行するための 4 つのオープンソース ツール

>>:  Microsoft プラットフォームを使用してクラウドベースのインテリジェント サプライ チェーンを構築し、「在庫切れ」のジレンマを回避します。

推薦する

サイトのコンバージョン率を改善できない主な理由について説明します。

ウェブサイトの成功は、安定した高いトラフィックと切り離せません。eコマースウェブサイトの場合、コンバ...

3つの大きな動きがeLong.comに大きな打撃を与え、行き詰まりに近づいている

eLongの2013年度の財務報告は芳しいものではなかった。純損失は1億6800万元で、2009年に...

オンライン記事のキーワード抽出とタイトル書き換えに関する簡単な説明

オンライン記事のキーワード抽出とタイトル書き換えに関する簡単な説明1. キーワード抽出作業:キーワー...

新しいブランドや製品のコンテンツマーケティングをどのように実施すればよいでしょうか?

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスコンテンツ マーケティン...

virmach: 特別な VPS (バックエンド IP は切り替え可能)、年間 4.9 ドルから、KVM 仮想化、複数のコンピュータ ルーム、Alipay/PayPal 決済

virmach は本日、「特別オファー」プロモーションを実施しています。いつものように、KVM 仮想...

新聞出版総局は莫言の著作物の著作権を明確にしたが、合法なのは3つか4つだけである。

莫言の書籍や電子書籍が大量に市場に流通し、著作権をめぐって混乱が生じている現状を受け、昨日午後、国家...

DAMOアカデミー、地球科学研究の効率化を支援するAIリモートセンシング分析クラウドプラットフォームをリリース

DAMO Academyは3月3日、PBレベルのオープンソース衛星リモートセンシングデータ、10以上...

ローカルビジネスがローカルSEOサービスから得られるメリット

今日の企業は、製品マーケティングにおいて、もはや従来のメディア宣伝だけに頼っていません。インターネッ...

JVM パフォーマンスの最適化は難しいと聞きました。今日試してみました!

[[403396]] Java 開発を行う学生にとって、JVM パフォーマンス最適化は習得するのが比...

ウェブサイト上のglobal.asaトロイの木馬の被害と解決策

この期間中、顧客の Web サイトがハッキングされたケースがいくつか見つかりました。これらの Web...

AWS Lambda の紹介

AWS Lambda を使用すると、サーバーをプロビジョニングしたり管理したりせずにコードを実行でき...

ハイブリッドマルチクラウドがトレンドになりつつあり、テクノロジーアプリケーションは分散化される必要がある

企業が複数のクラウドを利用することは避けられなくなっていますが、顧客が異なるサプライヤー間のクラウド...

VMwareは持続可能なイノベーションを推進し続けます

暗号通貨、機械学習、ビッグデータなどの計算集約型テクノロジーの急速な導入により、データセンターの電力...

ウェブサイト診断:ウェブサイト降格の原因分析と回復方法(パート1)

ウェブサイトの重みとは、検索エンジンによってウェブサイト(ウェブページを含む)に割り当てられる権威の...

Rancher がエッジ コンピューティング エコシステムをリードする Kubernetes オペレーティング システム、k3OS をリリース

業界トップのコンテナソフトウェアプロバイダーであるRancher Labs(以下、Rancher)は...