The main causes of low performance of ELMA server and ways to prevent them
This article describes the main causes of low performance of ELMA server and how to prevent and fix issues.
These are the main causes of low performance:
1. The server hardware does not meet the requirements. ELMA editions have minimum technical requirements for the RAM and the CPU core count. Also the browser settings on the client computer matter (for example, overflown cache and drive characteristics, such as IOPS).
The recommended system requirements are different for the three editions of ELMA: Community, Standard, and Enterprise. You can find the system requirements on our website: http://www.elma-bpm.com/system-requirements-new/.
Thus, you should always make sure that the system hardware is adequate for the number of system users.
2. ELMA and DBMS are installed on the same server. If the server meets the ELMA technical requirements, no issues should arise during the data exchange between the system and database (applies in most cases to ELMA Community and Standard). However, if you use ELMA Enterprise and the capacity of the server and its components is insufficient, then problems may occur. Therefore, you should always monitor the CPU utilization and available RAM (by using the task manager, resource monitor, and external monitoring systems: Zabbix, HP Operations Manager, IBM Tivoli, MS SCOM). If the server, network and drive loads are high, use server clusters.
3. Numerous background tasks are running. Several demanding background tasks running simultaneously (loading data from external sources, synchronizing with other programs, analyzing indicators, calculation functions) may significantly affect the performance of the ELMA server. To prevent such issues, first, you should monitor the load using the task scheduler (in ELMA Web Application go to Administration - System – Scheduler) and effectively schedule tasks, and stop low priority tasks is possible. Second, you should monitor background tasks, which are not directly connected to the functioning of ELMA by using standard monitoring tools.
4. Full-text search objects are being reindexed. Full-text search allows quickly searching objects in ELMA. The full-text search consumes a lot of resources and therefore may slow down the system. The database index building is also a demanding process. Therefore, it is recommended to start database re-indexation when the server load is the lowest (during the non-working hours).
5. Process monitor cache recalculation. If the system performance is insufficient (for example, slow loading of pages), you may need to clear the partial recalculations queue and fully update the cache. This measure reduces the number of partial recalculations, that cause high load on the system and thus increases the system capacity. To learn more about cache recalculation, read ELMA Help.
6. DBMS configuration. The DBMS configuration is important when exchanging large amounts of data with the database. A configuration includes:
- network settings;
- backup settings;
- correspondence to the number of users, simultaneously working with the database;
- data storage method (file/client-server);
- optimization of the database indexing methods (how indexing is configured, is full or partial table scanning performed upon a query, etc.).
7. Unoptimized configuration, implemented in ELMA. For example, if a script requests a lot of data, it creates a high load on the database server. In this case, you need to enhance the performance of the database server.
8. SQL server settings. You should monitor the load of the SQL server and optimize it. SQL Server Management Studio allows administering the SQL server components and the Activity Monitor tool helps to control the current server load (what tasks are running, how many users are connected, etc.).
9. ELMA works with the Firebird DBMS. ELMA works using a multicore CPU on the server (one core takes the web server, another core takes the Firebird DBMS). Firebird creates service entries, whose excessive data size over time slows down the server. To solve this issue, you need to regularly delete excessive information. To learn more about ELMA configuration with the Firebird and maintaining the DBMS, read these articles: https://kb.elma-bpm.com/article-1734.html and https://kb.elma-bpm.com/article-3713.html.
10. Simultaneous execution of several transactions. When conflicting tasks simultaneously query the database, the DBMS must lock access to data for one of the queries. One of the processes must be delayed until the first process is completed and the lock is removed. For example, if a script is executed and a user/users query the table, then one of the tasks waits until the other is completed.
That is why you should choose an optimal locking strategy (identify locking levels: tables, pages, entries).
11. A page content may affect the page loading time. If the loading time is longer than expected, apply asynchronous loading of portlets (to learn more, read ELMA Help), optimize the Code portlets, limit the number of displayed elements in lists (e.g. in dynamic tables), if possible, limit the use of overloaded portlets.
12. Often performance may be lower when FindAll() and similar methods run. In this case, it is recommended that you break down a big script into a cycle of smaller operations (up to 20 per cycle). This applies to scripts triggered by events (Listener), which cannot be directly controlled.
Among other possible causes of reduced ELMA server performance are:
13. High resource usage for processing web queries, related to the network that connects a browser with the web server (for this, page generation time should be analyzed).
14. Long processing the web server. You should analyze the performance reports in the Administration section of ELMA.
15. Resource usage for data exchange between the web server and the database server and other.
If you detect lower performance, we recommend that you analyze over a period when and during which activities the system works slowly. A certain page may be loading too long a specific active process is executed slowly.
Note, that each case of low performance of ELMA is specific and depends on individual settings and the server configuration and required analyzing many parameters. Therefore, it is hardly possible to provide universal recommendations.