[英]Improving JBoss 5 slow startup
我們從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
從調試服務器日志中,我在有問題的時間得到了以下幾行:
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秒)。 嘗試使用-b
命令行參數或jboss.bind.address
系統屬性來啟動JBoss並將其綁定到特定的IP地址。 另外,請嘗試確保系統上的主機和DNS解析設置正確。
JMX也使用RMI,您可能需要將RMI服務器主機名設置為系統屬性 。 在某些Linux發行版中,RMI在查找正確的主機名和jmx-console時遇到問題。war可能會嘗試連接到“錯誤的本地主機”。 系統屬性是java.rmi.server.hostname
系統跟蹤:如果這樣做沒有幫助,則可能要使用strace
來啟動Java進程,以便可以看到系統掛起的點(如果由於網絡超時或類似原因而確實掛起)。
這是日志中的巨大差距。 我建議更改日志配置以在DEBUG級別而不是INFO記錄所有內容。 這將產生更多的日志條目,但是希望可以幫助您縮小范圍。
最簡單的方法是在啟動JBoss時設置-Djboss.server.log.threshold=DEBUG
系統屬性。
您對jmx控制台的懷疑可能會引起誤解。 可能還有其他組件在后台執行與jmx-console不相關的工作。 以我的經驗,我們遇到一個問題,一個小的戰爭文件似乎需要3分鍾才能加載! 這是無辜的。 罪魁禍首部分是由於EAR文件中有許多戰爭和罐子。
雖然我不是專家,但我建議以下幾點:
我遇到了這樣的問題,但是通過將初始堆大小和最大堆大小設置為相同的值,我發現了一個很好的改進,我的意思是:
-Xms512m -Xmx512m
這樣,我將啟動時間從4分鍾縮短到2分鍾。
您可以參考此鏈接,以避免不必要的注釋掃描,否則可能會加速服務器啟動
請參閱http://community.jboss.org/wiki/jboss5xtuningslimming,尤其是“ Tuning”部分。
關閉不需要的注釋掃描和其他功能https://community.jboss.org/wiki/jboss5xtuningslimming
當您從Eclipse啟動/停止JBoss時,它無法正確清理tmp和work文件夾。 設置外部工具配置並運行批處理文件,以在每次啟動之前刪除tmp和工作文件夾中的所有內容。
我能夠將“默認”配置文件的運行時間從15/20分鍾加速到5分鍾。
我正在將JBoss 5.1.0與Macbook pro(2.26ghz 4gb)結合使用,而沒有在54s開始的應用程序
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數據源指向一個Postgres數據庫,而不是“ Hypersonic數據庫”(在內存數據庫中)
我想您是從調試模式開始的。 此模式可能比普通模式慢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用於基本上相同的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.