Support Article
Application performance decreases over a period of time
Summary
Performance degrades over a period of time and the system takes longer time for processing requests. Restarting the application server instance resolves the behaviour.
Error Messages
Thread[http-bio-8080-exec-2,5,main]
sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireNanos(AbstractQueuedSynchronizer.java:929)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireNanos(AbstractQueuedSynchronizer.java:1245)
at com.pega.jsr166backport.java.util.concurrent.locks.ReentrantLock.tryLock(ReentrantLock.java:422)
at com.pega.pegarules.session.internal.mgmt.base.RequestorThreadSync.lockAttempt(RequestorThreadSync.java:408)
at com.pega.pegarules.session.internal.mgmt.PRRequestorImpl.lockAttempt(PRRequestorImpl.java:860)
…
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)Steps to Reproduce
There is no specific use case to replicate the behaviour. Root Cause
The enclosed are the observations from the PegaRULES and PegaALERT files:
- System was appearing to be slow due to the increased browser response time, indicated by the huge number of PEGA0001 alerts followed by PEGA005. PEGA0005 alerts are due to the database query taking longer time to execute PC_EVENTS table. It’s a news feed table for business events information occurring within the PRPC instance. Items are created either by Complex Event Processing or Rule saves; other business process may add instances to this table. This table supports the Designer Studio’s What’s Happening display, RSS feed and the Recent Actions gadget.
- Alerts indicating queries being executed from the cache tables taking longer time to execute.
- PegaRULES logs indicating the thread dumps while accessing the connections from the connection pool.
The below thread dumps are observed when there are any database operations like truncation or deletion and the database statistics are not updated.
Thread[http-bio-8080-exec-2,5,main]
sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireNanos(AbstractQueuedSynchronizer.java:929)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireNanos(AbstractQueuedSynchronizer.java:1245)
at com.pega.jsr166backport.java.util.concurrent.locks.ReentrantLock.tryLock(ReentrantLock.java:422)
...
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
Resolution
Perform the below changes:
1. Truncate the PC_EVENTS table by taking the database table back-up and recreating the indexes on the table.
2. Enclosed prconfig.xml settings are recommeneded to keep the user data in the cache for a little longer configured time to avoid frequent querying from database.
<env name="fua/global/instanceCountLimit" value="40000" />
<env name="fua/shared/instanceCountLimit" value="39000" />
<env name="fua/personal/instanceCountLimit" value="38000" />
<env name="conclusioncache/fieldvalue/minimumsize" value="2000" />
3. Perform the database statistics update for all the tables considering recent updates to the tables.
Published August 14, 2015 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.