問題タブ [permgen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
8592 参照

java - 約 110 人のユーザーで 2 日間連続して実行した後、Java サーバーの CPU 使用率が 100% になる

Tomcat 6.0.20、4 月 1.2、jdk 1.6.0_15 と mysql 5.1.38 を 4 GB RAM の rhel ボックスで実行しています。5 人のユーザーを持つ 1 つの単純な jsp/サーブレット アプリケーション、64 人のユーザーを持つ 1 つの struts 1.2.0.9、35 人のユーザーを持つ 1 つの struts 2.0 アプリケーションがあります。Struts 2.0 のユーザーは毎秒、1 日に約 900 のエントリを作成します。最後の 2 つのアプリケーションでは、永続化のためにトップリンクも使用しています。コード内で、参照されていないすべてのオブジェクトを null に宣言し、struts 2 サイトと tomcat サイトからの構成ファイルに運用値を適用しました。mysql でスレッド キャッシングを適用し、wait_timeout と interactive_timeout を tomcat のセッション タイムアウトと同等になるように減らしました。Linux でファイル記述子を増やしました。作り直されたクエリ。スレッド ダンプを調べ、gc 統計を監視し、これに基づいて上記の変更を適用し、

まだ「java.lang.OutOfMemoryError」エラーに直面しています。

時々、それはさまざまなもののためであり、時にはその Servlet.service() 、時にはその image.servlet 、時にはそれを引き起こすジャスパーです。

エラーは一定ではなく、時間の経過とともに変化し続けるため、非常にイライラします

どんな助けでも大歓迎です!!!

JAVA_OPTS=-server -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled -XX:+CMSParallelRemarkEnabled (Tomcat マネージャーは 34 MB が空であると報告するため、permsize、mx、mn などは使用していません)

persistence.xml

サーバー.xml

context.xml

0 投票する
3 に答える
443 参照

function - Scala のファーストクラス関数は、JVM で大きな PermGen スペースを割り当てる際に問題になる可能性がありますか?

Scala のファーストクラス関数については、Programming by Scala という本に次のように書かれています。

関数リテラルは、実行時にインスタンス化されると関数値になるクラスにコンパイルされます。

プログラムで多くのファーストクラス関数が使用される場合、これは JVM の PermGen スペースに影響しますか? 単純な関数の代わりに、コンパイラは関数値のバリエーションごとにクラスを生成するためです (たとえば、部分的に適用された関数のさまざまな定義の場合)。

0 投票する
1 に答える
816 参照

java - Tomcat サーバーでアプリを実行する際の何が問題になっていますか?

最近、Maven ベースの Web プロジェクトを作成し、Tomcat をアプリケーション サーバーとして使用してデバッグしました ...

しかし、Tomcat は、プロジェクトのコンテキスト メニューから直接アプリを実行した後、頻繁に停止します (メモリ不足を意味する pergem エラー)。

最悪の場合、多くのアイドル スレッドが作成され、それらはすべて手動で強制終了できません。

また、Tomcat の状態も NetBeans によって検出されず、停止および再起動できません。それらをきれいにするためにシステムを再起動する必要があります。

私のシステムは Fedora 12 x86 です... Java のバージョンは SUN JDK 6 update 17 です。NetBeans のバージョンは 6.7.1 です。

私はこれについてバグを作成しようとしましたが、NetBeans 開発者はそれを拒否しました... これが NetBeans を使用して Web アプリケーションを開発する大きな障害になっていることに非常に驚いています。

今日、最新の NetBeans 6.8rc1 で JBoss 5.1 を使用しましたが、同じ問題に遭遇しました... VM パラメータを調整してより多くのメモリを割り当てようとしましたが、効果はありませんでした。

seam ant build script を介していくつかの seam サンプルを JBoss 5.1 にデプロイしましたが、問題はありません。しかし、これを行うために NetBeans を使用するように切り替えました。メモリ不足のために失敗しました。

なにが問題ですか????

0 投票する
4 に答える
18178 参照

java - Java クラス (PermGen) メモリ リーク (Web アプリケーション) - 一般的な解決策?

perm gen のメモリ リークがあります。jvisualvm を使用したプロファイリングは、ホット デプロイメント (Tomcat、WebSphere、WebLogic などで、JVM を強制終了せずにアプリケーションを停止および開始するなど) を実行すると、PermGen スペースが常に増加することを示しています。

読んだ後、jhat やその他の高度なツールを使用して、おそらくWebAppClassLoader親クラス ローダーのどこかにあるクラスから への参照があることに気付きました。

jhatで大規模なJavaScriptベースのクエリを実行したにもかかわらず、特定できませんでした

クラスローダーがガベージコレクションされないようにする責任がある人を見つける簡単なユーティリティはありませんか(したがって、クラスローダーによってロードされたクラスのガベージコレクションが許可されます)。

JProfiler、jvisualvm、jhat、および多くの Google を試しました

すべての LMGTFY の友人へ - 私は約 1 日半かけてフォーラムを段階的な手順で読みましたが、うまくいきませんでした。出力するユーティリティまたはコードを探しています:

クラス Y のオブジェクト X は、クラスが削除されないようにする唯一の GC ルートです。

0 投票する
1 に答える
1899 参照

hibernate - Glassfish でクリーンなアンデプロイを行うことは可能ですか?

休止状態を使用するアプリケーションは、Glassfish 2.1.1 で完全にアンデプロイできないことに気付きました。アンデプロイ プロセスの後、多くのクラスがメモリに残ります。jmap と jhat を使用して確認できます。

いくつかのテストを行った結果、休止状態になったアプリケーションのみが clen のアンデプロイ プロセスに失敗することがわかりました。すべてのケースで、Hibernate のデータベース プロバイダーは jTDS 1.2.5 でした。

アプリケーションを実行する必要さえありません。デプロイしてすぐにアンデプロイすると、多くはアプリケーションから、多くは hibernate とその依存関係から、いくつかのクラスがメモリ内にあることがわかります。

Glassfish v2.1.1 で完全なアンデプロイを行うことは可能ですか? いつも permgen スペースが不足しています。

0 投票する
4 に答える
11701 参照

java - PermGen スペースの重要性

JavaのPermGenスペースの重要性は何ですか?

0 投票する
1 に答える
551 参照

java - コマンドラインパラメータとしてVMのJMX属性を設定する

私はいくつかの検索を行いましたが、これを行う方法を見つけることができないようです。

JMXを介してpermgenスペースをプロアクティブに監視したいと思います。これを行う最良の方法は、「PSPermGen」MemoryPoolのUsageThreshold属性を使用することです。デフォルトでは、これは0に設定されています。これまたは任意のJMX属性をVMの-Dパラメーターとして指定して、起動時に自動的に設定できるようにする方法はありますか?または、JMX属性を自動的にロードする別のメカニズムはありますか?

ありがとう。

0 投票する
2 に答える
831 参照

tomcat - Tomcat アプリケーション: イメージのアップロード中に OutOfMemory PermGen 例外が頻繁に発生する

-Xms512m -Xmx1024m のパラメーターを設定した tomcat 6 アプリケーションがあります。4 GB の RAM に 1 GB のメモリがあれば十分だと思っていましたが、そうではありません。アプリケーションの停止/開始を複数回 (Tomcat マネージャーから)、またイメージのアップロード (時々) で、OutOfMemory PermGen スペース エラーが発生し、サイトが応答を停止します。メモリをもう少し増やしたほうがいいですか?PermGen スペースの問題に遭遇しないように、Tomcat 側から他にできることはありますか? ポインタ/ヒントなどを事前に感謝します。

0 投票する
3 に答える
6427 参照

java - Java HotSpot 1.6 VM、ガベージ コレクション - Scary PermGen

私のアプリは「Old Generation」/「Tenured Generation」のサイズの増加を示しており、これが「Old Gen」の最大制限に達すると、突然 PermGen のサイズが増加します。私の世代のサイジングは次のとおりです。

これは 32 ビットの Fedora 上にあるため、これより大きなヒープを持つことはできません。

このアプリは、Spring IOC と Hibernate を使用していますが、特別なクラスローディングは行っていません。Spring App-context.xml は、約 1000 の Bean を定義しています。

このアプリは 175MB の PermGen から始まり、数時間で ~250MB まで着実に増加し、Tenured Generation が ~780MB に達するまでそのままで、その後 permgen は ~500MB にジャンプし、Old Gen は ~500MB に低下します。

これにより、毎日アプリを再起動する必要があり、OutOfMemory エラーが迫ってくるのではないかと本当に恐れています。

ありがとう Gala101

5 月 13 日: 「Old Gen」がガベージ コレクションされるとどうなるか、誰かに光を当ててもらえませんか?
jvm は「Old Gen」からのコレクションを PermGen に入れますか?
PermGen のスパイクは、「Old Gen」からのコレクションが発生した場合にのみ発生します。また、OldGen のサイズの減少は、PermGen のサイズの増加とほぼ一致します。
PS: PermGen を確実に消費するため、ライブ デプロイ/アンデプロイは行いません。
以下は、私の監視ページからの現在のスパンショットです: (コミットされた部分は、約 250 MB から 500 MB にジャンプしました)

0 投票する
4 に答える
24687 参照

java - PermGenの内容を分析する方法は?

PermGenのダンプを取得して、なぜそれがいっぱいになっているのかを確認したいと思います。これを分析する方法はありますか?log4j、tomcat webappのリロードなどの一般的な容疑者についてはすでに知っていますが、アプリケーションにもカスタムプロキシ生成コードがあり、内部を調べたいだけです。

これはどういうわけか可能ですか?