- - PR -
Tomcat アプリケーションハングについて
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-12-05 15:57
TP-Processor280 のスタックトレースは恐らくブラウザからのリクエストを読み取っているところですね。
このスレッドすら何度スレッドダンプをとっても同じ所で固まっているようでしたらそれこそ Tomcat より低レベルなところで固まっているものと考えられます。 既に試されているかもしれませんが、結構厄介な現象のようですからまずは検証用の環境で同じ設定、構成にして負荷をかけて現象を再現させましょう。 再現できれば、スレッドモデルなり、JVMなり、スレッド数なりを変更して状況に変化があるか確認できますね。 VM レベルの問題かもしれないので、今後の保険の意味も含めて最新版の 1.4.2_13 にアップデートするのもいいかもしれません。 http://java.sun.com/j2se/1.4.2/download.html [ メッセージ編集済み 編集者: インギ 編集日時 2006-12-05 16:09 ] | ||||||||||||||||
|
投稿日時: 2006-12-05 23:54
そうです。 http://www.linux.or.jp/JM/html/LDP_man-pages/man7/pthreads.7.html LD_ASSUME_KERNELの説明はここに書いてありました。 NPTLは以前のLinuxThreadsとは違いカーネルの手助けを必要とするため、 必要とする機能が未対応なカーネルのバージョンを指定することで 特定の最適化やNPTL自体を無効化することができます。
Redhat 9はNPTLを使った最初のディストリビューションですし、 NPTLはもともと2.6系のカーネル向けで、2.4系はバックポートな位置づけです。 前の書き込みのリンクの現象はRedhat EL 3では発生しないようですし、 JVMではなく、Native Thread側の問題な可能性もあるということです。 | ||||||||||||||||
|
投稿日時: 2006-12-06 17:35
あしゅさん非常に勉強になります。
先ほど当該サーバのカーネルバージョンを確認しました。 2.4.20-9smp なお LD_ASSUME_KERNEL に設定する値ですが、ちょっと調べてみましたところ、 export LD_ASSUME_KERNEL=2.4.19 などと指定すれば LinuxThread にて動作するようですが妥当なバージョンなのでしょうか? あと、この変更を加えた際のリスクが気になるところです。 (サービスが動作しなくなる、アプリケーションが動作しなくなるなど) 「ちょっとやってみるか」というレベルで安易に変更するのはまずいですよね? | ||||||||||||||||
|
投稿日時: 2007-01-12 12:20
保険のためアップデートしましたが、問題は解決されませんでした... 本日再発。 以下スレッドダンプです。 ----- Full thread dump Java HotSpot(TM) Server VM (1.4.2_13-b06 mixed mode): "TP-Processor256" daemon prio=1 tid=0x08449e38 nid=0x1925 waiting on condition [0x75a14000..0x75a15414] <- 気になる at xxx.xxx.xxxxx.online.business.isd.dao.ISDSubDAO.findByPrimaryKey(ISDSubDAO.java:93) at xxx.xxx.xxxxx.online.business.isd.control.ISDSubControl.getISDSub(ISDSubControl.java:91) at xxx.xxx.xxxxx.online.business.ieh.control.IEHDetailControl.createIEHDetailValue(IEHDetailControl.java:689) at xxx.xxx.xxxxx.online.business.ieh.control.IEHDetailControl.judgeResult(IEHDetailControl.java:421) at xxx.xxx.xxxxx.online.presentation.facade.ieh.ItemInspectionFacade.judgeResult(ItemInspectionFacade.java:56) at xxx.xxx.xxxxx.online.presentation.web.xxxxx.inspection.enforcement.daily.JudgeInputValueAction.execute(JudgeInputValueAction.java:145) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at xxx.xxx.xxxxx.online.presentation.web.filter.MultipartFilter.doFilter(MultipartFilter.java:49) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at xxx.xxx.xxxxx.online.presentation.web.filter.AuthFilter.doFilter(AuthFilter.java:156) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at xxx.xxx.xxxxx.online.presentation.web.filter.ExceptionHandlingFilter.doFilter(ExceptionHandlingFilter.java:62) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at xxx.xxx.xxxxx.online.presentation.web.filter.CounterManagingFilter.doFilter(CounterManagingFilter.java:49) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at xxx.xxx.xxxxx.online.presentation.web.filter.CharactorEncodingFilter.doFilter(CharactorEncodingFilter.java:57) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675) at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:534) "TP-Processor255" daemon prio=1 tid=0x08449278 nid=0x1924 waiting for monitor entry [0x75995000..0x75995494] at org.apache.tomcat.util.threads.ThreadPool.returnController(ThreadPool.java:439) - waiting to lock <0x57140020> (a org.apache.tomcat.util.threads.ThreadPool) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:710) at java.lang.Thread.run(Thread.java:534) "TP-Processor254" daemon prio=1 tid=0x084486b8 nid=0x1923 waiting on condition [0x75914000..0x75915514] at xxx.xxx.xxxxx.online.business.isd.dao.ISDSubDAO.findByPrimaryKey(ISDSubDAO.java:93) at xxx.xxx.xxxxx.online.business.isd.control.ISDSubControl.getISDSub(ISDSubControl.java:91) at xxx.xxx.xxxxx.online.business.ieh.control.IEHDetailControl.createIEHDetailValue(IEHDetailControl.java:689) at xxx.xxx.xxxxx.online.business.ieh.control.IEHDetailControl.judgeResult(IEHDetailControl.java:421) at xxx.xxx.xxxxx.online.presentation.facade.ieh.ItemInspectionFacade.judgeResult(ItemInspectionFacade.java:56) at xxx.xxx.xxxxx.online.presentation.web.xxxxx.inspection.enforcement.daily.JudgeInputValueAction.execute(JudgeInputValueAction.java:145) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at xxx.xxx.xxxxx.online.presentation.web.filter.MultipartFilter.doFilter(MultipartFilter.java:49) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at xxx.xxx.xxxxx.online.presentation.web.filter.AuthFilter.doFilter(AuthFilter.java:156) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at xxx.xxx.xxxxx.online.presentation.web.filter.ExceptionHandlingFilter.doFilter(ExceptionHandlingFilter.java:62) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at xxx.xxx.xxxxx.online.presentation.web.filter.CounterManagingFilter.doFilter(CounterManagingFilter.java:49) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at xxx.xxx.xxxxx.online.presentation.web.filter.CharactorEncodingFilter.doFilter(CharactorEncodingFilter.java:57) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675) at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:534) ほぼ同様のため中略 "TP-Monitor" daemon prio=1 tid=0x6b4398f0 nid=0x443 waiting for monitor entry [0x6d07f000..0x6d07f294] at org.apache.tomcat.util.threads.ThreadPool.checkSpareControllers(ThreadPool.java:413) - waiting to lock <0x57140020> (a org.apache.tomcat.util.threads.ThreadPool) at org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable.run(ThreadPool.java:569) at java.lang.Thread.run(Thread.java:534) "TP-Processor4" daemon prio=1 tid=0x6b439788 nid=0x442 waiting on condition [0x6cffe000..0x6cfff314] <- 気になる at java.text.SimpleDateFormat.subFormat(SimpleDateFormat.java:1030) at java.text.SimpleDateFormat.format(SimpleDateFormat.java:803) at java.text.SimpleDateFormat.format(SimpleDateFormat.java:775) at java.text.DateFormat.format(DateFormat.java:274) at java.text.Format.format(Format.java:133) at java.text.MessageFormat.subformat(MessageFormat.java:1272) at java.text.MessageFormat.format(MessageFormat.java:784) at java.util.logging.SimpleFormatter.format(SimpleFormatter.java:50) - locked <0x56bdec30> (a java.util.logging.SimpleFormatter) at java.util.logging.StreamHandler.publish(StreamHandler.java:178) - locked <0x56b8cb90> (a java.util.logging.ConsoleHandler) at java.util.logging.ConsoleHandler.publish(ConsoleHandler.java:87) at java.util.logging.Logger.log(Logger.java:424) at java.util.logging.Logger.doLog(Logger.java:446) at java.util.logging.Logger.logp(Logger.java:562) at org.apache.commons.logging.impl.Jdk14Logger.log(Jdk14Logger.java:91) at org.apache.commons.logging.impl.Jdk14Logger.error(Jdk14Logger.java:119) at org.apache.tomcat.util.threads.ThreadPool.logFull(ThreadPool.java:371) at org.apache.tomcat.util.threads.ThreadPool.findControlRunnable(ThreadPool.java:330) - locked <0x57140020> (a org.apache.tomcat.util.threads.ThreadPool) at org.apache.tomcat.util.threads.ThreadPool.runIt(ThreadPool.java:308) at org.apache.jk.common.ChannelSocket.acceptConnections(ChannelSocket.java:646) at org.apache.jk.common.SocketAcceptor.runIt(ChannelSocket.java:847) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:534) "http-8080-Monitor" prio=1 tid=0x6b7e7de8 nid=0x42f in Object.wait() [0x6cdff000..0x6cdff514] at java.lang.Object.wait(Native Method) - waiting on <0x56af0750> (a org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable) at org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable.run(ThreadPool.java:559) - locked <0x56af0750> (a org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable) at java.lang.Thread.run(Thread.java:534) "http-8080-Processor25" daemon prio=1 tid=0x6b7e7298 nid=0x42e runnable [0x6cd7f000..0x6cd7f594] at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353) - locked <0x56af07d8> (a java.net.PlainSocketImpl) at java.net.ServerSocket.implAccept(ServerSocket.java:448) at java.net.ServerSocket.accept(ServerSocket.java:419) at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:60) at org.apache.tomcat.util.net.PoolTcpEndpoint.acceptSocket(PoolTcpEndpoint.java:368) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:549) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683) at java.lang.Thread.run(Thread.java:534) "http-8080-Processor24" daemon prio=1 tid=0x6b7e6748 nid=0x42d in Object.wait() [0x6ccff000..0x6ccff614] at java.lang.Object.wait(Native Method) - waiting on <0x56af0940> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable) at java.lang.Object.wait(Object.java:429) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:655) - locked <0x56af0940> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable) at java.lang.Thread.run(Thread.java:534) ほぼ同様のため中略 "ContainerBackgroundProcessor[StandardEngine[Catalina]]" daemon prio=1 tid=0x6bbecc08 nid=0x412 waiting on condition [0x6b69b000..0x6b69b214] at java.lang.Thread.sleep(Native Method) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1597) at java.lang.Thread.run(Thread.java:534) "Signal Dispatcher" daemon prio=1 tid=0x080c8460 nid=0x336 waiting on condition [0x00000000..0x00000000] "Finalizer" daemon prio=1 tid=0x080c4158 nid=0x31f in Object.wait() [0x4135b000..0x4135b594] at java.lang.Object.wait(Native Method) - waiting on <0x56af16a0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111) - locked <0x56af16a0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=1 tid=0x080c3db8 nid=0x31e in Object.wait() [0x412db000..0x412db614] at java.lang.Object.wait(Native Method) - waiting on <0x56af0060> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:429) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115) - locked <0x56af0060> (a java.lang.ref.Reference$Lock) "main" prio=1 tid=0x08057e20 nid=0x30a runnable [0xbfffb000..0xbfffc0f8] at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353) - locked <0x571405c0> (a java.net.PlainSocketImpl) at java.net.ServerSocket.implAccept(ServerSocket.java:448) at java.net.ServerSocket.accept(ServerSocket.java:419) at org.apache.catalina.core.StandardServer.await(StandardServer.java:513) at org.apache.catalina.startup.Catalina.await(Catalina.java:619) at org.apache.catalina.startup.Catalina.start(Catalina.java:579) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425) "VM Thread" prio=1 tid=0x080c3360 nid=0x31d runnable "VM Periodic Task Thread" prio=1 tid=0x080cc948 nid=0x33a waiting on condition "Suspend Checker Thread" prio=1 tid=0x080c7ad0 nid=0x335 runnable ----- なお、ISDSubDAO.java の 93 行目には次のようなプログラムが書かれています。 ResultSet より値を取得し、Object を生成しているだけなのですが... return value = new XXXValue( new XXXPKValue( rs.getString(i++), rs.getString(i++), rs.getInt(i++), rs.getString(i++)), rs.getString(i++), rs.getInt(i++), rs.getString(i++), rs.getString(i++), rs.getInt(i++), rs.getTimestamp(i++), rs.getTimestamp(i++)); この部分にてほぼすべてのスレッドが止まっているような気がします。
こちらもまだ怖くて、試せてません。 [ メッセージ編集済み 編集者: ひじき 編集日時 2007-01-12 12:21 ] | ||||||||||||||||
|
投稿日時: 2007-01-12 13:39
以前の org.apache.struts.action.Action.isTokenValid で止まっているスレッドはないということでしょうか?
また、今回はスレッドダンプは複数回取得されましたか? 一回取っただけでは固まっているのか動いているのかどうかも確認できません。 「気になる 」とありますが、どういった理由で気になるのでしょうか? あと、繰り返しになりますがスレッド数を減らした方が良いかと。 VM の問題も疑われますので、VM 自体を JRockit 等別の実装に変えてみるのもよいかもしれませんね。 http://commerce.bea.com/products/weblogicjrockit/jrockit_prod_fam.jsp [ メッセージ編集済み 編集者: インギ 編集日時 2007-01-12 13:44 ] | ||||||||||||||||
|
投稿日時: 2007-01-12 13:56
ご回答ありがとうございます。
isTokenValid 部分(2重押し防止処理)を暫定的にはずしてみたところ、 今度は上記部分にて発生した次第です。 あしゅさんの言うように Native Thread側に問題があるかもしれません。
4回ほど取得しましたが、状態はすべて同様でした。
xxx.xxx.xxxxx.online.business.isd.dao.ISDSubDAO.findByPrimaryKey(ISDSubDAO.java:93) 同じ部分で9割以上のスレッドが waiting on condition となっておりましたので ここに何かしらの原因があるのではないかというレベルです。 java.text.SimpleDateFormat.subFormat(SimpleDateFormat.java:1030) については初めて出てきたクラスなのでこれまでの問題と関係があるのではないかと思った次第です。 「気になる」にあまり根拠はないですね。すみません。
御指摘ありがとうございます。 何かのタイミングにて 100 くらいに落とすように致します。 | ||||||||||||||||
|
投稿日時: 2007-01-12 14:20
なるほど。
>「気になる」にあまり根拠はないですね。すみません。 いえいえ、何度取っても同じ箇所で止まっているのであれば確かに気になりますね。 ただ、止まっている箇所が様々なのでコーディングレベルの問題ではなさそうですね。 やはり VM とかスレッド周りの問題ではないでしょうか。 VM のネイティブコードの最適化の問題であれば Sun の VM の場合、Client と Server のオプションを切り換えることでとりあえず回避出来ることもあります。 そういえば再現テストをするとのことでしたが、テスト環境では再現できなかったのでしょうか? [ メッセージ編集済み 編集者: インギ 編集日時 2007-01-12 14:28 ] | ||||||||||||||||
|
投稿日時: 2007-01-12 14:32
勉強になります。試してみます。 現時点の起動オプションとして以下を指定しておりますので export CATALINA_OPTS="-server -Xms512m -Xmx512m -XX:NewRatio=1 -XX:SurvivorRatio=1 -verbose:gc -XX:+PrintGCTimeStamps -Xloggc:/var/log/xxx/gc.log" を次に変えてみます。 export CATALINA_OPTS="-Xms512m -Xmx512m -XX:NewRatio=1 -XX:SurvivorRatio=1 -verbose:gc -XX:+PrintGCTimeStamps -Xloggc:/var/log/xxx/gc.log"
本番環境と同一の開発環境を構築するのはちょっと難しいですが 極力試す方向で考えます。 |