这个文章与 Oracle 的 Hotspot JVM 虚拟机的内存管理为参照的。这些建议是咱们在对大的 Confluence 安装实例用户进行咨询服务的时候获得的最佳配置方案。html
请不要在 Confluence 中使用 Concurrent Mark Sweep (CMS) ,除非你获得了 Atlassian 支持小组的明确说明。这个须要额外的手工调整和测试,一般这个会下降系统的性能。git
使用一个小的 heap
在不出现 OutOfMemory 错误的状况下,保持你的 heap 尽量的小。当你遇到了 OutOfMemory 错误,须要增长 heap 的时候,咱们推荐你按照 512MB 到 1 GB 的顺序进行增长。若是你还持续的得到 OutOfMemory 错误,那么你能够考虑再继续增长 512 MB 或者 1GB。你能够持续进行增长,直到你再也不出现 OutOfMemory 错误。不要尝试一次增长到位,这样可能会致使垃圾收集时间的增加。github
删除全部老的收集参数
只有在彻底的 GC 后,JVM 将会从新定义 Eden, Survivor 等参数的大小,这个大小是基于 GC 处理来肯定的。这个将会保证 GC 处理程序可以处理真实的垃圾状况和垃圾对象。在绝大部分状况下,可以保证 JVM 为你提供更好的性能。app
若是你的 JVM 中添加了参数,当在垃圾收集的时候遇到了困难。那么咱们建议你删除掉你在 GC 前添加的参数,除非你添加的这些参数是为了解决一些特定的问题。你如今应该考虑如何避免在 GC 中出现的问题,而不是致使其余的问题。ide
检查你的虚拟机(VM)资源
若是你运行 Confluence 在一个 VM 上的话,检查这个 VM 没有使用 swap 文件。工具
若是这个 VM 了使用了 swap 文件,那么当 JVM 进行垃圾收集的时候,将会把这些 swap 文件载入到内存后清理他们,这个将会致使垃圾清理进程的长时间暂停。为了不使用 swapping, ballooning 和 bursting,将这些信息载入到 VM 的内存中。性能
手动清理
若是你按照上面的说明进行了操做后还遇到了一些困难,可是你仍是但愿可以提升系统的性能,咱们推荐你使用Garbage Collection (GC) Tuning Guide 页面提供的方法。这个页面将会知道你如何达到你本身指望的性能指标(throughput/footprint/latency)和如何进行调整。测试
查看你的垃圾收集日志
How to Enable Garbage Collection (GC) Logging 和使用相似 Chewiebug's GCViewer 工具来查看结果的日志。ui