Analyzing thread statistics


Thread statistics show how the activity is spread across threads on the AR System server. Analyzing thread statistics can be useful in understanding the load distribution of threads during heavy activity. It is not as useful when looking at a development server or investigating a particular operation that is slower than expected.

Before you begin

Before analyzing thread statistics, make sure that you have performed the following tasks:

To analyze thread statistics

  1. Click Thread Statistics.
    API Statistics by Thread ID is displayed.
  2. Compare the number of fast, list, and private queues listed in Thread Statistics with the minimum and maximum configured for the system.
    AR System Log Analyzer reports queues in use during the time captured in the log. If logs are enabled for at least 30 minutes, it indicates the number of fast, list, and private queues running on the system.
  3. Review the value of Max Idle Time for each thread.
  4. If all of the following points are true, consider decreasing the minimum or maximum threads configured for the queue:
    • The value of Max Idle Time is greater than 3 seconds for most threads in the queue.
    • Logs were captured on a production server during peak load times.
    • The activity that the logs captured is representative of typical user activity.
  5. If the Max Idle Time for a few threads is larger than 30 seconds, investigate the issues using the thread logs.
  6. If all of the following points are true, consider increasing the maximum number of threads:
    • Max Idle Time is low.
    • The number of gaps is less than 10% of the Count of API calls on each thread.
    • Top N API calls run for less than 10 seconds.
    • The server has sufficient processors to extend the number of threads.

Example

An administrator uses AR System Log Analyzer to investigate system performance issues.

Under API Aggregates, the administrator clicks Top N and reviews the longest-running individual API calls. All of the API calls take less than 2 seconds.

The administrator clicks Thread Statistics and sees the following output:

threadstats.png

The Avg Idle Time for the Admin thread is large, but this is expected because there are no administrative operations on the server during the test period.

The Avg Idle Time for fast threads is small, and the fast API operations are well distributed across the fast threads.

The list threads show a large Avg Idle Time. However, the number of API calls that the list threads process is also much lower than that for the Fast threads. This indicates that during the test period captured in the logs, the activity consisted primarily of submit and modify operations (and fewer query operations). Further testing with a typical user workload might be required to identify whether too many list threads are defined.

After verifying that the AR System threads are configured according to the guidelines, the administrator decides there is no need to adjust the thread queues defined.

Where to go from here

Assessing-relevance-of-performance-issues

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*