Tuesday, May 11, 2010

How to improve performance of your WCM server

Well, it's been quite hectic last few weeks for me. Engaged in fine tuning our production environment with remote WCM content rendering. During this task I was going through many documents on performance improvement. I have jotted down few points here for ease.

Application server tinning
---------------------------
Here you need to set the min and max value for the following parameters
Web Container Thread Pool - 60/60
Data source connection Pool - JCRDB - 10/150

Cache Manager Service tuning
------------------------------
Open the CacheManagerService.properties file and modify the following values.

cacheinstance.com.ibm.workplace.searchmenu.helper.SearchMenuCacheHelper.size 5000
cacheinstance.com.ibm.wps.ac.ContainedRolesCache.size 500
cacheinstance.com.ibm.wps.ac.AccessControlUserContextCache.size 5000
cacheinstance.com.ibm.wps.ac.ApplicationRolesForPrincipalCache.size 12500
cacheinstance.com.ibm.wps.ac.AccessControlUserContextCache.lifetime 10800
cacheinstance.com.ibm.wps.ac.ExplicitEntitlementsCache.size 500
cacheinstance.com.ibm.wps.ac.ExplicitEntitlementsCache.ICM_CONTENT.size 12000
cacheinstance.com.ibm.wps.ac.ExplicitEntitlementsCache.VIRTUAL.size 500
cacheinstance.com.ibm.wps.ac.ProtectedResourceCache.size 12500
cacheinstance.com.ibm.wps.ac.ExternalOIDCache.size 12000
cacheinstance.com.ibm.wps.ac.AccessControlUserContextCache.lifetime 10800
cacheinstance.com.ibm.wps.ac.RolesCache.size 7500
cacheinstance.com.ibm.wps.ac.groupmanagement.NestedGroupCache.size 1200
cacheinstance.com.ibm.wps.datastore.pageinstance.DerivationCache.size 250
cacheinstance.com.ibm.wps.datastore.pageinstance.OIDCache.size 250
cacheinstance.com.ibm.wps.datastore.services.Identification.SerializedOidString.cache.size 500
cacheinstance.com.ibm.wps.model.content.impl.ResourceCache.size 500
cacheinstance.com.ibm.wps.model.content.impl.TopologyCache.size 500
cacheinstance.com.ibm.wps.pe.portletentity.size 250
cacheinstance.com.ibm.wps.services.cache.cachedstate.CachedStateServiceSession
Bound.cache.size 250
cacheinstance.com.ibm.wps.ac.ApplicationRoleChildrenCache.size 500
cacheinstance.com.ibm.wps.ac.ApplicationRoleDescriptorCache.size 500
cacheinstance.com.ibm.wps.ac.ApplicationRoleOIDCache.size 500
cacheinstance.com.ibm.wps.ac.ChildEntitlementsCache.size 500
cacheinstance.com.ibm.wps.ac.ExplicitEntitlementsCache.APPLICATION_ROLE.size 500
cacheinstance.com.ibm.wps.policy.services.PolicyCacheManager.lifetime 28800
cacheinstance.com.ibm.wps.model.content.impl.ResourceCache.lifetime 14400

Navigation Service Tuning
--------------------------
Open the NavigatorService.properties file and enable the public session required for rendering portlets on anonymous pages.

public.session = true

WCM object Cache settings
---------------------------
abspath 8000
abspathreverse 8000
processing 10000
session 6000
menu 500
nav 500
strategy 8000
global 100
module 100

WCM Configuration Service
---------------------------
Enable the user cache

Find the WCMConfigService.properties file under:
/PortalServer/wcm/shared/app/config/wcmservices
Set user.cache=true


3 comments:

Sourabh Sharma said...

excellent post
very helpful to create anonymous content.

Unknown said...

Hi.. for changing the cache entries, in the file initially every line is started by #. if we want to change the value, should we remove the # ?

Mihir Shah said...

@Youko: Yes, you need to remove # to make it enable.