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

中文标题【缓存性能优化】

Confluence 的运行状态与缓存状态有这密切的关系。针对 Confluence 的管理员来说,尤其是大型站点的 Confluence 管理员,设置好缓存尤其显得关键。

希望修改缓存的大小:

  1. 进入  > 基本配置(General Configuration) > 缓存管理(Cache Management。
  2. 选择 显示高级视图(Show Advanced View)。
  3. 在你希望修改缓存的边上,选择 调整大小(Adjust Size)。

本页中的内容:

缓存性能示例


有关 Confluence 的缓存性能如何设置,让我们看看下面的表:

缓存(Caches)

% 使用的缓存(Used)

% 有效率(Effectiveness)

对象/大小(Objects/Size)

命中/未命中/过期(Hit/Miss/Expiry)

附件(Attachments)

87%

29%

874/1000

78226/189715/187530

内容附件(Content Attachments)

29%

9%

292/1000

4289/41012/20569

内容正文(Content Bodies)

98%

81%

987/1000

28717/6671/5522

内容标签映射(Content Label Mappings)

29%

20%

294/1000

4693/18185/9150

数据库查询(Database Queries)

96%

54%

968/1000

105949/86889/83334

对象属性(Object Properties)

27%

18%

279/1000

5746/25386/8102

页面评论(Page Comments)

26%

11%

261/1000

2304/17178/8606

用户(Users)

98%

5%

982/1000

6561/115330/114279

缓存大小最大的数量是 1000(意思是缓存可以包含有 1000 个对象)。在必要的时候你可以增加这个值的大小,当下面 2 个条件都满足的时候:

  • 搞使用率(超过 75%)
  • 低有效率。

检查有效率(effectiveness)中的使用的百分比。一个缓存如果是有滴的百分比的使用率并不意味着缓存的大小少,系统将不会使用内存直到缓存被用完。

有关附件(Attachments),数据库查询(Database Queries)和用户(Users)应该增加来提高缓存的有效率。

当存储的信息变老并且不再需要使用的时候,这部分内容将会在缓存中因为过期而删除。缓存过期是基于缓存使用的频率来定义的。

(info) 当缓存同时具有低使用率和低有效率的时候,你也没有太多可以操作的的空间。随着时间的变化,更多的对象缓存进来后,可能会导致缓存有效率数据的提升。

找到配置文件

缓存的配置文件是存储在 <confluence-home>/shared-home/config/cache-settings-overrides.properties 中的。

有关 Confluence 数据中心(集群)中缓存的配置,你可以在 <confluence-shared-home>/config/cache-settings-overrides.properties 文件中找到(这个是针对集群分享的 home 目录)。

缓存键(key)映射

缓存配置文件是通过他们的 key 进行配置的。希望找到缓存配置文件的 可以,在缓存管理界面(Cache Management)使用鼠标移动到缓存的名字,在弹出窗口中你就可以看到缓存的 key 了。

Confluence 数据中心的缓存

在 Confluence 数据中心(集群)你需要分布缓存和每一个节点的缓存。在集群管理界面,将会定义分布缓存和节点本地缓存。

缓存配置文件存储在集群共享目录中的 home 目录下面。

重要缓存

下面的建议是基本上的一些配置帮助。在大型数据库中,20-30% 的数据库表大型可能是不需要如此膨胀的。在缓存配置的界面中,检查有效率和使用率的配置来进行必要的修改。


  • 内容对象缓存(Content Objects cache (com.atlassian.confluence.core.ContentEntityObject)
    应该设置为最少 20-30% 在整体对象的比例中(页面,内存,电子邮件,新内容)。希望找到内容的总的数量,你可以使用查询 select count(*) from CONTENT where prevver is null。
  • 内容主体映射缓存(Content Body Mappings cache (com.atlassian.confluence.core.ContentEntityObject.bodyContents)
    应该设置为最少 20% 在整体对象的比例中(页面,内存,电子邮件,新内容)。 希望找到内容的总的数量,你可以使用查询 select count(*) from CONTENT where prevver is null。
  • 嵌入的 Crowd 内部 用户缓存(Embedded Crowd Internal User cache (com.atlassian.crowd.model.user.InternalUser)
    应该设置为你系统中内部目录中所有用户的数量。你可以通过下面的 SQL 来找到你系统中当前用户的数量:

    SELECT
        COUNT(*)
    FROM
        cwd_user u
    JOIN
        cwd_directory d
    ON
        u.directory_id = d.id
    AND d.directory_name = 'Confluence Internal Directory';
  • 嵌入 Crowd 用户缓存(Embedded Crowd Users cachecom.atlassian.confluence.user.crowd.CachedCrowdUserDao.USER_CACHE )
    应该设置与 cwd_user 表中的数量一致。

    SELECT
     COUNT(*)
    FROM
     cwd_user u;
  • 通过 ID 的空间权限缓存(Space permissions by ID cache (com.atlassian.confluence.security.SpacePermission
    应该设置与你部署的空间权限数量设置一致(一个好的配置为,设置大小为你空间数量的 20 倍)。你可以通过下面的 SQL 找到空间权限的数量 select count(*) from SPACEPERMISSIONS。

监控缓存中的内容

要查看缓存中有什么内容:

  1. 使用你的浏览器进入 <confluence-URL>/admin/cachecontents.jsp
    所有缓存中包含的主题将会显示出来。
  2. 从列表中选择一个缓存。
  • No labels