web-dev-qa-db-ja.com

JBoss5の遅い起動の改善

JBoss 4(およびJDK 5)からJBoss 5(およびJDK 6)にアップグレードしました。問題は、開始時間が1.5分(JBoss 4の場合)から4分以上になったことです。

18:53:35,444 INFO  [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221053)] Started in 3m:9s:262ms

JBossの初期化に最も時間がかかるコンポーネントはJMXのようです

18:50:41,926 INFO  [LogNotificationListener] Adding notification listener for logging mbean "jboss.system:service=Logging,type=Log4jService" to server org.jboss.mx.server.MBeanServerImpl@1adc122[ defaultDomain='jboss' ]
18:52:38,797 INFO  [JMXConnectorServerService] JMX Connector server: service:jmx:rmi://lharel2/jndi/rmi://lharel2:1090/jmxconnector

DEBUGサーバーログから、問題のあるときに次の行を取得します。

2009-12-18 18:51:00,886 DEBUG [org.jboss.deployment.MappedReferenceMetaDataResolverDeployer] (main) vfsfile:/C:/QC/Views/QCDev/jboss-5.1.0.GA/server/default/deploy/jmx-console.war/ endpoint mappings:
2009-12-18 18:51:00,886 DEBUG [org.jboss.deployment.MappedReferenceMetaDataResolverDeployer] (main) Processing unit=jmx-console.war, structure: jmx-console.war
2009-12-18 18:52:35,209 DEBUG [org.jboss.deployment.OptAnnotationMetaDataDeployer] (main) Deployment is metadata-complete, skipping annotation processing, ejbJarMetaData=null, jbossWebMetaData=org.jboss.metadata.web.spec.Web23MetaData@1f, jbossClientMetaData=null, metaDataCompleteIsDefault=false

プロジェクトにEJBはありません。

メモリ設定は次のとおりです。

 -Xms128m -Xmx512m -XX:MaxPermSize=256m

JBossの開始時間をどのように改善できるか考えていますか?

更新:これまでのところ運が悪かったので、shreeniの提案を試しました(スキャンxmlを変更しました)。サーバーはデバッグモードで実行されていないため、MicSimの提案は関係ありません

20
LiorH

詳細情報なしで青い空へのショット

  • ネットワークタイムアウト: jmx-console.warをデプロイするときの1.5分の遅延は、ネットワークタイムアウト(3 x 30秒など)を示している可能性があります。 JBossを起動し、-bコマンドライン引数またはjboss.bind.addressシステムプロパティを使用して特定のIPアドレスにバインドしてみてください。また、システムのホストとDNSの解像度設定が正しいことを確認してください。

  • JMXもRMIを使用しているため、RMIサーバーのホスト名をシステムプロパティとしてに設定することをお勧めします。一部のLinuxディストリビューションでは、RMIで正しいホスト名の検索に問題があり、jmx-console.warが「間違ったローカルホスト」に接続しようとする場合があります。システムプロパティはJava.rmi.server.hostnameです。

  • システムトレース:それでも問題が解決しない場合は、straceを使用してJavaプロセスを開始すると、システムがハングします(ネットワークタイムアウトなどが原因で実際​​にハングする場合)。

8
mhaller

それはログの非常に大きなギャップです。ログ構成を変更して、INFOではなくDEBUGレベルですべてをログに記録することをお勧めします。これにより、非常に多くのログエントリが生成されますが、うまくいけば、それを絞り込むのに役立ちます。

これを行う最も簡単な方法は、JBossの起動時に-Djboss.server.log.threshold=DEBUGシステムプロパティを設定することです。

4
skaffman

Jmx-consoleに関する疑惑は誤解を招く可能性があります。 jmx-consoleとは関係のないバックグラウンドで作業を行っている他のコンポーネントが存在する可能性があります。私の経験では、小さなwarファイルのロードに3分かかるという問題がありました。それは無実でした。犯人の原因の一部は、多くの戦争と瓶が含まれているEARファイルでした。

私は専門家ではありませんが、次のことをお勧めします。

  1. ロギングをTRACEに上げてみてください。これを行うことで、デプロイヤーの1つ(EJBDeployer、私は思う)がEARの1つでWARを不必要にスキャンしているのを目撃しました。次に、これらのWARファイルのスキャンを手動で無効にしました。
  2. 起動時にwiresharkを実行します。外部DTD要求からの応答を待っている間に、いくつかのwarファイルがハングしていることを発見しました。これらのWebサイトは現在存在しないか、JavaベースのプログラムにDTDファイルを適切に提供しませんでした。プログラマーにローカルDTDファイルを使用させるか、それらのDTDをローカルにミラーリングして、/ etc/Hostループバックをローカルにすることで、速度を上げることができます。
3
curious_george

このような問題が発生しましたが、初期ヒープサイズと最大ヒープサイズを同じ値に設定することで、良い改善が見られました。

 -Xms512m -Xmx512m

これにより、開始時間が4分から2分に短縮されました。

3
Karma police

これを参照して link サーバーの起動を高速化する可能性のある不要な注釈スキャンを回避できます

1
Shreeni

http://community.jboss.org/wiki/jboss5xtuningslimming 特に「チューニング」の部分を参照してください。

1
xmedeko

デバッグモードで開始していると思います。このモードは、通常モードの最大3倍遅くなる可能性があります。ただし、JDK5からJDK6に切り替えるときにも問題が発生する可能性があります。私はこの解決策を見つけました ここ ネット上:

私はそれを解決しました。これはデバッグの問題です。デバッグ設定を次のように変更しました:

wrapper.Java.additional.26=-Xdebug
wrapper.Java.additional.27=-Xnoagent
wrapper.Java.additional.28=-Djava.compiler=NONE
wrapper.Java.additional.27=-Xrunjdwp:transport=dt_socket,address=7199,server=y,suspend=n

に:

wrapper.Java.additional.26=-Xdebug
wrapper.Java.additional.27=-Xrunjdwp:transport=dt_socket,address=7199,server=y,suspend=n

そしてJBossは再び高速になります。

お役に立てれば。

0
MicSim

JMXコンソールアプリケーションが必要ですか?実用的なことは、サーバーからそれをアンデプロイすることですが、基本的に同じことのためにjconsoleまたはjvisualvmを使用することもできます。

0
Zoran Regvart

Macbook pro(2.26ghz 4gb)でJBoss 5.1.0を使用していますが、アプリケーションは54秒で起動しません

15:00:26,449 INFO  [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)] Started in 54s:720ms

「デフォルト」に基づいて新しい構成を作成しました。 JMSデータベースは、「Hypersonicデータベース」(メモリデータベース内)ではなく、Postgresデータベースを指します。

0
Dani Cricco
  1. アノテーションスキャンやその他の不要な機能をオフにします https://community.jboss.org/wiki/jboss5xtuningslimming

  2. EclipseからJBossを起動/停止すると、tmpおよびworkフォルダーが正しくクリーンアップされません。外部ツール構成をセットアップし、バッチファイルを実行して、起動する前にtmpフォルダーとworkフォルダー内のすべてを削除します。

「デフォルト」プロファイルの実行を15/20分から5分に高速化することができました。

0
Babu