File Attachments slowness
Recently upgraded Pega from v6 to v7.1.9. Using Oracle database + IBM Websphere.
Post upgrade it was observed that ootb Add Attachment functionality has degraded in performance. A normal 5MB file took nearly 5 mins to attach to the case. Same file would have taken few seconds ( <10s ) prior to upgrade.
Troubleshooting:
- Found that Write To BLOB is specifically slowing down the process; refer attachment.
- Verified that below OOTB setting is not overridden. So default max file upload size is intact.
prconfig/initialization/maximumfileuploadsizemb/defaultLooking for suggestions to resolve this performance issue in Pega 7.
Issue was identified with the time taken to decompress data in memory (rather than the database commit). Root cause was found with the JVM argument setting for Garbage Collection policy. Apparently a known issue to IBM ( since June 2016 ), rather than setting the policy mode to :balanced, it should be set to :gencon
After making this change, the performance issue with OOTB file attach feature has been resolved.
This does contradict to some articles from both IBM and Pegasystems on making use of :balanced setting in specific scenarios ( matching this one ) as being optimal. However it is believed that IBM will be reviewing Websphere 8.5 version going forward to address this behaviour.
-Xgcpolicy:gencon is the default garbage collection policy starting in Java 6.26 (WAS 8) - it is a copy collector in the nursery area and a mark-sweep-compact collector in the tenured area. Previously, the default policy is -Xgcpolicy:optthruput.