Page tree
Skip to end of metadata
Go to start of metadata

中文标题【内存使用和需求】

管理 Confluence 性能和内存的使用和有什么资源可用是密切相关的。如果你给 Confluence 更多的内存来缓存内容,Confluence 将会运行得更加迅速,但是相对比较低的内存环境中,Confluence 也能够很好的进行工作。下面是有关 Confluence 站点进行配置的一些小技巧。

增加 Confluence 中可用的内存数量

查看 增加 JIRA 内存 页面来获得如何为 Web 应用程序增加可用内存,通常这个策略也可以在 Confluence 上使用。

嵌入数据库

嵌入的 HSQL 数据库能够允许 Confluence 访问存储到内存中的数据库,当 Confluence 服务运行的时候。当你遇到内存不够用或者溢出的时候,你可以考虑 migrating Confluence to an external database 中的方案。

本页中的内容:

相关页面:

缓存

在默认的情况下,Confluence 在内存中保存有大量的的缓存数据来提高用户的使用体验。这的配置需要增加内存的使用来换取效率。大型 Confluence 站点的管理员可能需要配置较多的内存来提高 Confluence 的使用效率。

为了自定义 Confluence 缓存来符合你的使用,请参考 Performance Tuning 页面中的内容。
为了增加 Confluence 可用的内存数量,请参考 How to fix out of memory errors by increasing available memory 页面中的内容。

邮件错误队列

Confluence 保留所有电子邮件发送内部错误的对立信息。在内部错误包括有网络连接问题,电子邮件队列可用在错误被修复后重新手动发送。在一些特定的情况下,电子邮件队列可能会包含有一些大数据的对象。这个队列通常是能够自动刷新的,但是如果你有很多的电子邮件错误,你可能会看到你的内存出现了问题。

附件

对大附件进行索引,我们需要将附件内容载入到内存中。当将附件载入内存的时候,我们将会遇到临时的系统资源高消耗同时还会导致索引失败,因为不是所有的附件都能载入到内存中。

系统备份和恢复

Confluence  的备份和恢复是与数据库中数据量的大小有关。这个操作可能会对 Confluence 的性能产生很多关键性的影响并且大量消耗内存。如果你在 Confluence 的系统备份和恢复过程中遇到了 OutOfMemoryError 错误,我们强烈推荐你使用 Production Backup Strategy 进行系统的备份和恢复。

当你在 Confluence 系统备份和恢复的时候遇到了  OutOfMemoryError 错误,你希望通过增加内存的大小来修复这个错误的话。我们应该增加多少内存呢?一个指导方针是,查看你备份中的 entities.xml 文件的大小。这个文件的大小是 Confluence 需要载入的所有数据的大小,同时这个大小也是最小的需求值。针对这个大小,添加 64 - 128MB 到 Confluence 的内存来保证 Confluence 在系统备份的时候有足够可用的内存。有关增加可用内存的方法,请参考页面 increasing available memory 中的内容。

我们不能控制的已知问题

下面的一些内存的问题,我们可能没有办法进行控制:

  • 针对 Oracle 10g JDBC 驱动的内存泄漏。我们没有太多可以做的地方。
  • 一个用户发现了在 Tomcat 5 的版本上,如果使用 IBM JDK,在 PowerPC 平台上有严重的内存问题。

如果你在使用的时候遇到了比较严重的内存泄漏问题,请登录 http://support.atlassian.com。我们的内存属性空间选择的是 YourKit。这个工具能够帮助你向我们提供你机器上存在有内存泄漏的地方。

Confluence 对一些操作的响应时间过长

一个导致 Confluence 突然不响应的问题可能是 Confluence 正在运行 JVM 垃圾清理。为了确定这个是不是正在发生的情况,请详细查看垃圾清理程序然后检查 Java 花了多长时间才清空内存。如果临时停止响应的时候与 Java 运行垃圾清理的世界相同的话,那么就可以证明是 Java 的垃圾清理导致了这个问题。

详细的垃圾清理日志将会告诉你 Java 的垃圾清理程序是什么时候开始的,在这次垃圾清理中花了多长时间,和多少垃圾被清理。

为了确定垃圾清理 gc 被争取的日志,在启动 Confluence 的时候,添加下面的选项 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbose:gc -Xloggc:gc.log。替换 gc.log 为你 gc.log 文件的绝对路径。

例如,如果你下 Windows 服务下的话,运行:

tomcat5 //US//Confluence ++JvmOptions="-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbose:gc -Xloggc:c:\confluence\logs\gc.log"

 或者在  bin/setenv.sh, 中设置:

export CATALINA_OPTS="$CATALINA_OPTS -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbose:gc -Xloggc:${CATALINA_BASE}/logs/gc.log"

如果你修改了 bin/setenv.sh 文件,你需要重启 Confluence 来使配置生效。

有什么办法可以让 Java 的垃圾清理消耗最小的时间呢?请参考  http://java.sun.com/docs/hotspot/gc1.4.2/ 页面中的内容来确定 JVM 垃圾清理对正在运行的系统产生最小的影响。

  • No labels