Confluence 6 性能优化

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

与其余应用服务器同样,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 的负载比较高,你可能须要增长你数据库的链接数。app

  • 若是你使用的是 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

相关文章
相关标签/搜索