ホームページ  >  記事  >  Java  >  Javaでメモリリークをチェックする方法

Javaでメモリリークをチェックする方法

WBOY
WBOY転載
2023-05-07 09:58:071477ブラウズ

メモリ リークのシナリオ

メモリ リークは、存続期間の長いオブジェクトが存続期間の短いオブジェクトへの参照を保持している場合に発生する可能性があります。ただし、存続期間の短いオブジェクトは必要なくなりました。長いライフサイクルにわたってその参照を保持すると、その参照がリサイクルされなくなるため、これは Java でメモリ リークが発生するシナリオです。

1. プロセス中の CPU とメモリの使用量を確認します:

    top –H –p 58527

2. サーバーのメモリを確認します。

    df -h 查看磁盘情况
    du -h --max-depth=1 文件目录占用资源情况。

3. メモリ、キャッシュ領域、使用状況、アイドル状態を確認します。

free -m

S0C: 若い世代の最初の生存者 (生存者領域) の容量 (バイト)

S1C: 若い世代の 2 番目の生存者 ( bytes) サバイバー領域の容量 (バイト)

S0U: ヤング世代の最初のサバイバー (サバイバー領域) が現在使用しているスペース (バイト)

S1U: ヤング世代の 2 番目のサバイバー世代 サバイバー (生存エリア) が現在使用しているスペース (バイト)

EC: 若い世代のエデン (Eden) の容量 (バイト)

EU: 現在のエデン (Eden) の容量) 若い世代の使用済みスペース (バイト)

OC: 古い世代の容量 (バイト)

OU: 古い世代の現在使用中のスペース (バイト)

PC: Perm ( Persistent Generation) 容量 (バイト)

PU: Perm (persistent Generation) 現在使用されている領域 (バイト)

YGC: アプリケーション起動からサンプリングまでの若い世代の gc 時間

YGCT: アプリケーションの起動からサンプリング時間まで、若い世代の gc に使用された時間 (秒)

# FGC: アプリケーションの起動からサンプリング中の古い世代 (フル gc) までの gc の数

FGCT : アプリケーションの起動からサンプリング時の旧世代 (フル gc) までの gc にかかった時間 (秒)

GCT: アプリケーションの起動からサンプリング時間までの gc の合計時間 (秒)

4. 実行プログラムの情報を表示します。

    jstack 2829 > 1.log    
 
    grep -A 1'java.lang.Thread.State' jstack.log | wc -l
5. ヒープ ファイル解析コードのダンプをダウンロードします。

以上がJavaでメモリリークをチェックする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。