在部署我的Web应用程序期间,由于部署失败(由于超时),延迟/暂停超过2分钟
以下行是打印的最后一行,之后需要相当长的时间才能打印下一个日志。
WFLYSRV0049: WildFly FUll 9.0.2.Final (WildFly Core 1.0.2.Final) starting
据我所知,通过增加超时,我可以避免超时异常但是,有没有办法可以减少应用程序部署所需的时间?
此外,可能是造成这种延迟的原因是什么?
答案 0 :(得分:1)
首先,我建议将超时更改为更高的值。如果我们谈论的应用程序即使在SSD光盘上也只有几百MB(它也强烈依赖于计算机硬件),2分钟并不多。您可以在代码中的server element中添加standalone.xml(或domain.xml):
<system-properties>
<property name="jboss.as.management.blocking.timeout" value="900"/>
</system-properties>
将超时设置为15分钟。
日志中的大洞也表示日志记录无法正常工作(除非您设置了ERROR级别或类似的内容)。
要加快部署时间,您可以执行以下操作:
在C分区上安装wildfly。在磁盘上,由于这一点,您可以获得较大的性能改进(最快的磁盘扇区首先分配给分区)。在我的计算机上,C分区上的IO操作比上一个分区快大约2倍。我不知道你是否在SSD光盘上获得了性能提升。我建议为IO操作运行一个基准。
将带有wildfly安装的文件夹添加到防病毒软件中的排除项。
在standalone.xml(或domain.xml)中禁用不需要的子系统。 Wildfly默认启用了很多子系统。你可能并不需要它们。您可以在以下网址阅读有关子系统的信息:https://docs.jboss.org/author/display/WFLY9/Subsystem+configuration
减小安装尺寸。您可以通过减少第三方库的数量来轻松实现这一目标。如果部署应用程序并转到独立的\ tmp \ vfs \ deployment,则可以看到已部署库的每个实例。如果您在应用程序中有5个guava 18.0库(因为您有许多独立模块),它们将被部署5次。您可以将一些第三方库放到modules \ system \ layers \ base中,并使用jboss-deployment-structure或global modules将这些库附加到战争和耳朵中。如果你把战争打包在耳边,你也可以把一些图书馆从战争中掏空。 wildfly还在模块中提供了一些标准库。我建议查看这些库。可能有一些是你使用的,你可以从野外蝇中获取它们。
获得更好的硬件,在SSD光盘上,wildfly的部署速度要快几倍。还要注意RAM的使用情况,如果你没有足够的RAM,操作系统会在RAM和光盘之间交换内存,显着减慢部署速度。