Confluence 6 性能优化

简介: 这个页面帮助你对应用性能进行提升需要进行的一些操作。这个页面不是为你对 Confluence 出现问题后进行问题修复的指南。

这个页面帮助你对应用性能进行提升需要进行的一些操作。这个页面不是为你对 Confluence 出现问题后进行问题修复的指南。如果你的 Confluence 崩溃的话,请查看Troubleshooting Confluence hanging or crashing 页面中的内容来获得帮助。

与其他应用服务器一样,Confluence 可能需要对系统进行一些调整才能让 Confluence 能够承受更大的数据访问量。我们尽我们最大的努力能够让 Confluence 满足各种环境下的访问需求。但是没有一个配置能够满足所有用户的需求和用户的使用环境。

如果你在部署 Confluence 的时候遇到了性能方面的问题,并且希望获得我们的帮助,你应该参考页面 Requesting Performance Support 中的内容。

对你使用的工具采用最新版本

针对你的应用程序,使用最新版的安装和 Java 运行环境。新的版本通常有更好的性能优化。

因没有足够内存避免 swapping

总是关注你服务器的交换(swapping)活动。当没有足够的 RAM 可用的时候,你的服务器可能开始将 Confluence 存储在交换器的一些内容转存到硬盘上。这个过程将会显著降低垃圾回收的速度而对 Confluence 的性能产生影响。在集群的环境下,交换器问题将会导致 Cluster Panic due to Performance Problems 问题。这是因为交换器导致 JVM 在进行 Garbage Collection 的时候暂停,这个将会导致内部节点的通信中断,而这个通信又是节点进行同步所需要的。

不要让其他系统使用相同结构

下面的配置可能看起来是非常诱人的:你只有一台服务器,这个服务器具有很高的性能,因此你将数据库服务器,应用服务器和其他你的一些重要服务都同时部署在这个服务器上。如果这个系统能够完美的运行,你可能还感觉不到什么问题。问题是,当你可能忽略了一些问题,同时其他应用的 bug 将会对你部署的应用产生影响。例如,如果你的 Confluence 应用每天都在中午的时候变得缓慢,你有可能是其他的服务在利用共享的数据库在创建报表?要么你需要保证部署在同一架构上的应用不会互相影响,要不你考虑将不同应用部署到不同的架构上,这样你也更好的进行控制。

选择数据库

Confluence 安装中提供的嵌入 H2 数据库仅仅是用来评估使用的,这个数据库不适合使用生产环境中的 Confluence。当你对 Confluence 评估完成后,你必须切换到一个支持的外部数据库中。我们推荐你使用你熟悉的数据库,因为你能够更好的对数据库进行维护,这个可能相对你不熟悉的数据库来说,能更好的让你对数据库的性能进行优化。

数据库连接池

如果 Confluence 的负载比较高,你可能需要增加你数据库的连接数。

  • 如果你使用的是 JNDI 数据源,你需要在你的应用服务器配置文件中进行修改。
  • 如果你配置 Confluence 直接连接数据库,你需要手动变焦 hibernate.c3p0.max_size 属性,这个属性在 confluence.cfg.xml 文件中定义,这个文件在你的 confluence.home 目录中。当你修改了 Confluence 的这个配置文件后,你需要对 Confluence 进行重启。

希望确定是否需要对i的数据库连接池进行修改,针对不同时间段(在高峰时间段),对 thread dumps 进行查看来了解有多少线程正在连接数据库。

数据库基本情况

如果 Confluence 正在运行缓慢,那么很有可能是其中一个数据库遇到了瓶颈。

最先你应该检查的是 数据库延迟(Database Latency) 字段,这个字段的内容是在管理员控制台中定义的。

数据库延迟是通过向数据库发送一个不重要的查询来查询数据库的表来进行计算的,这个查询通常只有一个表一个字段(例如,select * from CLUSTERSAFETY)。很明显的,这个查询应该非常快速的放回结果,通常应该是在 1 到 2 毫秒的样子。如果这个查询的返回时间到了 3 到 5 毫秒的话则表明数据库中遇到了一些问题。如果这个返回超过了 10 毫秒,你需要对数据库进行调整来提高数据库的性能。几个毫秒的性能开支可能看起来没有什么问题,但是考虑到 Confluence 在每一个查询的时候可能需要对多个数据库表进行查询,同时这个查询也会复杂得多。高延迟可能是因为某些原因导致的(网络速度慢,数据库慢,连接池的连接等),因此需要你对这些问题进行调查研究。请一直对数据库进行调整,指导延长时间控制在 2 毫秒以下。

显而易见的,数据库延迟只是你需要考虑的第一件事情。你依然有可能获得 0 延迟,但是你还是有很多数据库的性能问题,例如你的的数据库表没有建立索引。所以不要让延迟率过度干扰你。

数据库状态和查询分析

现代的数据库会基于你对数据库运行的查询历史来对查询进行优化。使用 SQL EXPLAIN 语句将会告诉你数据库查询的优化情况。如果数据库查询命中率明显的不同,那么你需要考虑对数据库运行状态收集和优化。针对你数据库的版本不同,优化的版本和方向也会不同。在大多数的情况下,你可以在 Confluence 运行的时候对数据库查询的运行状态进行收集。但是这个查询也会增加数据库的负载,因此我们还是建议你最好不要在 Confluence 正常运行的时候运行,你可以考虑在周末运行。

Confluence 和 Apache 的缓存性能

为了减少数据库的载入数据和对很多操作提高效率,Confluence 将会保持自己的数据缓存。增加 Confluence 数据缓存的大小将会提高 Confluence 的速度(如果缓存太小的话),或者降低换成(如果缓存太大的话)。

请查看我们有关 Cache Performance Tuning 的文档来获得 Confluence 缓存的更多信息。

防病毒软件

防病毒软件也会显著的降低 Confluence 的性能。防病毒软件终止进程对磁盘的访问是非常有害的,同时还可能会导致 Confluence 的错误。你应该配置你的防病毒软件忽略 Confluence 的 home 目录,这个目录存储的是 Confluence 索引和其他任何数据库相关的目录。

启用 HTTP 压缩

如果带宽响应是你 Confluence 安装的瓶颈的话,你应该考虑启用 启用 HTTP 压缩。这个可能能够让你能够降低你对带宽的消耗。

请注意,针对 Confluence 2.8 及其早期版本,启用 HTTP 压缩会导致一些 known issues with HTTP compression ,这些问题将会增加内存的消耗。

性能测试

针对 demo 系统,你应该尝试所有的可能的性能测试。如果可能的话,你应该针对你的模拟器环境运行性能测试。

Access 访问日志

你可以通过 enabling Confluence's built-in access logging 来找到那些页面访问环境和那些用户正在访问它们。

内建探测器

你可以通过使用 Confluence 的内建探测器,根据 Troubleshooting Slow Performance Using Page Request Profiling 页面中的内容来识别导致页面访问缓慢的原因。

应用服务器内存设置

请参考 How to fix out of memory errors by increasing available memory 页面中的内容。

Web 服务器配置

针对高负载环境,性能可以通过在 Confluence 环境之前配置 Apache 服务器来进行提升,请参考页面 Running Confluence behind Apache 中的内容进行配置。

当你配置你新的应用服务器的时候,请确定你的配置能够有足够的线程和进程处理你的的负载。这个配置应用到 Web 服务器和应用服务器连机器上。如果可能的话,你应该为你的应用服务器启用连接池来连接到应用服务器。

可能内存泄漏的问题解决

一些外部的插件,尤其是一些插件是很久以前的了,同时也没有什么人对这些插件进行维护了,这些插件可能会在运行并且消耗内存但是却从来没有释放内存。最后的结果可能会导致 Confluence 崩溃,但是在崩溃之前可能会直接先导致性能下降。Troubleshooting Confluence hanging or crashing 页面中的内容能够帮你对这方面的问题进行调试。一些插件我们已经知道能够对系统性能造成影响并最终导致 Confluence 的崩溃。

 

https://www.cwiki.us/display/CONF6ZH/Performance+Tuning

目录
相关文章
|
存储 NoSQL 关系型数据库
MariaDB 在Linux下的安装部署
MariaDB 在Linux下的安装部署
MariaDB 在Linux下的安装部署
|
9月前
|
JSON 前端开发 搜索推荐
关于商品详情 API 接口 JSON 格式返回数据解析的示例
本文介绍商品详情API接口返回的JSON数据解析。最外层为`product`对象,包含商品基本信息(如id、name、price)、分类信息(category)、图片(images)、属性(attributes)、用户评价(reviews)、库存(stock)和卖家信息(seller)。每个字段详细描述了商品的不同方面,帮助开发者准确提取和展示数据。具体结构和字段含义需结合实际业务需求和API文档理解。
|
算法 5G
|
小程序
[渲染层错误] [jsbridge] invoke remoteDebugInfo fail: too eayly.
这篇文章分享了在小程序开发过程中遇到的一个渲染层错误,原因是路径错误,特别是图片后缀名的遗漏,通过手动修正后问题得到解决。
[渲染层错误] [jsbridge] invoke remoteDebugInfo fail: too eayly.
|
人工智能 测试技术 计算机视觉
7B最强长视频模型! LongVA视频理解超千帧,霸榜多个榜单
【8月更文挑战第1天】新模型LongVA实现7B级最强长视频理解!通过长上下文转移技术,LongVA能够处理超千帧视频,显著提升长视频理解精度。不同于传统模型依赖视觉重采样导致的信息损失,LongVA扩展语言主干上下文长度,无需额外视频训练即可理解大量视觉标记。在V-NIAH等基准上取得SOTA成绩,处理2000帧以上视频无额外复杂度增加。但实时应用及非视频任务仍面临挑战。[论文](https://arxiv.org/abs/2406.16852)
325 4
|
安全 Ubuntu Linux
在Linux中,如何实现安全的密码策略?
在Linux中,如何实现安全的密码策略?
|
前端开发 Java UED
Java中的同步与异步编程详解
Java中的同步与异步编程详解
|
Kubernetes 异构计算 容器
Kubelet之Topology Manager分析
Topology Manager是kubelet的一个组件,在kubernetes 1.16加入,而kubernetes 1.18中该feature变为beta版。本篇文档将分析Topology Manager的具体工作原理。1.为什么需要Topology Manager现代计算机的CPU架构多采用NUMA(Non-Uniform Memory Access,非统一内存)架构。NUMA就是将cpu
4584 0
|
存储 Shell 对象存储
Python 自动化指南(繁琐工作自动化)第二版:十三、使用 EXCEL 电子表格
Python 自动化指南(繁琐工作自动化)第二版:十三、使用 EXCEL 电子表格
610 0
Python 自动化指南(繁琐工作自动化)第二版:十三、使用 EXCEL 电子表格
|
存储 数据可视化 数据管理
Ganos三维引擎系列(三):BIM数据管理与可视化功能解析
本文介绍了阿里云多模态时空数据库Ganos三维引擎在BIM数据管理中的应用。Ganos三维引擎支持三大类存储结构:表面网格模型、体网格模型与3D实景模型,其中表面网格模型(SFMesh)用于存储带有语义的类BIM精细化三维模型,同时提供了空间索引、分析算子、导入工具、可视化支撑等功能,本文详细介绍表面网格模型应用于IFC格式的BIM数据管理与可视化等功能。