1. Regularly Cleanup BPM operational data - code/snapshots, instances, documents, messages, lucene indexes, PDW data.
2. Use a Caching Reverse Proxy to serve repeating static assets from caches.
3. Minify JS/CSS and optimize your artifacts.
4. Use Process Monitor Regularly and during performance incidents to identify bottleneck processes/services/steps.
5. Analyze Production Instance Data to identify bulky variables/services/bpds which are used the most and affect the system most, using Execution context size queries.
6. Have a policy to not allow artifacts/services/variables/bpds above a certain size to be deployed, build it as part of the governance.
7. Optimize Load balancer/IHS Server to compress the delivery of content and set high browser caching directives.
8. Use Accelerator/Pivot Tables for speeding up Business Data Searches.
9. Check for excessive logging.
10. Disable Autotracking run queries to check for Auto-tracked BPDs they put a lot of load on the servers. Especially if you have upgraded from versions which had auto-tracking turned on by default.
11. Limit Level of Business Data Exposure.
12. Refrain from polling BPD instances which act like listeners and always run in background, let scheduled timer UCAs do the job.
13. Install monitoring mechanisms like the Process Application we provide to check the response levels of integrations e.g. HTTP Servers, REST APis, LDAP Servers, Email Servers, ODM Servers, Rule Applications, Event Managers etc because one single integration lagging behind can cause a cascade affect on the entire system
14. Use Timeouts for integrations so that one integration failing does not create a cascade affect.
15. Use log monitoring systems e.g. splunk to get alerted early on of system/websphere issues.
16. Check if Websphere is configured to use all the CPUs/threads
17. Check if Load balancing is working as expected and evenly uses all the nodes.
18. Setup automatic cleaning of unnamed snapshots from Process Center and unused snapshots from Process Server
19. Check for duplicate schedulers for the same service across applications or with the same application.
20. Run a scan of all the code to check for LSW_ to see if developers have sneaked in Process Server queries which can cause locks in production and even worse updates to process server DB e.g. updating the due date/priority of tasks directly.
21. Check to see if there is a smart ass autosave feature on the UI which will cause data to disappear from user screens and also cause unnecessary sustained load on the server.
22. if Bulk instances have to be created spread out the invocation over a reasonable duration so that, the CPU does not spike and cause clogs for other operations.
We have created a Process Application which assists in the above tasks, we are providing it free for all registerd bpm.tips users, it can be downloaded from this location