問題タブ [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 投票する
7 に答える
83853 参照

java - tomcat PermGen スペースをどうするか

背景:私はJSPを使用するWebプロジェクトを持っています。IDE は Eclipse です。tomcatの設定は、リソース変更時に自動公開し、公開間隔は「1秒」です。

一部の設定を保存するために使用されるクラス フォルダー内のプロパティ ファイル。サーブレットによって動的に変更することもできます。変更操作は、JSP の保存ボタンによってトリガーされます。

問題: いくつかの保存操作の後、Tomcat にjava.lang.OutOfMemoryError: PermGen space.

ログメッセージ

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

java - 大きなPermgenサイズ+パフォーマンスへの影響

tomcat 6でliferayポータルを実行しています。各ポートレットは含まれているWebアプリケーションであるため、ポートレット自体が必要とするすべてのライブラリが含まれています。現在、30以上のポートレットがあります。この結果、Tomcatのpermgenは、デプロイするポートレットごとに増加します。

これで、たどることができる2つのパスができました。各ポートレットで一般的に使用されているライブラリの一部をTomcat共有ライブラリに移動します。これには、permgenサイズを小さくするためのspring / hibernate / cxf / ....のようなものが含まれます。または、permgenサイズを大きくする方が簡単です。

この2番目のオプションを使用すると、すべてのポートレットを自己完結型のエンティティとして保持できます。

ここでの問題は、permgenサイズを増やすことによるパフォーマンスへの悪影響はありますか?現在512MBで稼働しています。私はこれについてほとんどまたはまったく情報を見つけませんでした。しかし、問題なく1024MBのpermgenサイズで実行することについて人々が話しているという投稿がいくつか見つかりました。

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

java - 4GBと8GBのRAMとこれの計算について言及できる-XX:MaxPermSizeサイズはどれくらいですか?

4GBと8GBのRAMについて言及できる-XX:MaxPermSizeサイズ。これが私のシステムの他の詳細です

OS:-ウィンドウXP(32ビット)RAM:-4 GB java_opt- -Xms1536m -Xmx1536m //(環境変数として言及):tomcatバージョン:-6.0.26

私は他の詳細がまったく同じである8GBのRAMを備えた別のシステムを持っています。はいosは64ビットのWindow7です。

これに加えて、両方のシステムの-Xmxパラメーターの最大値を教えてください。

この図を詰め込む必要がないように、誰かが図に到達するための計算を教えてくれるといいのですが、RAMシステムが持っていることに基づいて論理的に計算できますか?

私は実際に人々がpermgenエラーまたはヒープエラーを取得するのを見てきましたが、問題を解決することがわかるまで、すべての体がこのパラメーターで遊んでいます。

0 投票する
0 に答える
2876 参照

java - システム構成の最大ヒープサイズと最大 perm gen サイズを見つけるためのプログラム/アプローチ?

最大ヒープ サイズと最大 permgen スペースをテストするには、Gilliが Windows の Java プロセスあたりの最大メモリ量で提案した返信に従って? 、システムを出力するだけのmainメソッドを持つ単純なJavaクラスを作成しました

以下のパラメーターを使用してコンソールからクラスを実行すると、正常に実行されましたが、2048 で、エラー could not reserve が発生しました オブジェクト ヒープに十分なスペースを予約できませんでした。これは、システムの最大ヒープ サイズが 1536 から 2048 の間で許容されることを意味します。

http://publib.boulder.ibm.com/infocenter/javasdk/tools/index.jsp?topic=/com.ibm.java.doc.igaa/_1vg00014884d287-11c3fb28dae-7ff6_1001.htmlのリンクによると、

64 ビット Java を実行している場合、オペレーティング システムが Java プロセスに提供するメモリ空間は非常に大きくなります。したがって、Java ヒープとネイティブ ヒープの間のメモリ リソースの競合により、Java ヒープの最大サイズに制限が課されていないと見なすことができます。

だから私は 8 GB のメモリを持っているので、なぜ VM はオブジェクト ヒープに十分なスペースを予約できなかったのでしょうか?

2 番目に必要なのは、システムの最大 permgen サイズを見つけることです。だから私は以下のパラメータで同じプログラムを実行しました

しかし、再び、オブジェクトヒープに十分なスペースを予約できませんでしたと表示されます。Windows7 64ビットOSで8GB RAMを持っているので、どうすればそれが可能ですか。そして、permgen に 128m も許可しないのですか? 私はここで何かが欠けていると確信していますが、それを理解することはできませんか?

0 投票する
11 に答える
111856 参照

java - tomcat で PermGen スペース エラーをクリアする方法

私は Windows 環境で作業していますが、Tomcat を使用するたびにこのエラーが発生します。

システム変数を追加しようとしJAVA_OPTS with the value as -Xms1024m -Xmx1024mましたが、同じエラー(java.lang.OutOfMemoryError: PermGen space)が何度も発生します。

どんな助けでも大歓迎です。Stack Overflow の他の投稿も読みましたが、うまくいきませんでした。

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

grails - Cloudfoundryはより大きなメモリを必要とするアプリをサポートしていますか?

私はgrailsを使用してWebサイトを開発し、Cloudfoundryを使用してデモを行っています。GrailsとCloudfoundryは素晴らしいです!これらは、STSのgrailsプラグインとツールのサポートにより簡単に使用できます。

私のアプリはMySQL、MongoDB、SpringSecurityなどを使用しています。ログインしている1人のユーザーでのみ使用しており、定期的に取得していますjava.lang.OutOfMemoryError: PermGen space

grailsプラグインを使用してメモリを1Gに増やしました。メモリを増やすためにJAVA_OPTSを設定しようとしましたが、これは機能しませんでした。

メモリがどこで使用されているかを調べますが、1人のユーザーと小さなデモデータのセットがメモリの制限を押し上げてはならないようです。

Cloudfoundryはより大きなメモリを必要とするアプリをサポートしていますか?

この投稿を読んだ後、MaxPermSizeを512Mに設定しましたが、メモリ不足エラーは発生しなくなりました。Windowsでgrailsコマンドラインを使用していますが、複数のJAVA_OPTSセットを取得できず、リストの最初のセットのみが使用されます。grails cf-env-add JAVA_OPTS "-XX:MaxPermSize=512m -Xms512M -Xmx512M"この1つの設定により、デモサイトの安定性が向上しました。

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

java - jarファイルのクラスがPermGenに入るのはいつですか

私の理解では、PermGenは(ある意味で)クラスコードをメモリに保持しています。多くの場合、クラスパスを参照するjarファイルがたくさんあります。jarファイルがクラスパス(Tomcatのlibディレクトリなど)に含まれている場合、それらすべてのjarのすべてのクラスが自動的にPermGenにロードされますか?

同様の質問で、jarファイルのクラスが使用されると、PermGenはそのjarファイル内のすべてのクラスをロードしますか、それとも使用されているクラスだけをロードしますか(その後、必要に応じて残りのクラスファイルをロードします)?

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

java - permgen メモリを変更できません

Java EE Web アプリケーションに PermGen Out of memory 例外があります。

java.lang.OutOfMemoryError: PermGen スペース

それを解決する方法について非常に多くの投稿を読みましたが、ほとんどすべてが PermSize (デフォルトと最大) を増やす必要があると言っています。しかし、それらを変更することはできません。次のコードを追加して、setenv.sh、catalina.sh、および startup.shを変更しようとしました。

export JAVA_OPTS="-XX:PermSize=M -XX:MaxPermSize=1024m -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled"

また、ターミナルを使用してそれを実行しようとします。

export JVM_ARGS="-XX:PermSize=256m-XX:MaxPermSize=1024m -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled"

しかし、「jstat -gcpermcapacity」を使用して確認すると、何も変わりません。記憶はいつも同じ。私たちの環境はCentos 6、Apache 2.2、Tomcat 5.5、Java 6であり、アカウントにWHMによってサーブレットをインストールしてアプリをデプロイしました。

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

permgen - antからinstall4jコンパイラを呼び出すと、PermGenOutOfMemoryエラーが発生します

GUIを使用し、コマンドラインからinstall4jcを呼び出すと、install4j v4.2.8が正常に実行され、インストーラーが生成される状況に遭遇しましたが、install4jantタスクを介して呼び出すと次のメッセージで失敗します。

visualvmを使用して、antタスクが別のJVMをフォークしていることを確認しました。これは、PermGenの使用量が約88MBに達すると失敗するように見えます。install4j antタスクドキュメントは、VM引数(-XX:MaxPermSize = 256MBなど)をフォークされたJVMに渡すことができることについては何も述べていませんが、それまたは同様のものがオプションになるかどうか疑問に思っています。

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

java - PermGenスペースを分析する方法は?

重複の可能性:
PermGenの内容を分析する方法は?

PermGenスペースを占有しているものを知りたい-文字列intern()またはクラス?この分析に役立つツールはありますか?