JVM メモリ オーバーフローの 8 つの原因と解決策

JVM メモリ オーバーフローの 8 つの原因と解決策

[[275294]]

1. Javaヒープスペース

頻度: 5 つ星

原因

  • Javaヒープにオブジェクトを割り当てることができません
  • スループットの向上
  • アプリケーションが誤ってオブジェクト参照を保存し、オブジェクトをGCで回収できない
  • アプリケーションはファイナライザーを過度に使用します。ファイナライザ オブジェクトは GC によってすぐに回収することはできません。ファイナライザーは、ファイナライズ キューを提供するデーモン スレッドによって呼び出されます。場合によっては、ファイナライザー スレッドの処理能力がファイナライズ キューの増加に追いつけないことがあります。

解決

  • -Xmxを使用してヒープサイズを増やす
  • アプリケーションのメモリリークを修正する

2. GCオーバーヘッドが制限を超える

頻度: 5 つ星

原因

  • Java プロセスは、ガベージ コレクションの実行に時間の 98% を費やし、ヒープ領域の 2% 未満しか回復しませんでした。これは、過去 5 回 (コンパイル時定数) のガベージ コレクションで連続して発生しています。

解決

  • -Xmxを使用してヒープサイズを増やす
  • GCオーバーヘッド制限を無効にするには、-XX:-UseGCOverheadLimitを使用します。
  • アプリケーションのメモリリークを修正する

3. 要求された配列サイズがVMの制限を超えています

頻度: 2 つ星

原因

  • アプリケーションはヒープ サイズを超える配列を割り当てようとしました。

解決

  • -Xmxを使用してヒープサイズを増やす
  • 巨大な配列を割り当てるアプリケーションのバグを修正しました

4. パーマジェネレーションスペース

頻度: 3 つ星

原因

Perm gen スペースには以下が含まれます:

  • クラス名、フィールド、メソッド
  • クラスに関連付けられたオブジェクトと型の配列
  • JIT コンパイラの最適化

Perm gen スペースが使い果たされると、例外がスローされます。

解決

  • Permgenのサイズを増やすには、-XX:MaxPermSizeを使用します。
  • アプリを再起動せずにアプリケーションをデプロイすると、この問題が発生する可能性があります。解決するにはJVMを再起動してください

5. メタスペース

頻度: 3 つ星

原因

  • Java 8 からは Perm gen が Metaspace に変更され、クラス メタデータ (メタスペースと呼ばれる) がネイティブ メモリに割り当てられるようになりました。メタスペースが使い果たされると、例外がスローされます

解決

  • コマンドラインで -XX:MaxMetaSpaceSize を設定してメタスペースのサイズを増やします。
  • -XX:maxmetsspacedizeのチェックを外す
  • MetaSpace に空き領域を増やすために Java ヒープ サイズを減らします
  • サーバーにメモリをさらに割り当てる
  • アプリケーションのバグかもしれませんので、バグを修正してください

6. 新しいネイティブスレッドを作成できません

頻度: 5 つ星

原因

  • 新しいスレッドを作成するためのメモリが不足しています。スレッドはネイティブ メモリ内に作成されるため、このエラーはネイティブ メモリ領域が不足していることを示すために報告されます。

解決

  • マシンにメモリをさらに割り当てる
  • Javaヒープスペースを削減する
  • アプリケーション内のスレッド リークを修正します。
  • OSレベルの制限の追加
  • ulimit -a
  • ユーザープロセスの数を増やす (-u) 1800
  • -Xssを使用してスレッドスタックのサイズを減らす

7. プロセスまたはサブプロセスを強制終了する

頻度: 1 つ星

原因

  • カーネルタスク: 低メモリキラー、使用可能なメモリが極端に少ない場合にプロセスを強制終了します

解決

  • プロセスを別のマシンに移行する
  • マシンにメモリを追加する
  • 他の OOM エラーとは異なり、このエラーは JVM ではなくオペレーティング システムによってトリガーされます。

8. stack_trace_with_native_methodが発生する

頻度: 1 つ星

原因

  • ネイティブ メソッドの割り当てに失敗しました
  • スタックトレース情報を出力します。最上位のフレームはネイティブメソッドです。

解決

診断にはオペレーティングシステムのネイティブツールを使用する

<<:  ハイブリッドクラウドはデジタル変革への迅速な道を提供します

>>:  オープンソースをベースに、Pivo​​tal が企業のデジタル変革を加速させる方法をご覧ください

推薦する

ユーザーの思考を分析し、優れたブランドマーケティングを行うにはどうすればよいでしょうか?

これまで、誰もがトラフィックの考え方について語ってきました。オンラインとオフラインの両方でトラフィッ...

B2C+BBS ShopexとDiscuzの統合に関する詳細なチュートリアル

ShopExは中国で最も市場シェアの高いオンラインストアソフトウェアであり、Discuzは世界で最も...

インターネットプロモーションの一般的な傾向Qishengインターネットは、専門的なインターネットプロモーションサービスプラットフォームを作成します

月収10万元の起業の夢を実現するミニプログラム起業支援プランインターネットの急速な発展に伴い、世界中...

ワンストップのクラウドネイティブ FinOps プラットフォーム - KubeFin

KubeFin : マルチクラウドおよびマルチクラスターのコスト分析とコスト最適化をサポートし、クラ...

妊娠ウェブサイトの直帰率を下げた方法

SEO において、ページの直帰率は最適化の効果に大きく影響する要素であることは誰もが知っています。私...

Dianping.com が著作権侵害、コンテンツの盗作、コピーで Baidu を訴える

モーニングポストニュース(記者 李東華)昨日、上海第一中級人民法院は、原告上海漢涛情報コンサルティン...

hudsonvalleyhost-$35/E3-1240V3/8G メモリ/120gSSD/10T トラフィック/1000M ポート

特別価格のサーバーが必要な友人はラッキーです。ColorCrossing 傘下の HudsonVal...

物語は美しいが、誰もそれを信じない。問題はこれにあるのかもしれない

私たちは子供の頃、大人が語る物語を聞きました。あらゆる種類の怪物、幽霊、愛、憎しみ、感情が私たちの顔...

hivalidity: インド VPS (ムンバイ、ノイダ)\米国 VPS\ドイツ VPS、月額 5 ドル、1Gbps 帯域幅

2009 年に設立されたインド企業である hivalidity は、ドメイン名、仮想ホスティング、V...

広州の国立スーパーコンピューティングセンターが OpenStack グローバル スーパーユーザー賞の最終候補に選出

オープンソース分野における世界的なスーパーイベントである OpenStack Open Infras...

顧客基盤を拡大するのは難しく、コストもかかりますか? 精密マーケティングが企業の悩みを解決

月収10万元の起業の夢を実現するミニプログラム起業支援プラン電子商取引が急成長を遂げる中、店舗は依然...

#ion#: シンガポール VPS、オプション回線: PCCW/China Mobile/シンガポール CN2、Alipay 決済

Krypt の ion は新しいシンガポール データ センターを追加し、今回は PCCW、China...

クラウドコンピューティング戦争:ハードウェアベースの企業は古すぎるために失敗している

これは歴史に残る戦争だ。それは参加者の生存に関わるだけでなく、人類の技術発展の将来の方向性にも大きな...

空白ページを 404 ページにするにはどのようなデザインが必要ですか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますウェブサイ...

検索エンジン上のウェブサイトに関する否定的な情報も「最適化」できます。どうすればいいでしょうか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますネガティブ...