Skip to content

Instantly share code, notes, and snippets.

@Chetan496
Last active January 19, 2024 04:34
Show Gist options
  • Save Chetan496/df47e023b5a787086ac8cb86559a3aa1 to your computer and use it in GitHub Desktop.
Save Chetan496/df47e023b5a787086ac8cb86559a3aa1 to your computer and use it in GitHub Desktop.
Appian Performance checklist

Points/Questions to investigate the performance

What kind of performance issues? Is it too much of memory consumption, is it page load slow etc.

Performance Issues can be due to application slowness - due to the way the developr has implemented OR it could be due to factors not associated with the implementation

  1. Was Appian health check run on all the applications in the Appian env? Appian Health Check is an automated way to get information about potential issues in the Appian applications.

  2. If page load is slow, then consider caching static content by using web server in conjunction with the application server.

  3. Are the old process model versions being cleaned up? Are the versions of old rules and constants being cleanedup regularly?

  4. Are Data Management settings configured for all process models? Are the processes being deleted/archived regularly?

  5. How many nodes on average does each process model have?

  6. How many total active process instances are present on the Appian env? Too many process instances will occupy too much of memory? Load is proportional to average number of process instances * average num of nodes in each process instance.

  7. How long are the process life cycles? How many userinput tasks on average are present in each process instance and how on average what are their average duration of completion time? If the process lifecycle is too long, consider splitting the process into smaller sub process models.

  8. On average how many pvs are being used in each process instance?

  9. Are certain engines failing repeatedly? Is there a pattern? If yes, then which ones?

  10. Is there a possibiltiy to make certain subprocess calls asynchronous? If yes, doing so could avoid overloading a particular Appian engine.

  11. Are there scheduled and long running background processes? Are such processes pulling the data from DB which has lot of rows or pullling the data from the View? If yes, could they be divided into smaller subprocesses?

  12. If a process model has too many PVs, can you consider marking them "Hidden"? This applies especially to PVs which are cdt arrays and which are frequently updated over the course of the process lifecycle. If a PV is marked as Hidden, Appian will not capture process history of that PV and this avoids extra CPU and memory cycles.

  13. Are you using looping/spawning too much in process instances? If yes, then can you use looping functions or allocate such tasks to the Database Views?

  14. Always prefer queryEntity over query rules

  15. Does the DB have too many Views? Are the Views or the underlying tables indexed?

  16. Are slow loading SAIL interfaces tested using the performance View in Interface designer?

  17. Are you using Send Message service? If yes, can you instead consider using the Start Process smart service

  18. If its on-premise, can you check what amount of free RAM is remaining in the system and which processes are consuming the major bulk of the RAM? Are you sure that Appian is the only application that is running in the application server?

  19. Are there very complex queryEntites being used on the SAIL interface?

  20. Are there too many Web APIs exposed which are being consumed by external system

The most likely cause for performace issues is memory in-efficient process models. Check the article https://forum.appian.com/suite/help/16.3/Creating_Memory_Efficient_Models_Best_Practices.html

Check all the Anti-Patterns beig used in the application

Have you used the process-sizing.bat script to track the memory-efficiency of the process model?

Are there too many quick tasks?

Are you using too many script tasks between two user input tasks with activity chaining? If yes, can you avoid it by performing most operations in the user input task outputs?

also check: https://forum.appian.com/suite/help/16.3/Project_Implementation_Best_Practices_Checklist.html

Log-Files of Interest

check the prepare, execute and transform times. If the execute time is greater then the DB is taking long to execute the query

  1. perf_monitor_rdbms.csv
  2. expressions_trace.csv
  3. sail_trace.csv
  4. sail_details.csv

Performance Questionnaire by Appian

https://forum.appian.com/suite/help/16.3/playbook/worksheets/Appian_Performance_Testing_Questionnaire.docx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment