Support Article

Performance issue in REST service

SA-36804

Summary



User is on Pega 7.1.6 and reported performance issues in a REST service hosted in Pega.

After restart of the application server, the performance of the REST service is good but it degrades after 12 hours of run and slowly the response time goes on increasing after that.

Monitoring of the service calls using a third party tool called AppDynamics suggested the performance bottleneck to be in the below Java method call which is found to be taking maximum time during a service call.

com.pega.pegarules.priv.collections.map.ConcurrentMostRecentlyUsedMap.countingSortRemove


Error Messages



Not Applicable


Steps to Reproduce



Not Applicable


Root Cause



A defect in Pegasystems’ code or rules is identified as root cause of this issue.

Resolution



Follow the below steps:
  1. Apply HFix-33595.
  2. Set the prconfig entry "collections/mru/PruneToSoftPolicy" to true. If failure of entry handles from getting pruned is causing the property reference cache size to grow then this hot fix will help to resolve the issue.
  3. If the property reference cache size is found to be still growing even after applying the hot fix then large no of unique references with subscripts are most likely causing the cache size to grow. In such a scenario set the prconfig entry "collections/mru/PruneToSoftPolicy" to false and re-verify the issue.
  4. If the issue is unresolved after folllowing above steps, contact Pega Support with the below information for root cause analysis:
​A. Screenshot of the collections/mru/PropertyReference MRU Report from SMA (Advanced->Reports->Most Recently Used Caches Report) .
B. Enable debug logging for logger "com.pega.pegarules.data.internal.clipboard.PropertyReferencePoolImpl" and provide corresponding debug logs.
C. Execute the below steps to generate dump of property reference pool and provide them for analysis:
1.Call the PegaAPI named "dumpPropertyReferencePool" in a Java Step from an activity. Example: ((PegaAPI)tools).dumpPropertyReferencePool();
2. Execute the activity calling this PegaAPI. It will dump the property pool references in a text file in Pega temp directory. The file will be created with a name of format "PropRefPool_<random number>.txt".
3. When the issue related to growth in property reference pool cache size is reproducible, run the activity at various intervals to dump the content of the property references. Share the text file (PropRefPool_<random number>.txt) created in the Pega Temp Directory for analysis.

Published April 20, 2017 - Updated May 8, 2017

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.