Tomcat:Caused by:java.lang.OutOfMemoryErr:PermGen spaceの解決策


これは出会うべき人が比較的に多くて、ここは私も出会って、ネット上で調べて、下の1段の話を見て、感じは悪くなくて、ここに置きます.参照元:
http://hi.baidu.com/zoomx/blog/item/77d93ca819f0a0b0cb130c8d.html
プロジェクト中にシステム停止応答の問題が発生しました.TomcatレポートCaused by:java.lang.OutOfMemoryError:PermGen space異常、プログラムメモリ漏れによるメモリオーバーフローと思い始めました.ネットで調べてみましたが、メモリオーバーフローPermGen spaceのフルネームはPermanent Generation spaceです.メモリの永久保存エリアを指します.このメモリは主にJVMにClassとMeta情報を保存されています.ClassはLoaderによってPermGen spaceに入れられます.これは保存類のインスタンスのHeapエリアと違って、GCはメインプログラムの実行期間中にPermGen spaceを整理しません.PermGen spaceエラーが発生する可能性が高いです.このようなエラーはwebサーバでJSPをpre compleする時によくあります.あなたのWEBアプリで大量の第三者jarを使っていたら、その大きさはjvmのデフォルトの大きさ(4 M)を超えています.このエラーメッセージが発生します.解決方法:手動設定MaxPermSizeサイズ設定パラメータ:-Xms 256 m-Xmx 512 m-XX:MaxNewSize=256 m-XX:MaxPermSize=256 m TomcatでTOMCAT_を修正します.HOME/bin/catalina.sh(linuxシステムの下でstart.shはそれを呼び出してtomcatを起動します.windowsの下でcatalina.batを呼び出して、類似を修正します.)ファイルのヘッドコメントの後でJAVA_に参加します.OPETS='-Xms 256 m-Xmx 512 m-XX:MaxNewSize=256 m-XX:MaxPermSize=256 m'tomcatが複数のシステムを実行している場合、同じ第三者jarファイルをtomcat/shard/libディレクトリに移動することで、jarドキュメントの重複占有メモリを減らすことができます.
このエラー解決方法:
tomcat\binフォルダのcatalina.batファイルの下で.176行ぐらいです.
rem Execute Java with the appicable propertiesの下で、すべての%CATALINE_OPTTS%を-Xms 256 m-Xmx 512 mに置き換えます.彼らはそれぞれ最小メモリと最大メモリを指します.tomcatの最大メモリは物理メモリの80%にしか変えられません.
----ついでに書いてください
Tomcat 5常用最適化と配置1、JDKメモリ最適化:Tomcatデフォルトで使用できるメモリは128 MBで、Windowsの下で、ファイル{tomcatuhome}/bin/catalina.bat、Unixの下で、ファイル{tomcathome}/bin/catalina.shの前に、以下の設定を追加します.OPETS='-Xms[初期化メモリサイズ]-Xmx[使用可能な最大メモリ]は一般に、ヒープサイズとして物理メモリの80%を使用するべきです.2、コネクタ最適化:tomcatプロファイルserver.xmlの構成には、接続数に関するパラメータがあります.maxThreads:Tomcatはスレッドを使って、受信した各要求を処理します.この値はTomcatが作成できる最大スレッド数を表します.標準値200acceptCount:使用可能な処理要求のスレッド数がすべて使用されている場合、処理キューに入れることができる要求数を指定します.この数を超える要求は処理されません.標準値10minSpare Threads:Tomcat初期化時に作成されたスレッド数.標準値4maxSpare Threads:作成したスレッドがこの値を超えると、Tomcatは不要なsocketスレッドを閉じます.標準値50enable Look up:ドメイン名の確認に反対するかどうか、デフォルト値はtrueです.処理能力を高めるために、false connnectionTimeoutに設定します.ネットワーク接続のタイムアウト、デフォルトの値は60000、単位:ミリ秒です.0に設定するとタイムアウトしないということです.通常は30000ミリ秒に設定できます.maxKeep Alive Requests:要求数を保持し、デフォルト値100.bufferSize:ストリームバッファサイズを入力し、デフォルト値2048 bytes.comppression:圧縮転送、on/off/force、標準値off.最大接続数に関するパラメータは、maxThreadsとacceptCountである.同時接続数を大きくするには、この二つのパラメータを同時に大きくする必要があります.web serverで許容される最大接続数は、オペレーティングシステムのカーネルパラメータ設定にも適用されています.通常はWindowsは2000個ぐらいで、Linuxは1000個ぐらいです.3、tomcatでリストのファイルをどのように禁止して許可するかは、{tomcathome}/conf/web.xmlでlistingsパラメータをfalseに設定すればいいです.
...listingsfalse...4、tomcat           IP    
    ...        ...
これはサーバーの配置JAVA_です.OPETS='-server-Xms 512 m-Xmx 768 m-XX:NewSize=128 m-XX:MaxNewSize=192 m-XX:Survivor Ratio=8'(T 002)
tomcat接続数を大きくする:tomcatプロファイルserver.xmlの構成では、接続数に関するパラメータがあります.ミニプロセッション:最小アイドル接続スレッド数、システムの処理性能を向上させるために使用されます.デフォルト値は10 maxProcessorsです.最大接続スレッド数、すなわち、合併処理の最大要求数、デフォルト値は75 acceptCountです.maxProcessors以上であるべきで、デフォルト値は100 enable Look upです.ドメイン名を確認するかどうかは、trueまたはfalseの値を取ります.処理能力を高めるために、false connection Timeoutに設定するべきである.ネットワーク接続がタイムアウトし、単位:ミリ秒.0に設定するとタイムアウトしないということです.通常は30000ミリ秒に設定できます.最大接続数に関するパラメータは、maxProcessorsとacceptCountである.同時接続数を大きくするには、この二つのパラメータを同時に大きくする必要があります.web serverで許容される最大接続数は、オペレーティングシステムのカーネルパラメータ設定にも適用されています.通常はWindowsは2000個ぐらいで、Linuxは1000個ぐらいです.