改进 JBoss 5 慢速启动

2022-09-02 10:25:48

我们从 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的建议(更改了扫描xmls)。服务器未在调试模式下运行,因此 MicSim 的建议不相关


答案 1

在没有更多信息的情况下拍摄蓝天

  • 网络超时:部署 jmx-console.war 时延迟 1.5 分钟可能表示网络超时(例如 3 x 30 秒)。尝试启动 JBoss 并使用命令行参数或系统属性将其绑定到特定的 IP 地址。此外,请尝试确保系统上的主机和 DNS 解析设置正确无误。-bjboss.bind.address

  • JMX 也使用 RMI,您可能希望将 RMI 服务器主机名设置为系统属性。在某些Linux发行版上,RMI在查找正确的主机名时存在问题,jmx-console.war可能会尝试连接到“错误的本地主机”。系统属性为java.rmi.server.hostname

  • 系统跟踪:如果这没有帮助,您可能希望使用 来启动java进程,这样您就可以看到系统挂起的点(如果它确实由于网络超时或类似原因而挂起)。strace


答案 2

这在日志中是一个非常大的差距。我建议更改日志配置以在调试级别记录所有内容,而不是INFO。这将生成更多的日志条目,但希望能帮助您缩小范围。

执行此操作的最简单方法是在启动 JBoss 时设置系统属性。-Djboss.server.log.threshold=DEBUG


推荐