- - PR -
Tomcatのバーチャルホスト最大数について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-12-08 23:07
現在、Webサーバーの構築を行ってる所なんですが、TomcatのServer.xmlにバーチャルホスト<Host name="***** >を約70個以上定義すると、Tomcat起動後に下記のようなエラーでダウンしてしまいます。
(ちなみにTopコマンドで確認できたプロセス数は740程度までです。) 察するに、メモリ不足で新しいスレッドが生成できない、と言っているようですが、解決の目処が立っていません。 catalina.shでJavaに割り当てるメモリサイズの調節も行ったんですけど、効果なしでした。 (JAVA_OPTS="-server -Xnoclassgc -Xmx1024M -Xms1024M -Xss128K"についてはパラメータ値を調整) 同じような状況・問題が発生したようなことがあれば、ヒントをご教授願います。 もしくはTomcatで利用できるバーチャルホストに上限があるのでしょうか? ちなみにサーバー環境は DELLPowerEdge1750 - Xeon 3.0GHz - メモリ:3GB - HD:140GB(RAID1) TurboLinux8+Apache_1.3.26+ssl_1.48+Tomcat4.0.4+PostgreSQL 7.2.1+j2sdk 1.4.0_01の構成です。 ↓以下、Tomcatのcatalicna.outより ******************************************************************************* サービス Tomcat-Standalone を起動します Apache Tomcat/4.1.27 Exception during startup processing java.lang.reflect.InvocationTargetException 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.main(Bootstrap.java:203) Caused by: java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start(Native Method) at org.apache.catalina.startup.HostConfig.threadStart(HostConfig.java88) at org.apache.catalina.startup.HostConfig.start(HostConfig.java22) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:358) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196) at org.apache.catalina.core.StandardHost.start(StandardHost.java38) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347) at org.apache.catalina.core.StandardService.start(StandardService.java:497) at org.apache.catalina.core.StandardServer.start(StandardServer.java:2190) at org.apache.catalina.startup.Catalina.start(Catalina.java:512) at org.apache.catalina.startup.Catalina.execute(Catalina.java:400) at org.apache.catalina.startup.Catalina.process(Catalina.java:180) ... 5 more Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread at java.lang.Thread.start(Native Method) at java.lang.Shutdown.runHooks(Shutdown.java:126) at java.lang.Shutdown.sequence(Shutdown.java:165) at java.lang.Shutdown.exit(Shutdown.java:210) at java.lang.Runtime.exit(Runtime.java0) at java.lang.System.exit(System.java13) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:208) ↑以上エラーログ ******************************************************************************* TurboLinuxなのか、Tomcatなのか、JavaVMなのか、関連性の有無そのものが確認できていない状態ですので、こちらに投稿させていただきました。 以上、よろしくお願いいたします。 |
|
投稿日時: 2005-12-09 00:27
BEAのサポートパターンが参考になるかと。
・BEA トラブルシューティング ガイド サポートパターン > メモリ不足とメモリ リークに関する問題の調査 http://www.beasys.co.jp/cs/support_news/product_troubleshooting/Investigating_Out_of_Memory_Memory_Leak_Pattern.html |
|
投稿日時: 2005-12-12 19:49
ご回答ありがとうございます。
週に一度のみ本件に関する作業を行っておりますので、ご返答が遅くなってしまいました。すみません。 JVMがヒープを使い切らないうちにダウンする状態でした。 断片化のような気がしますので、JVMベンダへ問い合わせてみます。 質問では70程度の仮想ホストとしておりましたが、実際には、仮想ホストを1サーバ上に100立てる必要があります。やはり無理なのでしょうか・・・ ※ちなみに70ホストまでは、Tomcatのcatalina.shのJAVA_OPTSのXmx/Xmsサイズを256〜384MB程度にしてやれば稼動しました。やっぱりJVMのメモリの問題でしょうか・・・ 以上です。 |
|
投稿日時: 2005-12-12 20:04
j2sdk 1.4.0_01 はもうサポート終了していませんか?
まず最新版にアップデートして検証してはいかがでしょう。 |
|
投稿日時: 2005-12-12 22:40
>j2sdk 1.4.0_01 はもうサポート終了していませんか?
>まず最新版にアップデートして検証してはいかがでしょう。 Javaのバージョンアップに伴ってアプリケーションに影響がないか が気になってやらなかったのですが、今のままでは稼動すらしないので 早速1.4.2_10へバージョンアップしてみました。 結果としては同じ結果(Tomcatが起動中にダウン・エラー内容も同じ)になりました。 とりあえず、JAVA_OPTSに-verbosegc.txtを追記して実行したところ下記の内容のエラーが出力されました。やはりヒープを使い切る前に停止しているような気がします・・・ 以下、ログ サービス Tomcat-Standalone を起動します Apache Tomcat/4.1.27 [GC 104959K->8627K(511232K), 0.0746540 secs] [GC 113584K->14886K(511232K), 0.0958990 secs] [GC 119846K->21188K(511232K), 0.0816130 secs] [GC 126148K->27636K(511232K), 0.0739930 secs] [GC 132589K->33821K(511232K), 0.1106710 secs] [GC 138781K->40082K(511232K), 0.0671800 secs] [GC 145042K->46589K(511232K), 0.1048850 secs] [GC 151549K->52864K(511232K), 0.1114050 secs] [GC 157824K->59047K(511232K), 0.0667390 secs] [GC 164007K->65423K(511232K), 0.0997580 secs] [GC 170383K->71759K(511232K), 0.1014560 secs] [GC 176719K->78180K(511232K), 0.1022860 secs] [GC 183140K->83785K(511232K), 0.0960530 secs] [GC 188745K->89425K(511232K), 0.0954980 secs] [GC 194385K->94919K(511232K), 0.0892450 secs] [GC 199879K->100484K(511232K), 0.0898070 secs] [GC 205444K->106200K(511232K), 0.0911200 secs] [GC 211160K->111695K(511232K), 0.0901730 secs] [GC 216655K->117241K(511232K), 0.0906580 secs] [GC 222201K->122954K(511232K), 0.0901690 secs] [GC 227914K->128450K(511232K), 0.0900020 secs] [GC 233410K->133927K(511232K), 0.0903430 secs] [GC 238887K->139726K(511232K), 0.0908060 secs] [GC 244686K->145214K(511232K), 0.0904010 secs] [GC 250174K->150648K(511232K), 0.0906350 secs] [GC 255608K->156501K(511232K), 0.0934230 secs] [GC 261461K->161986K(511232K), 0.0920270 secs] [GC 266946K->167416K(511232K), 0.0973010 secs] [GC 272376K->173144K(511232K), 0.0950300 secs] [GC 278104K->178750K(511232K), 0.0919360 secs] [GC 283710K->184178K(511232K), 0.0939010 secs] [GC 289138K->190340K(511232K), 0.0958740 secs] [GC 295300K->196503K(511232K), 0.0992850 secs] [GC 301463K->202516K(511232K), 0.1022660 secs] Exception during startup processing ・・・(以下同様) |
|
投稿日時: 2005-12-13 00:17
確かにヒープを使い切っている様子はありませんね。
コンパクション(ヒープフラグメントの解消処理)に関連する問題のように見えます。 JRockit を使ってみてはいかがでしょう。 http://commerce.bea.com/products/weblogicjrockit/1.4.2/142_08.jsp http://commerce.bea.com/products/weblogicjrockit/5.0/jr_50.jsp |
|
投稿日時: 2005-12-13 13:36
JRockitをインストールしてみました。
と言うか、インストールできませんでした。(バイナリの実行中に停止してしまいました。) 現状解決への道のりが長そうなので、仮想ホスト50×2台構成に再構築することにしました。 いろいろとご意見ありがとうございました。(勉強になりました。) 以上 |
1