Confluence 6 垃圾收集性能问题

news/2024/7/20 15:45:52 标签: 运维, 内存管理, 数据库

这个文章与 Oracle 的 Hotspot JVM 虚拟机的内存管理为参照的。这些建议是我们在对大的 Confluence 安装实例用户进行咨询服务的时候得到的最佳配置方案。

不要在 Confluence 中使用 Concurrent Mark Sweep (CMS) ,除非你得到了 Atlassian 支持小组的明确说明。这个需要额外的手工调整和测试,通常这个会降低系统的性能。

使用一个小的 heap

在不出现 OutOfMemory 错误的情况下,保持你的 heap 尽可能的小。当你遇到了 OutOfMemory 错误,需要增加 heap 的时候,我们推荐你按照 512MB 到 1 GB 的顺序进行增加。如果你还持续的获得 OutOfMemory 错误,那么你可以考虑再继续增加 512 MB 或者 1GB。你可以持续进行增加,直到你不再出现 OutOfMemory 错误。不要尝试一次增加到位,这样可能会导致垃圾收集时间的增长。

删除所有老的收集参数

只有在完全的 GC 后,JVM 将会重新定义 Eden, Survivor 等参数的大小,这个大小是基于 GC 处理来确定的。这个将会保证 GC 处理程序能够处理真实的垃圾情况和垃圾对象。在绝大部分情况下,能够保证 JVM 为你提供更好的性能。

如果你的 JVM 中添加了参数,当在垃圾收集的时候遇到了困难。那么我们建议你删除掉你在 GC 前添加的参数,除非你添加的这些参数是为了解决一些特定的问题。你现在应该考虑如何避免在 GC 中出现的问题,而不是导致其他的问题。

检查你的虚拟机(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 工具来查看结果的日志。

 
https://www.cwiki.us/display/CONF6ZH/Garbage+Collector+Performance+Issuese

http://www.niftyadmin.cn/n/1667631.html

相关文章

二叉树遍历(已知前中遍历,输出后序遍历)--C++实现

题目如下: 二叉树的前序、中序、后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树; 中序遍历:对任一子树,先遍历其左子树,…

Field mapper in xxxServiceImpl required a single bean, but 5 were found:

目录 一、问题 二、解决方法 一、问题 重构代码时,遇到一个问题,写的基础实现类被多个类继承,下面按照错误提示修改一下 Field mapper in com.move.exam.app.service.base.BaseServiceImpl required a single bean, but 5 were found:- pageHelperProperties: defined by metho…

SpringCloud面试必问,还不会你就out了

目录 一、业务场景介绍 二、Spring Cloud核心组件:Eureka 三、Spring Cloud核心组件:Feign 四、Spring Cloud核心组件:Ribbon 五、Spring Cloud核心组件:Hystrix 六、Spring Cloud核心组件:Zuul 七、总结 概述…

ELK+Filebeat (2)

ELKFilebeat收集多台机器不同日志 采坑:在使用了6.0版本的ELK以后,使用如上配置,if [type]匹配不到在filebeat里面使用document_type定义的字符串。在多次调试和询问后,发现在6.0版本以上已经取消了document_type的定义。如果要实…

进制转换--C++实现

此类题的做法,是将任意进制数转换为十进制数,再由十进制数转换为任意进制数,不要忘记输出是A~F的特别处理。 题目描述: 求任意两个不同进制非负整数的转换(2进制~16进制),所给整数…

IDea项目名修改后,后面有个中括号原来的项目名

目录 一、问题 二、正确修改 一、问题 最近项目正在从Springboot改造成SpringCloud微服务架构,所以会涉及到新增模块的情况, 这里我直接复制了其他项目,需要改正改名字,并且通过修改文件夹名的方式命名该模块, 之后该模…

温故而知新:5个最难回答的Java面试题

这是我收集的5个最棘手的Java面试问题列表。这些问题主要来自 Java 核心部分 ,不涉及 Java EE 相关问题。你可能知道这些棘手的 Java 问题的答案,或者觉得这些不足以挑战你的 Java 知识,但这些问题都是容易在各种 Java 面试中被问到的,而且包…