1

JPA/Hibernate を使用して Tomcat で Java Web アプリケーションを実行すると、頻繁に「PermGen の容量不足」が発生します。

このグラフィカルなメモリ プロファイルを説明できる人はいますか?

ヒープメモリ:最大まで実行していますが、まだ余裕があります(最大2.147.483.648ですが、1.667.155.688が使用されています)

ここに画像の説明を入力

非ヒープ メモリ: サイズは減少しています (94.568.448)。最大では 5 倍以上が許容されます。これは、「PermGen がスペース不足」になる直前のスナップショットです (Size = Used の場合)。

ここに画像の説明を入力

このプロフィールがわかりません。物理メモリはまだたくさん残っています。

4

3 に答える 3

0

この問題は、多くの場合、何らかのメモリ リークに関連しています。PermGen または永続的な世代は、たとえばStringオブジェクトやClass定義が割り当てられるヒープの一部です。ヒープや物理メモリにまだスペースが残っている場合、PermGen は簡単に不足してしまいます。

perm genのサイズを大きくすることはできますが、ほとんどの場合、それで時間を稼ぐだけなので、問題が長引くだけです.

一部のグラフに基づいてお手伝いできないため、このエラーの原因となっているコードを確認する必要があります。Java でメモリ管理がどのように機能するかを理解していない場合は、次のリンクが役立ちます。Jvm パフォーマンスの強化Java ガベージ コレクタ

于 2013-09-02T10:21:54.743 に答える