我们目前正在一台旧服务器(只有 1GB 内存)上测试 Alfresco 社区。因为这是社区版本,所以我们每次更改配置时都需要重新启动它(我们正在尝试添加一些功能,例如生成 DWG 文件的预览等)。但是,重新启动需要很长时间(我认为大约 4 分钟)。这可能是由于可用内存量有限。有人知道一些可以改善重启时间的功能或设置吗?
3 回答
与所有性能问题一样,很少有灵丹妙药。
内存压力- 应用程序正在启动,但 512m 堆仅足以容纳应用程序,并且它花费了启动时间的一半来运行 GC。
查看以下任何内容: 1. -verbose:gc 2. jstat -gcutil 2. jvisualvm - 更好的 UI
您正在尝试查看在 GC 中花费了多少时间,寻找许多没有回收大部分堆的完整垃圾收集事件,即 99% -> 95%。
解决方案 - 更多的堆,真的没有别的了。
您可能想尝试 -XX:+AggressiveHeap 以使 JVM 最大限度地使用机器上的内存,唯一的问题是只有 1gb 的内存会受到限制。所有 JVM 选项的列表
磁盘 IO - 在启动期间,它自身的机器没有以接近 100% 的 CPU 运行(假设 100% 的单核,启动通常是单线程的)那么可能有一些应用程序正在执行的磁盘 IO 是瓶颈.
使用 Windows 性能监视器等操作系统工具检查磁盘 IO。可能不是应用程序导致了 IO,它可能是交换活动(页面错误)
解决方案:要么修复应用程序(不太可能),要么为盒子获得更快的磁盘/计算机或更多物理内存
Tomcat 加载缓慢的两个最常见原因:
- 您有很多 Web 应用程序。Tomcat 需要一些时间来为其中的每一个创建 Web 上下文。
- 您的 webapp 在 web 应用程序目录中有大量文件。Tomcat 在启动时扫描 Web 应用程序目录
还可以看看java 性能调整白皮书,我会进一步向你推荐 Lambda Probe www.lambdaprobe.org/d/index.htm
,看看你是否对你的 gcc 设置满意,它有很好的实时 gcc 和 tomcat 的内存跟踪。
我自己使用 java 性能调整白皮书中的示例 4.2.6 运行 Alfresco:
4.2.6 调优示例 6:针对低暂停时间和高吞吐量进行调优
该论文中也很好地解释了内存设置。
亲切的问候马哈特曼尼奇