WPS: WebSphere Portal: Tuning English: Difference between revisions
Line 116: | Line 116: | ||
[http://www-10.lotus.com/ldd/portalwiki.nsf/dx/Improve_PZN_Rule_Performance_using_Include_Only Improving IBM Web Content Manager Personalization rule performance using Include Only] | [http://www-10.lotus.com/ldd/portalwiki.nsf/dx/Improve_PZN_Rule_Performance_using_Include_Only Improving IBM Web Content Manager Personalization rule performance using Include Only] | ||
The following trace will show PZN query execution times: | The following trace will show PZN query execution times: | ||
com.ibm.websphere.personalization.resources.cm.CmResourceManager=all | com.ibm.websphere.personalization.resources.cm.CmResourceManager=all | ||
=== Tool: SplitSecond === | |||
Also you can use SplitSecond which is a tool that will track personalization queries and show it's duration, frequency, etc. | |||
This could help you to identify critical queries that need to be adjusted. | |||
=== Traces ==== | |||
You can enable traces to check, to check query time: | |||
com.ibm.icm.jcr.query.QueryImpl=finest:com.ibm.icm.ci.query.impl.ResultSetProcessor=finest:com.ibm.icm.da.portable.query.*=finest: | |||
com.ibm.icm.da.portable.common.sql.DefaultPConnection=finest:com.ibm.icm.da.portable.common.sql.PPreparedStatement=finest: | |||
com.ibm.icm.da.portable.common.sql.PStatement=finest | |||
Another trace: | |||
com.ibm.icm.jcr.query.*=all: com.ibm.icm.da.portable.query.*=all: com.ibm.icm.ci.query.impl.*=all |
Revision as of 18:58, 17 December 2013
Tuning
This wiki will be creating a series of articles outlining best practices for IBM WebSphere Portal environment.
Planing
I ask you to always return to this article will be updating as usual.
Steps
- Have an implementation plan
- Know your infrastructure
- Divide the compounds
- Platform
- Network report
- Have a baseline reference
Portal Tuning Guide
Make the default tuning based on WebSphre Portal Performance Tuning Guides
Important:
- Enable servlet caching
- Enable portlet fragment caching
- For critical pages, for each WCM Content Viewer portlet we configured the Portlet Cache Options in order to share accross users.
JVM Tuning
Web Content Manager
Personalization Services Tuning
Improve the performance of the personalization (PzN) function in WebSphere Portal.
Important: PersonalizationService.properties file is not managed by the DMGR, you need to change in all servers in the cluster.
This file is located at this location <profile root>/PortalServer/config/config/services/PersonalizationService.properties
Example: /opt/IBM/WebSphere/wp_profile/PortalServer/config/config/services/PersonalizationService.properties
rulesEngine.cache.timeout
The number of seconds before an entry in the cache expires. Increasing the length of the cache timeout if content doesn't change rapidly (what is the case for this customer), the default value is 300.
rulesEngine.cache.timeout=36000
rulesEngine.cache.enabled.collectionName AND rulesEngine.cache.timeout.collectionName
- rulesEngine.cache.enabled.collectionName = The variable collectionName is the fully qualified path to the resource collection in Personalization.
- rulesEngine.cache.timeout.collectionName = The same as rulesEngine.cache.timeout, except that this property applies to a specific resource collection.
rulesEngine.cache.enabled.ibmpznnt:rule=true rulesEngine.cache.timeout.ibmpznnt:rule=36000 rulesEngine.cache.enabled.ibmpznnt:campaign=true rulesEngine.cache.timeout.ibmpznnt:campaign=36000 rulesEngine.cache.enabled.ibmpznnt:ruleMappings=true rulesEngine.cache.timeout.ibmpznnt:ruleMappings=36000 rulesEngine.cache.enabled.ibmpznnt:resourceCollection=true rulesEngine.cache.timeout.ibmpznnt:resourceCollection=36000 rulesEngine.cache.enabled.ibmpznnt:applicationObject=true rulesEngine.cache.timeout.ibmpznnt:applicationObject=36000 rulesEngine.cache.enabled.ibmpznnt:uuidPathConversion=true rulesEngine.cache.timeout.ibmpznnt:uuidPathConversion=36000 rulesEngine.cache.enabled.ibmpznnt:jcrNodeType=true rulesEngine.cache.timeout.ibmpznnt:jcrNodeType=36000
rulesEngine.attributeBasedAdmin.enableCaching
Use this property to determine whether or not to cache the results of rules used in attribute based admin.
rulesEngine.attributeBasedAdmin.enableCaching=true
rulesEngine.user.nestedGroupLookup
In addition, there is an undocumented property which can be set to false to speed up PZN. This should only be done if (and only if) nested groups are NOT used in the authorization ACL lists in Portal
rulesEngine.user.nestedGroupLookup=false
rulesEngine.bypassWebContentLink
Use this property to bypass the return of web content links in results. By default PZN returns results for content links as well as items, it is recommend disables support for links, queries will run about twice as fast.
rulesEngine.bypassWebContentLink=true
WCM_WCMConfigService
In the DMGR console go to Resources -> Resource Environment Providers (REP) -> WCM_WCMConfigService
user.cache
Check for user.cache is true
user.cache=true
connect.moduleconfig.ajpe.contentcache.defaultcontentcache AND connect.moduleconfig.ajpe.contentcache.contentcacheexpires
Depending on how your users will access Portal (authenticated or public) you may want to enable this cache settings by adding/editing custom properties:
connect.moduleconfig.ajpe.contentcache.defaultcontentcache=SECURED (Or USER for public content). connect.moduleconfig.ajpe.contentcache.contentcacheexpires=REL 1D (Or the value you consider correctly).
Include Only rule
Review the queries you are using and try to improve their implementation. Start for the queries that are used in the more critical pages.
Improving IBM Web Content Manager Personalization rule performance using Include Only
The following trace will show PZN query execution times:
com.ibm.websphere.personalization.resources.cm.CmResourceManager=all
Tool: SplitSecond
Also you can use SplitSecond which is a tool that will track personalization queries and show it's duration, frequency, etc.
This could help you to identify critical queries that need to be adjusted.
Traces =
You can enable traces to check, to check query time:
com.ibm.icm.jcr.query.QueryImpl=finest:com.ibm.icm.ci.query.impl.ResultSetProcessor=finest:com.ibm.icm.da.portable.query.*=finest: com.ibm.icm.da.portable.common.sql.DefaultPConnection=finest:com.ibm.icm.da.portable.common.sql.PPreparedStatement=finest: com.ibm.icm.da.portable.common.sql.PStatement=finest
Another trace:
com.ibm.icm.jcr.query.*=all: com.ibm.icm.da.portable.query.*=all: com.ibm.icm.ci.query.impl.*=all