You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

How to Diagnose Server Performance Issues

Use the following sections as a diagnostics checklist to investigate server performance issues. 

Run performance_analysis.py

The first step in diagnosing server performance issues is to run the performance analysis python script, performance_analysis.py. 

In most cases, you need access to the server file system to run this script.  However, in any release later than 2019_01 dated after r195525 2019/08/01, it is possible to run the script through a button in the Administrator Console on the Debugging > Performance screen:


If your system is running an earlier release, you can run the script manually from the command line.  Download the script here: https://www.agiloft.com/public/performance_analysis.py.

This script is designed to identify the specific activities that may be causing performance problems. It checks the CPU and memory utilization and produces a summary of events and activities for the day. The summary can help determine if an incorrectly configured rule or action should be further investigated as a potential cause of performance issues.

When it is run from the admin console, it captures activities since 12:01am.  It is possible to configure the time frame to use a different starting point when running the script manually.

Additional Steps for Self-hosted Customers

The following sections are helpful to investigate server performance issues for customers who host their  Agiloft instance(s) on their own servers. 

Verify the Hardware Configuration

It is important to check the hardware configuration to verify that it follows Agiloft System Requirements for hardware. Then run a performance test through the Administrator Console to validate the hardware configuration.  See Performance Tuning for additional details on this performance test and other setup that can affect performance.  

CPU and Memory Utilization

To further investigate any CPU and memory utilization issues reported by the performance_analysis.py script, and to determine if a third-party application is taxing those resources, use the following techniques, depending on your operating system:

  • For Linux servers, use the “uptime”, “top” and “free” commands.
  • For Windows servers, use the Task Manager or the Resource Monitor.

CPU and memory utilization regularly fluctuate. When investigating performance issues, look for applications that consistently consume CPU resources or RAM on a server.

If you determine that a third-party application is responsible for the high load or memory utilization, then review the logs or dumps for that application.

Run Agiloft diagnostics

Jboss is the primary process for the Agiloft application. On Linux servers, the process appears as “java”. On Windows servers it appears as “ewjboss”.  If a performance problem occurs while executing a particular set of steps in the UI, repeat the steps and take a Jboss thread dump in tandem by running the following command on the server as root or administrator:
[AGILOFT_HOME]/bin/ew-control -d tr
Substitute the directory where   Agiloft is installed for [AGILOFT_HOME].

Take two or three thread dumps to isolate the cause.

If the Agiloft logs show memory related problems, such as "OutOfMemory" errors, then a heap dump may be necessary.

Heap dumps are resource intensive and can take hours to complete. Either run them outside of business hours or be ready to kill the operation if it is severely affecting performance.

To perform a heap dump, run the following command on the server as root or administrator:
[AGILOFT_HOME]/bin/ew-control -d hp
Substitute the directory where Agiloft is installed for [AGILOFT_HOME].

Steps for All Customers

If the previous diagnostics do not reveal the cause of the performance issue, then it should be escalated for further assistance.

Submit Performance Issues for Further Investigation

Submit a support ticket with the following information:

  • Steps to reproduce the issue.
  • Knowledgebase credentials.
  • Impact assessment: how many people is this performance issue affecting?
  • Attach the thread dump and logs. If the server is hosted by Agiloft, grant access to the location of the logs and document the location in the ticket.


  • No labels