|
The caches are configured in ehcache.xml (for standard editions) which is stored in <confluence-home>/config/.
The cache configuration file configures caches by their keys. When you move your mouse over the the cache names displayed on the cache statistics page, a tooltip will indicate the actual cache key for that cache name.
![Confluence 5.5 > Cache Performance Tuning > cacheKey.png (cacheKey.png [Added example of mousing-over a cache name to display its cache key.])](https://confluence.atlassian.com/download/attachments/590259805/cacheKey.png?version=1&modificationDate=1398731506795&api=v2)
Using our example from the table above, if we were to modify parameters for the Users cache we would need to change the cache with the key com.atlassian.user.impl.hibernate.DefaultHibernateUser. Do not get confused with Users (External Mappings) and Users (External Groups) which are in themselves, two separate caches. "Users" is the friendly name for com.atlassian.user.impl.hibernate.DefaultHibernateUser.
In standard editions of Confluence, the caching layer is Ehcache.
For more information about the Ehcache configuration file and a full reference on Ehcache configuration, please refer to the Ehcache configuration documentation.
This section only applies to customers who:
|
To maintain your existing cache configuration file settings, you will need to transfer any cache customisations you have implemented in the Coherence cache configuration file ( Each cache has a To convert your Coherence cache configuration file customisations across to the equivalent Ehcache file:
Mappings table showing how elements of the Coherence cache configuration file map to parameters of the equivalent Ehcache file.
|
Clustering is not available for Confluence 5.5. Check out Confluence Data Center our new clustered offering, available from Confluence 5.6. |
The names in the Cache statistics screen are mapped to internal names (as per the ehcache file) as follows:
bucket.user.persistence.dao.hibernate.BucketUserDAO.findUserByUsername() | Users (Username) |
bucket.user.propertyset.BucketPropertySetItem | オブジェクト プロパティ |
bucket.user.providers.CachingAccessProvider.handles() | Groups (OSUser) |
bucket.user.providers.CachingAccessProvider.inGroup() | User Group Mappings (OSUser) |
bucket.user.providers.CachingCredentialsProvider | Users (OSUser Credentials) |
com.atlassian.bandana.BandanaPersister | Settings (Persistence) |
com.atlassian.confluence.core.BodyContent | コメント本文 |
com.atlassian.confluence.core.ContentEntityObject | Content Objects |
com.atlassian.confluence.core.ContentEntityObject.attachments | コンテンツ添付ファイル |
com.atlassian.confluence.core.ContentEntityObject.bodyContents | Content Body Mappings |
com.atlassian.confluence.core.ContentEntityObject.labellings | コンテンツ ラベル マッピング |
com.atlassian.confluence.core.ContentEntityObject.outgoingLinks | Content Links (Outgoing) |
com.atlassian.confluence.core.ContentEntityObject.permissions | Content Permission Mappings |
com.atlassian.confluence.core.ContentEntityObject.previousVersions | Content Versions |
com.atlassian.confluence.core.ContentEntityObject.referralLinks | Content Links (Referral) |
com.atlassian.confluence.core.ContentEntityObject.trackbackLinks | Content Links (Trackback) |
com.atlassian.confluence.diffs | Page Diffs |
com.atlassian.confluence.html.diffs | Html Page Diffs |
com.atlassian.confluence.plugins.like.notifications.dao.NotificationDao | Likes Notification DAO |
com.atlassian.confluence.security.ContentPermission | Content Permissions |
com.atlassian.confluence.core.PersistentDecorator | Layouts (Database) |
com.atlassian.confluence.labels.Label | ラベル |
com.atlassian.confluence.labels.Labelling | Label Content Mappings |
com.atlassian.confluence.pages.Attachment.labellings | "Attachment Label Mappings" |
com.atlassian.confluence.pages.AttachmentDownloadPathCache | Attachment Download Paths |
com.atlassian.confluence.pages.templates.PageTemplate.labellings | "Page Template Label Mappings" |
com.atlassian.confluence.links.ReferralLink | Links (External) |
com.atlassian.confluence.links.TrackbackLink | Links (Trackback) |
com.atlassian.confluence.core.ContentEntityObject.comments | コメント |
com.atlassian.confluence.pages.Attachment.previousVersions | 添付ファイルのバージョン |
com.atlassian.confluence.pages.Comment.children | Comment Relationships |
com.atlassian.confluence.pages.Draft | 下書き |
com.atlassian.confluence.pages.Page.ancestors | Page Ancestors |
com.atlassian.confluence.pages.Page.children | Page Children |
com.atlassian.confluence.pages.templates.PageTemplate.previousVersions | Template Versions |
com.atlassian.confluence.pages.attachments.ImageDetailsDto | Image Details |
com.atlassian.confluence.security.SpacePermission | Space Permissions (by ID) |
com.atlassian.confluence.setup.bandana.ConfluenceBandanaRecord | 設定 |
com.atlassian.confluence.spaces.Space | スペース |
com.atlassian.confluence.user.persistence.dao.CachingPersonalInformationDao.usernameToId | User Information By Username |
com.atlassian.confluence.util.velocity.ConfluenceVelocityResourceCache | UI Templates |
com.atlassian.user.impl.hibernate.DefaultHibernateExternalEntity | Users (External Mappings) |
com.atlassian.user.impl.hibernate.DefaultHibernateExternalEntity.groups | Users (External Groups) |
com.atlassian.user.impl.hibernate.DefaultHibernateGroup | グループ |
com.atlassian.user.impl.hibernate.DefaultHibernateGroup.externalMembers | Groups (External Members) |
com.atlassian.user.impl.hibernate.DefaultHibernateGroup.localMembers | Groups (Local Members) |
com.atlassian.user.impl.hibernate.DefaultHibernateUser | ユーザー |
com.atlassian.user.impl.hibernate.DefaultHibernateUser.groups | User Group Mappings |
com.atlassian.user.impl.hibernate.CachingExternalEntityDAO.externalEntityName | Users (External Mappings) |
com.opensymphony.user.provider.hibernate.impl.HibernateGroupImpl | Groups (OSUser) |
com.opensymphony.user.provider.hibernate.impl.HibernateUserImpl | Users (OSUser) |
com.opensymphony.user.provider.hibernate.impl.HibernateUserImpl.groups | User Group Mappings (OSUser Hibernate) |
net.sf.hibernate.cache.StandardQueryCache | データベース クエリ |
net.sf.hibernate.cache.UpdateTimestampsCache | Object Timestamps |
com.atlassian.confluence.lock-cache | ロック |
com.atlassian.confluence.rpc.auth.TokenAuthenticationManager.tokens | Remote Auth Tokens |
bucket.user.providers.CachingProfileProvider.getPropertySet() | Bucket Property Set |
bucket.user.providers.CachingProfileProvider.handles() | Profile Providers Handles |
com.atlassian.confluence.cluster.safety.DefaultClusterSafetyManager.safetyNumber | Cluster Safety Numbers |
com.atlassian.confluence.security.PermissionCheckDispatcher.isPermitted() | User Authorized URLs |
com.atlassian.confluence.security.persistence.dao.hibernate.legacy.HibernateKey | Hibernate Keys |
com.atlassian.confluence.security.trust.ConfluenceTrustedApplication | 信頼できるアプリケーション |
com.atlassian.confluence.security.trust.ConfluenceTrustedApplication.restrictions | Trusted Application Restrictions (Foreign Keys) |
com.atlassian.confluence.security.trust.TrustedApplicationRestriction | Trusted Application Restrictions (Objects) |
com.atlassian.confluence.themes.persistence.hibernate.DefaultPersistentDecoratorDao | Decorators |
com.atlassian.confluence.util.i18n.I18NBeanFactory.by.locale | Internationalisation Bean Factories |
com.atlassian.confluence.core.CachingInheritedContentPermissionManager.getInheritedContentPermissionSets() | Inherited Content Permissons |
com.atlassian.confluence.pages.persistence.dao.PageDao.getPage() | ページ |
com.atlassian.confluence.security.CachingSpacePermissionManager.permissions | Space Permissions (by Type, Scope & Entity) |
com.atlassian.confluence.spaces.persistence.dao.SpaceDao.getSpace() | Spaces (by key) |
com.atlassian.confluence.util.UserChecker | Number Of Registered Users |
com.atlassian.confluence.cache.jcaptcha.ConfluenceCachingCaptchaStore | Captchas |
com.atlassian.confluence.core.DefaultContentPropertyManager | Content Properties |
com.atlassian.confluence.spaces.SpaceGroup | Space Groups |
com.atlassian.confluence.hosted.SpaceGroupPermission | Space Group Permissions |
com.atlassian.confluence.spaces.persistence.dao.SpaceGroupDao.getSpaceGroup() | Space Groups (Hibernate) |
com.atlassian.confluence.core.ContentEntityObject.contentPermissionSets | Permission Set Collections in Content Entity Objects |
com.atlassian.confluence.security.ContentPermissionSet | Content Permission Sets |
com.atlassian.confluence.security.ContentPermissionSet.contentPermissions | Permissions in Content Permission Sets |
com.atlassian.confluence.published-cache | Objects Published to All Cluster Members |
com.atlassian.confluence.core.DefaultHeartbeatManager.activities | Page Edit Activities for Heartbeat Tracking |
com.atlassian.confluence.pages.Attachment | 添付ファイル |
com.atlassian.confluence.pages.attachments.AttachmentCache | Attachment IDs |
com.atlassian.confluence.security.persistence.dao.hibernate.AliasedKey | Encryption Keys |
com.atlassian.user.impl.hibernate.properties.HibernatePropertySetFactory.propertysets | Hibernate User Properties |
com.atlassian.confluence.follow.Connection | Connection |
com.atlassian.confluence.user.DefaultUserAccessor.deactivatedUsers | Disabled Users |
com.atlassian.confluence.links.DefaultReferralManager.hotReferrers | Hot Referrers |
com.atlassian.confluence.extra.jira.OldRssMacro | Old Rss Macro |
com.atlassian.confluence.security.login.DefaultLoginManager | Login Manager: Login attempts for unknown users |
com.atlassian.confluence.user.persistence.dao.ConfluenceRememberMeToken | RememberMe Tokens |
com.atlassian.confluence.locale.requestLang | Browser language cache |
com.atlassian.confluence.security.persistence.dao.hibernate.UserLoginInfo | User Login Information |
com.atlassian.confluence.like.LikeEntity | いいね! |
com.atlassian.crowd.integration-groupnames | Crowd Group Names |
com.atlassian.crowd.integration-user | Crowd Users |
com.atlassian.crowd.integration-group-membership | Crowd Group Memberships |
com.atlassian.crowd.integration-all-group-members | Crowd All Group Members |
com.atlassian.crowd.integration-groupname-case | Crowd Group Name Case |
com.atlassian.crowd.integration-all-memberships | Crowd All Memberships |
com.atlassian.crowd.integration-username-case | Crowd User Name Case |
com.atlassian.crowd.integration-parentgroup | Crowd Parent Groups |
com.atlassian.crowd.integration-usernames | Crowd User Names |
com.atlassian.crowd.integration-group | Crowd Groups |
com.atlassian.crowd.integration-is-user-or-group | Crowd User Or Group Cache |
com.atlassian.crowd.integration-user-with-attributes | Crowd users with Attributes |
| |
com.atlassian.crowd.model.user.InternalUserAttribute | Embedded Crowd Internal User Attribute |
com.atlassian.crowd.model.user.InternalUser | Embedded Crowd Internal User |
com.atlassian.crowd.model.application.ApplicationImpl.directoryMappings | Embedded Crowd Application Directory Mappings |
com.atlassian.crowd.model.directory.DirectoryImpl.attributes | Embedded Crowd Directory Attributes |
com.atlassian.crowd.model.directory.DirectoryImpl.allowedOperations | Embedded Crowd Directory Allowed Operations |
com.atlassian.crowd.model.application.ApplicationImpl | Embedded Crowd Application |
com.atlassian.crowd.model.directory.DirectoryImpl | Embedded Crowd Directory |
com.atlassian.crowd.model.application.DirectoryMapping | Embedded Crowd Directory Mapping |
com.atlassian.crowd.model.group.InternalGroup | Embedded Crowd Internal Group |
com.atlassian.crowd.embedded.hibernate2.HibernateMembership | Embedded Crowd Group Membership |
com.atlassian.crowd.model.application.DirectoryMapping.allowedOperations | Embedded Crowd Directory Mapping Allowed Operations |
com.atlassian.crowd.model.user.InternalUser.credentialRecords | Embedded Crowd Internal User Credential Records |
com.atlassian.crowd.model.application.ApplicationImpl.attributes | Embedded Crowd Application Attributes |
com.atlassian.crowd.model.application.DirectoryMapping.authorisedGroups | Embedded Crowd Directory Mapping Authorised Groups |
com.atlassian.crowd.model.application.ApplicationImpl.remoteAddresses | Embedded Crowd Application Remote Addresses |
com.atlassian.crowd.model.user.InternalUserCredentialRecord | Embedded Crowd Internal User Credential Record |
com.atlassian.crowd.model.application.GroupMapping | Embedded Crowd Group Mapping |
com.atlassian.crowd.model.group.InternalGroupAttribute | Embedded Crowd Internal Group Attribute |
com.atlassian.confluence.user.crowd.DefaultApplicationCache | Embedded Crowd Immutable Application |
com.atlassian.confluence.user.crowd.CachedCrowdUserDao.USER_CACHE | Embedded Crowd Users |
com.atlassian.confluence.user.crowd.CachedCrowdUserDao.ATTRIBUTE_CACHE | Embedded Crowd User Attributes |
com.atlassian.confluence.user.crowd.CachedCrowdGroupDao.GROUP_CACHE | Embedded Crowd Groups |
com.atlassian.confluence.user.crowd.CachedCrowdGroupDao.ATTRIBUTE_CACHE | Embedded Crowd Group Attributes |
com.atlassian.confluence.user.crowd.CachedCrowdMembershipDao.STRING_PARENT_CACHE | Embedded Crowd String Parent Memberships |
com.atlassian.confluence.user.crowd.CachedCrowdMembershipDao.GROUP_PARENT_CACHE | Embedded Crowd Group Object Parent Memberships |
com.atlassian.confluence.user.crowd.CachedCrowdMembershipDao.GROUP_CHILD_CACHE | Embedded Crowd Group Object Child Memberships |
confluence.fifo.buffer.mail | Mail Queue (only flushable individually) |
confluence.fifo.buffer.task | Task Queue (only flushable individually) |
confluence.fifo.buffer.mail-error | Mail Error Queue (only flushable individually) |
com.atlassian.user.impl.hibernate.HibernateGroupManager.hibernateRepository.groups | Hibernate Groups |
com.atlassian.user.impl.hibernate.HibernateGroupManager.hibernateRepository.groups_getGroupsForUser | Hibernate User Groups (Group Side) |
com.atlassian.user.impl.hibernate.HibernateGroupManager.hibernateRepository.groups_hasMembership | Hibernate Membership |
com.atlassian.user.impl.hibernate.HibernateGroupManager.hibernateRepository.repositories | Hibernate Group Repository |
com.atlassian.user.impl.hibernate.HibernateUserManager.hibernateRepository.users | Hibernate Users |
com.atlassian.user.impl.hibernate.HibernateUserManager.hibernateRepository.groups_getGroupsForUser | Hibernate User Groups (User Side) |
com.atlassian.user.impl.hibernate.HibernateUserManager.hibernateRepository.repository | Hibernate User Repository |
com.atlassian.user.impl.hibernate.HibernateUserManager.hibernateRepository.users_ro | Hibernate User Read-Only Flags |
com.atlassian.user.impl.hibernate.HibernateUserManager.ldapRepository.users | Hibernate-LDAP Users |
com.atlassian.user.impl.hibernate.HibernateUserManager.ldapRepository.groups_getGroupsForUser | Hibernate-LDAP Groups for Users (User Side) |
com.atlassian.user.impl.ldap.LDAPGroupManagerReadOnly.ldapRepository.groups | LDAP Groups |
com.atlassian.user.impl.ldap.LDAPGroupManagerReadOnly.ldapRepository.groups_getGroupsForUser | LDAP User Groups (Group Side) |
com.atlassian.user.impl.ldap.LDAPGroupManagerReadOnly.ldapRepository.groups_hasMembership | LDAP Membership |
com.atlassian.user.impl.ldap.LDAPGroupManagerReadOnly.ldapRepository.repositories | LDAP Group Repository |
com.atlassian.user.impl.ldap.LDAPUserManagerReadOnly.ldapRepository.users | LDAP Users |
com.atlassian.user.impl.ldap.LDAPUserManagerReadOnly.ldapRepository.groups_getGroupsForUser | LDAP User Groups (User Side) |
com.atlassian.user.impl.ldap.LDAPUserManagerReadOnly.ldapRepository.repository | LDAP User Repository |
com.atlassian.user.impl.ldap.LDAPUserManagerReadOnly.ldapRepository.users_ro | LDAP User Read-Only Flags |
com.atlassian.crowd.embedded.atlassianuser.EmbeddedCrowdGroupManager.embeddedCrowd.groups | Embedded Crowd Groups |
com.atlassian.crowd.embedded.atlassianuser.EmbeddedCrowdGroupManager.embeddedCrowd.groups_getGroupsForUser | Embedded Crowd User Groups (Group Side) |
com.atlassian.crowd.embedded.atlassianuser.EmbeddedCrowdGroupManager.embeddedCrowd.groups_hasMembership | Embedded Crowd Membership |
com.atlassian.crowd.embedded.atlassianuser.EmbeddedCrowdGroupManager.embeddedCrowd.repositories | Embedded Crowd Group Repository |
com.atlassian.crowd.embedded.atlassianuser.EmbeddedCrowdUserManager.embeddedCrowd.users | Embedded Crowd Users |
com.atlassian.crowd.embedded.atlassianuser.EmbeddedCrowdUserManager.embeddedCrowd.groups_getGroupsForUser | Embedded Crowd User Groups (User Side) |
com.atlassian.crowd.embedded.atlassianuser.EmbeddedCrowdUserManager.embeddedCrowd.repository | Embedded Crowd User Repository |
com.atlassian.crowd.embedded.atlassianuser.EmbeddedCrowdUserManager.embeddedCrowd.users_ro | Embedded Crowd User Read-Only Flags |
com.atlassian.crowd.embedded.atlassianuser.EmbeddedCrowdPropertySetFactory.propertysets | Embedded Crowd Properties |
com.atlassian.confluence.schedule.ScheduledJobStatus | Scheduled Job Status |
The following suggestions are general guidelines. In cases of large databases, 20-30% of the size of the table may be unnecessarily large. Check the effectiveness and Percent Used categories in the cache for more specific assessments. |
com.atlassian.confluence.core.ContentEntityObject (known as Content Objects cache)select count(*) from CONTENT where prevver is null.com.atlassian.confluence.core.ContentEntityObject.bodyContents (known as Content Body Mappings cache)select count(*) from CONTENT where prevver is null.com.atlassian.confluence.security.PermissionCheckDispatcher.isPermitted() (known as User Authorized URLs cache)com.atlassian.crowd.model.user.InternalUser (known as Embedded Crowd Internal User cache) should be set to the number of users you have in the internal directory. You can discover this number by using the following SQL:
SELECT COUNT(*) FROM cwd_user u JOIN cwd_directory d ON u.directory_id = d.id AND d.directory_name = 'Confluence Internal Directory'; |
com.atlassian.confluence.user.crowd.CachedCrowdUserDao.USER_CACHE (known as the Embedded Crowd Users cache) should be set to the number of rows in the cwd_user table.
SELECT |
com.atlassian.confluence.security.SpacePermission (known as Space Permissions (by ID) cache)select count(*) from SPACEPERMISSIONS.After you have made changes to your cache config, doing a follow up on the changes in the next week or after the expected performance spike would be important.
Make sure that you take a screenshot of the cache statistics before and after the change. Then compare them with the cache statistics in the later period where performance improvement is expected.
You can monitor what's in the cache by using a JSP included in the Confluence distribution. Browse to <base-URL>/admin/cachecontents.jsp to monitor the cache contents.