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の提案は関係ありません
詳細情報なしで青い空へのショット
ネットワークタイムアウト: 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プロセスを開始すると、システムがハングします(ネットワークタイムアウトなどが原因で実際にハングする場合)。
それはログの非常に大きなギャップです。ログ構成を変更して、INFOではなくDEBUGレベルですべてをログに記録することをお勧めします。これにより、非常に多くのログエントリが生成されますが、うまくいけば、それを絞り込むのに役立ちます。
これを行う最も簡単な方法は、JBossの起動時に-Djboss.server.log.threshold=DEBUG
システムプロパティを設定することです。
Jmx-consoleに関する疑惑は誤解を招く可能性があります。 jmx-consoleとは関係のないバックグラウンドで作業を行っている他のコンポーネントが存在する可能性があります。私の経験では、小さなwarファイルのロードに3分かかるという問題がありました。それは無実でした。犯人の原因の一部は、多くの戦争と瓶が含まれているEARファイルでした。
私は専門家ではありませんが、次のことをお勧めします。
このような問題が発生しましたが、初期ヒープサイズと最大ヒープサイズを同じ値に設定することで、良い改善が見られました。
-Xms512m -Xmx512m
これにより、開始時間が4分から2分に短縮されました。
これを参照して link サーバーの起動を高速化する可能性のある不要な注釈スキャンを回避できます
http://community.jboss.org/wiki/jboss5xtuningslimming 特に「チューニング」の部分を参照してください。
デバッグモードで開始していると思います。このモードは、通常モードの最大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は再び高速になります。
お役に立てれば。
JMXコンソールアプリケーションが必要ですか?実用的なことは、サーバーからそれをアンデプロイすることですが、基本的に同じことのためにjconsoleまたはjvisualvmを使用することもできます。
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データベースを指します。
アノテーションスキャンやその他の不要な機能をオフにします https://community.jboss.org/wiki/jboss5xtuningslimming
EclipseからJBossを起動/停止すると、tmpおよびworkフォルダーが正しくクリーンアップされません。外部ツール構成をセットアップし、バッチファイルを実行して、起動する前にtmpフォルダーとworkフォルダー内のすべてを削除します。
「デフォルト」プロファイルの実行を15/20分から5分に高速化することができました。