Tomcat上的Alfresco Community启动非常缓慢。

4
我们目前正在旧服务器上测试Alfresco Community(仅1GB的RAM)。由于这是Community版本,我们每次更改配置(例如尝试添加一些功能,如生成DWG文件的预览)时都需要重新启动它。但是,重新启动需要很长时间(大约4分钟左右)。这可能是由于可用内存量受到限制导致的。有没有人知道一些可以提高此重新启动时间的功能或设置?

请发布您的JVM启动参数。 - Kees de Kooter
Tomcat的默认设置为: JAVA_OPTS="$JAVA_OPTS -Xms512m -Xmx512m -Dcom.sun.management.jmxremote=true -Djava.rmi.server.hostname=192.168.35.121" - Frank Groeneveld
一分钟……我真想拥有那么短的重启时间! - Gareth Davis
我刚刚计时了一下,实际上是4分钟:p 我会更新问题。 - Frank Groeneveld
3个回答

4
与所有性能问题一样,很少有灵丹妙药。 内存压力 - 应用程序正在启动,但512m堆只能刚好容纳应用程序,并且它花费了一半的启动时间运行GC。
查看以下任何一项: 1. -verbose:gc 2. jstat -gcutil 3. jvisualvm - 更好的UI
您要查看花费在GC上的时间量,寻找许多完整的垃圾回收事件,这些事件不能回收堆的大部分,即99% -> 95%。
解决方案 - 更多的堆,确实没有其他办法。
您可能想尝试-XX:+ AggressiveHeap以使JVM在框中使用最大的内存使用率,唯一的问题是只有1GB的内存,它会受到限制。所有JVM选项列表 磁盘IO - 在启动期间,如果该盒子本身未接近100%的CPU运行(假设100%的单个核心,启动通常是单线程),则可能存在应用程序正在执行的某些磁盘IO是瓶颈。

使用操作系统工具,如Windows性能监视器来检查磁盘IO。可能并不是应用程序引起的IO,而是交换活动(页面故障)引起的。

解决方案:修复应用程序(不太可能),或为计算机获取更快的磁盘/更多物理内存。


1

Tomcat加载缓慢的两个最常见原因:

  • 您有很多Web应用程序。Tomcat需要一些时间为每个Web上下文创建Web上下文。
  • 您的Web应用程序目录中有大量文件。Tomcat在启动时扫描Web应用程序目录。

只有两个Web应用程序,即默认的Alfresco应用程序。它们确实有大量文件,但我不认为每个人都有如此缓慢的启动时间。 - Frank Groeneveld

1

另外,建议您查看Java性能调优白皮书,此外我还推荐您使用Lambda Probe www.lambdaprobe.org/d/index.htm,以查看您的gcc设置是否满意,它具有很好的实时gcc和内存跟踪功能,适用于Tomcat。

我自己正在运行Alfresco,并使用Java性能调优白皮书中的示例4.2.6:

4.2.6调优示例6:针对低暂停时间和高吞吐量进行调优

该论文还非常详细地解释了内存设置。

祝好,Mahatmanich


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接