GroupSession
10月よりGroupSessionを導入し、運用しているものです。VMWare上の仮想サーバー(Windows2008R2 64bit)で実装メモリーを8Gで設定していますが、標題のエラーが発生するようになりました。経緯としては、当初実装メモリーを4Gとしていましたが、「java.lang.OutOfMemoryError: PermGen space」のエラーが発生するようになり(Tomcatを再起動すると一旦は収まるのですが)、サポートページを見ながらメモリーの設定を行ったものの、1週間すると、また標題のエラーが出てくるようになったのです。そこで、実装メモリーを8Gにし、Monitor Tomcat で以下のように設定しました。Java Options:-D-XX:MaxPermSize=1024mInitial memory pool: 2048MBMaxmum memory pool: 4096MB2週間ぐらい問題ありませんでしたが、最近また出てくるようになりました。やはり折を見てTomcatを再起動したほうがよいのでしょうか。javaのメモリー設定でなんとかなるのなら設定で対応したいですし、一定期間にメモリー解放のためTomcatの再起動が必要ならば、もし、夜中にTomcatを再起動する設定をされている方がおられましたら、タスクスケジューラーなどでの設定方法ご教授ください。以下にシステム情報およびエラー内容を添付させていただきます。
2012-11-20 16:51:58,013 ERROR jp.groupsession.v2.struts.GSExceptionHandler:41 - 予期せぬエラーorg.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.OutOfMemoryError: PermGen space at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:500) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:410) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302) at org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113) at org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96) at org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51) at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191) at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305) at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191) at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302) at org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113) at org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96) at org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54) at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191) at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305) at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191) at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at jp.co.sjts.util.http.filter.FilterEncoding.doFilter(FilterEncoding.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Unknown Source)
Caused by: javax.servlet.ServletException: java.lang.OutOfMemoryError: PermGen space at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:865) at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794) at org.apache.jsp.WEB_002dINF.plugin.main.jsp.man250_jsp._jspService(man250_jsp.java:1235) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386) ... 54 moreCaused by: java.lang.OutOfMemoryError: PermGen spaceです。システム情報は以下のとおりです。・Version 4.0.7 (4.0.7) ・OS Windows Server 2008 R2 amd64 6.1 ・J2EEコンテナ Apache Tomcat/6.0.30 ・Java 1.6.0_35 Sun Microsystems Inc. ・メモリ使用 2,482,096KB (61.2%) ・メモリ最大 4,054,528KB ・現在の空きディスク容量 101268MB よろしくお願いいたします。
パーマネント領域の設定が違っているのでは?> Java Options:> -D-XX:MaxPermSize=1024mサポートページの記述:-XX:MaxPermSize(パーマネント領域): 128(Java Optionsに追記)
サトウさまさっそくの回答ありがとうございます。"-D" これ?どこか別のサイトを参考にしていたようです。ご指摘ありがとうございました。試してみます。ほかの皆様はどれくらいの領域を確保していらっしゃるのでしょうか。128Mでも十分なのでしょうか。> パーマネント領域の設定が違っているのでは?> > > Java Options:> > -D-XX:MaxPermSize=1024m> > サポートページの記述:> -XX:MaxPermSize(パーマネント領域): 128(Java Optionsに追記)
200ユーザー程度で試用しています。こちらOSはCentOSですので、以下のコマンドで設定しています。export CATALINA_OPTS='-XX:MaxPermSize=256m -Xmx1024m -Xms512m -Dsun.nio.cs.map=x-windows-iso2022jp/ISO-2022-JP'実装メモリは2GB、サポートページの説明をそのまま鵜呑みにした設定です。電源設備点検等あり何年も連続稼働することはないですが、普通に1年は無停止で使える雰囲気ですよ。
revさまご回答ありがとうございます。そうですよねぇ。OSの違いはあれ2Gの実装で回答していただいた設定が基本になるのかなと。すこしずつチューニングしながら試して行こうと思います。> 200ユーザー程度で試用しています。> こちらOSはCentOSですので、以下のコマンドで設定しています。> > export CATALINA_OPTS='-XX:MaxPermSize=256m -Xmx1024m -Xms512m -Dsun.nio.cs.map=x-windows-iso2022jp/ISO-2022-JP'> > 実装メモリは2GB、サポートページの説明をそのまま鵜呑みにした設定です。> 電源設備点検等あり何年も連続稼働することはないですが、普通に1年は無停止で> 使える雰囲気ですよ。>
TOP