How to avoid performance degrade when PRPushServlet feature is enabled ?
When Performance degrades on using PRPushServlet and if the push feature is not required for the application , we are aware that we can disable the push servlet features by doing the below configuration change.
Disable the Push feature by setting the following Dynamic System Setting:
Owning Ruleset: Pega-Engine
But eventually what is the solution to avoid the performance degrade when we enable the PRPushServlet feature for the given application? Any recommendation or best practices ?
Any thoughts or inputs on this ?
Thanks in advance.
***Edited by Moderator: Pallavi to update platform capability tags***
What is the performance issue you are seeing? could you please elaborate with more details and share your stack (WAS/JBOSS/Tomcat/WebLogic and load balancer details or any startup logs?
Push feature is a technology upgrade to improve scaling and publish messages from server to browser, there are many out-of-the-box features that use Push to deliver messages.
Brief technical overview about request/response for Push:
Many of the application/web servers support JSR356 or Servlet 3.0 features. Either of these features will not hold any thread resource at the server for longer period. If server and load balancer support WebSockets (JSR356) then WebSocket will be established otherwise framework will fallback to Long-Polling, even with long-polling for every 60 seconds a long-polling request will be sent from the browser and at the server if the request has any messages to be delivered it will immediately by sending the response. If there are no messages the request will be suspended for 60 seconds, this means thread resources will be released, and only when messages have to be sent the thread will be used, this feature is called Async Servlet request processing. With Push, in our internal performance testing, we were able to deliver thousands of messages without any performance impact.