【问题标题】:Glassfish/Payara: why might deployment of a large web app to Glassfish-4.1.1 (or Payara Server 4.1.1.163) take 5 times longer than to Glassfish-4.1Glassfish/Payara:为什么将大型 Web 应用程序部署到 Glassfish-4.1.1(或 Payara Server 4.1.1.163)所需的时间是 Glassfish-4.1 的 5 倍
【发布时间】:2016-06-11 09:47:11
【问题描述】:
Mac OS X: Yosemite 10.10.5

直到最近我一直在使用:

NetBeans8.1beta
Glassfish4.1
Mojarra 2.2.7

我最近使用以下方法进行了调查:

NetBeans8.1
Glassfish4.1.1
Mojarra 2.2.12.

对于一个非常大的 JSF Web 应用程序(使用 ObjectDB 作为 JPA 持久性提供程序),我体验到 Glassfish4.1.1 的部署时间(超过 10 分钟)比 Glassfish4.1 的部署时间(大约 2 分钟)要长得多。这大约慢了 5 倍。

[编辑:2016-09-13 尝试使用 Payara 163 Full(Payara Server 4.1.1.163),耗时 20 多分钟,甚至比 Glassfish4.1.1 慢,设置几乎相同]

我不可能在这里重现或提供大型网络应用程序的示例。

Q1:有没有人经历过 Glassfish-4.1 和 Glassfish-4.1.1 之间的任何类似差异[编辑:OR Payara Server 4.1.1.163],我可以在哪里寻找不同点?

(我已经在尝试使用 NetBeans Profiler 进行调查,但结果并不是那么容易找到原因。)


[编辑:2016-09-15 计时测试]

我已经使用截屏录像进行了仔细的并排比较,并与日志中的时间进行了比较。

在 Payara41 (4.1.1.163) 和 Glassfish4.1.1 中,它“卡住”了大约 10 分钟,如下所示,我还没有找到任何日志设置在出现问题的地方给出单行输出,并且正在运行处于调试模式的服务器似乎也没有提供任何其他信息。

[2016-09-14T23:02:53.450+1000] [Payara 4.1] [INFO] [NCLS-LOGGING-00009] [javax.enterprise.logging] [tid: _ThreadID=19 _ThreadName=RunLevelControllerThread-1473858173343] [timeMillis: 1473858173450] [levelValue: 800] [[
  Running Payara Version: Payara Server  4.1.1.163 #badassfish (build 215)]]

...通过所有步骤,然后通过几十个这样的 EJB JNDI 名称声明运行正常:

[2016-09-14T23:03:48.823+1000] [Payara 4.1] [INFO] [AS-EJB-00054] [javax.enterprise.ejb.container] [tid: _ThreadID=74 _ThreadName=admin-thread-pool(2)] [timeMillis: 1473858228823] [levelValue: 800] [[
  Portable JNDI names for EJB BeanName: [java:global/app-name/BeanName!com.example.BeanName, java:global/app-name/BeanName]]]

给出这个 WELD 版本信息:

[2016-09-14T23:03:48.875+1000] [Payara 4.1] [INFO] [] [org.jboss.weld.Version] [tid: _ThreadID=74 _ThreadName=admin-thread-pool(2)] [timeMillis: 1473858228875] [levelValue: 800] [[
  WELD-000900: 2.3.5 (Final)]]

...然后在此消息之前大约需要 8 秒..

[2016-09-14T23:03:56.666+1000] [Payara 4.1] [INFO] [] [org.jboss.weld.Event] [tid: _ThreadID=74 _ThreadName=admin-thread-pool(2)] [timeMillis: 1473858236666] [levelValue: 800] [[
WELD-000411: Observer method [BackedAnnotatedMethod] private org.glassfish.jersey.ext.cdi1x.internal.CdiComponentProvider.processAnnotatedType(@Observes ProcessAnnotatedType) receives events for all annotated types. Consider restricting events using @WithAnnotations or a generic type with bounds.]]

...然后花 几分钟(通常大约 10 分钟),然后再恢复这些原本无害的警告..

[2016-09-14T23:11:33.387+1000] [Payara 4.1] [INFO] [] [org.jboss.weld.Bootstrap] [tid: _ThreadID=74 _ThreadName=admin-thread-pool(2)] [timeMillis: 1473858693387] [levelValue: 800] [[
WELD-001125: Illegal bean type java.util.Comparator<javax.persistence.metamodel.EntityType<?>> ignored on [EnhancedAnnotatedTypeImpl] public static  class com.example.ElementManager$EntityTypeSorter]]

[2016-09-14T23:11:59.736+1000] [Payara 4.1] [WARNING] [] [org.glassfish.jersey.internal.Errors] [tid: _ThreadID=74 _ThreadName=admin-thread-pool(2)] [timeMillis: 1473858719736] [levelValue: 900] [[
The following warnings have been detected: WARNING: Parameter 1 of type T from public void com.example.NumberProperty.setDefaultValue(T) is not resolvable to a concrete type.

]]

Glassfish4.1 日志中出现类似的警告消息,但没有长时间的暂停/暂停。

Q2:我还能做些什么来找出为什么它会在那里暂停/停滞很久?

【问题讨论】:

  • 尝试将服务器的日志记录设置为先调试并检查/比较时间
  • 我在您问题的“日志记录/计时”信息中没有看到任何与 JSF 相关的内容。
  • @Kukeltje 在最近的时间诊断(现在包括在问题中)显示它“卡住”或“停止”JSF 确实可能不相关时,我将删除 JSF 标记。

标签: glassfish-4.1 objectdb payara glassfish-4.1.1


【解决方案1】:

感谢详细帮助from the Payara team我有答案了。

我的旧 Glassfish4.1 安装 (-Xmx2048m) 与新 Glassfish4.1.1 和 Payara41 安装 (-Xmx512m) 之间的最大堆设置不同。在启动时构建我的 Web 应用项目的数据库模型时,它达到了 512m 的堆限制并导致过多的垃圾收集(正如 JVisualVM 所揭示的那样),这大大减慢了部署速度。

我已经将这些作为 NetBeans Web 应用程序项目的运行时 VMargs:

-Xms2048m -Xmx2048m

但是在安装 NetBeans8.1(使用 Glassfish4.1.1)和 Payara41 时,我忽略了在新服务器上也匹配它以为它腾出空间。随着最大堆的增加和固定的最小值,Glassfish4.1.1 和 Payara41 上的部署时间现在约为 2 分钟。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 2021-05-20
    相关资源
    最近更新 更多