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 が企業のデジタル変革を加速させる方法をご覧ください

推薦する

仮想化により、データセンターのストレージシステムの運用と保守の複雑さが軽減されます。

さまざまな情報システムの増大する IT リソースの需要に対応し、アーキテクチャと管理の複雑さを軽減し...

タイトルとキーワードを設定するための効果的な方法

早速本題に入りましょう。ウェブサイトのタイトルとキーワードをどのように設定するかです。タイトルとは、...

タイトルの長さがSEOの結果に与える影響についての簡単な説明

タイトルの長さは SEO に影響しますか? 答えは、間違いなく「はい」です。しかし、長くすべきか短く...

クラウド疲労: 企業がアプリケーションをクラウドから移行するのはなぜでしょうか?

最近の Enterprise Strategy Group の調査によると、回答者の半数以上がすでに...

ユーザーエクスペリエンス分析: Renrenタイムラインの戦略的意義

タイムラインは、時間を手がかりにしてフィードを表示するプレゼンテーション形式です。 2011年以降、...

Long Jun: 検索エンジンの検索コマンドを使用してウェブサイトを分析する

みなさんこんにちは。ロン・ジュンです。この記事のタイトルを読んで、多くのウェブマスターは私が大騒ぎし...

内部ページキーワードの最適化に焦点を当て、最適化効果を高める新しい方法を見つけます

ウェブサイトのSEO最適化を行う際、ホームページとコアキーワードから始める傾向があり、内部ページのキ...

Taobao Affiliate Station の所有者は、Baidu アルゴリズムの調整にどのように対処すべきでしょうか?

最近、Baidu のいくつかのメジャーアップデートは、多数のウェブマスターに影響を与えており、特に ...

ソーシャル検索についての簡単な説明: クラウド検索 (パート 1)

「ソーシャル化」はインターネット上で一連の騒動を引き起こしています。どの業界であっても、「ソーシャル...

「湘潭専門店」が三里屯に出現、JD.comが国境のない小売業の新たな章を開く

[51CTO.comよりオリジナル記事]湘潭と言えば何を思い浮かべますか?偉人の故郷、赤い太陽が昇る...

分散型クラウドの時代を迎え、Tianyi Cloud 4.0 はエッジ セキュリティをどのように保護するのでしょうか?

12月10日、中国通信企業協会と中国情報通信研究院の主催による2021年(第11回)電気通信・インタ...

ウェブサイトの記事を公開する時間はBaidu SEOにとって非常に重要です

Baidu が Web ページをクロールしてページの品質を判断する際、ページの公開時間の影響を受けま...

SEOの決定: 効果的な戦略か適切な戦略かの選択

なぜ、効果的な戦略と正しい戦略のどちらを選ぶべきなのか、という疑問を持つ人がいるのでしょうか。成果を...

1回の広告収入78,000円!ゴーストレッグセブンがセルフメディアを嫉妬させる

文/葉鳳涛程玲鋒氏が運営するWeChatの自主メディアアカウント「雲科技」が初めて広告スペースの販売...

ディンドン・マイカイとミスフレッシュは上流で「戦っている」

2020年の疫病は生鮮食品電子商取引の集中化を加速させ、2020年は生鮮食品電子商取引にとって重要な...