Submit a ticketCall us
Home > Success Center > Database Performance Analyzer (DPA) > DPA - Knowledgebase Articles > Scale DPA for number of monitored databases

Scale DPA for number of monitored databases

Updated September 5, 2018

Overview

SolarWinds DPA is a scalable solution that can grow as your number of monitored database instances increases. This article describes how to configure DPA for scalability. 

Note: Other components of your monitoring environment also need to be able to handle increased load, such as the repository database and server, the SolarWinds DPA Server machine, and the network.

Environment

  • All versions of DPA

Detail

Adjust the following settings to configure DPA to monitor up to 250 instances:

  • Java heap settings
  • Other settings in the system.properties file

Note: Do you plan to monitor more than 250 database instances? Consider using more than one SolarWinds DPA servers and Link together separate DPA servers.

Changing Java Heap Settings

By default, the maximum Java heap setting is configured to monitore up to 20 database instances. To change the maximum Java heap setting, follow the instructions in this article: Increase DPA Memory.

Change the settings to the appropriate value below:

Monitored Instances Max Java Heap Size (64-bit)
0 - 20 1024 MB
21 - 50 2048 MB
51 - 100 4096 MB
101 - 250  8192 MB

Changing Other Properties Settings

By default, other DPA properties are configured to monitor up to 75 database instances. You can increase property settings to monitor up to 250 instances.

Note: Increasing these settings puts additional load on the Repository, so only increase them if your Repository has available processing bandwidth.

  1. Edit the following file:
     installdir\iwc\tomcat\ignite_config\idc\system.properties
  2. Uncomment or add the line(s) for the properties you want to change. You can cut and paste lines from the end of this article. The properties are listed in the table below. Recommended values are listed in the following sections:
  3. Update each property to its new value. If multiple property entries are listed (below) for a single setting, update all property entries to the same value.
  4. Save the file.
  5. Restart the SolarWinds DPA Server.
Setting Property Entry In system.properties
Min Repo Connection Pool Size com.confio.idc.repositoryDataSourceFactory.minPoolSize
Max Repo Connection Pool Size com.confio.idc.repositoryDataSourceFactory.maxPoolSize
Trending Thread Pool Size com.confio.idc.services.trendExecutor.maxPoolSize com.confio.idc.services.trendExecutor.corePoolSize
Cleaner Thread Pool Size com.confio.idc.services.lowPriorityExecutor.maxPoolSize com.confio.idc.services.lowPriorityExecutor.corePoolSize
C3PO Helper Thread Count com.confio.idc.repositoryDataSourceFactory.numHelperThreads
SQL Stats Connection Permits com.confio.idc.repositoryDataSourceSemaphore.permits
DB Manager Queue Capacity com.confio.idc.databaseManagerExecutor.queueCapacity

Property Settings when the repository is on a different server than DPA

If your repository has the available processing bandwidth, you can increase the following settings to monitor more than 75 database instances.

Monitored Instances Min Repo Connection Pool Size Max Repo Connection Pool Size Trending Thread Pool Size Cleaner Thread Pool Size C3PO Helper Thread Count SQL Stats Connection Permits DB Manager Queue Capacity
0 - 75 10 200 10 5 25 20 250
76 - 150 20 300* 15 10 30 25 300
151 - 200 30 400* 20 15 40 30 400
201 - 250 40 500* 25 20 50 35 500

*Make sure your repository database is capable of handling up to this many connections.

Property Settings when DPA and the repository are on the same server

Increase the following settings to enable DPA to monitor more than 75 database instances. Increasing these settings enables DPA to do more processing in parallel, which in turn puts additional load on the repository. Because DPA and the repository are "co-resident", increased repository load completes with increased DPA processing, and might cause DPA processing to get behind. Indications of this include:

  • The number of repository connections equals the maximum pool setting.
  • The DPA UI is unresponsive at times.
  • The DPA logs contain "Task rejected" errors.

In a co-resident situation, it is therefore necessary to limit the amount of parallel processing done by DPA. The following table shows values that either decrease or have modest increases as the number of monitored instances increases.

Note: The decreasing values shown here are guidelines, and can vary based on the processing power of the server that is running DPA and the repository. Less-powerful machines can require lower values.

Monitored Instances Min Repo Connection Pool Size Max Repo Connection Pool Size Trending Thread Pool Size Cleaner Thread Pool Size C3PO Helper Thread Count SQL Stats Connection Permits DB Manager Queue Capacity
0 - 75 10 200 10 5 25 20 250
76 - 150 20 300* 15 10 30 20 300
151 - 200 30 400* 20 15 40 20 400
201 - 250 40 500* 20 15 50 20 500

*Make sure your repository database is capable of handling up to this many connections.

Here are the lines for each scale settings needed. This can be cut pasted to the file and the needed lines uncommented.

##################################################################

#Scale DPA settings 0-75

##################################################################

#com.confio.idc.services.trendExecutor.maxPoolSize=10

#com.confio.idc.services.trendExecutor.corePoolSize=10

#com.confio.idc.services.lowPriorityExecutor.maxPoolSize=5

#com.confio.idc.services.lowPriorityExecutor.corePoolSize=5

#com.confio.idc.repositoryDataSourceFactory.numHelperThreads=25

#com.confio.idc.repositoryDataSourceSemaphore.permits=20

#com.confio.idc.databaseManagerExecutor.queueCapacity=250

#com.confio.idc.repositoryDataSourceFactory.minPoolSize=10

#com.confio.idc.repositoryDataSourceFactory.maxPoolSize=200

 

##################################################################

#Scale DPA settings 76-150

##################################################################

#com.confio.idc.services.trendExecutor.maxPoolSize=15

#com.confio.idc.services.trendExecutor.corePoolSize=15

#com.confio.idc.services.lowPriorityExecutor.maxPoolSize=10

#com.confio.idc.services.lowPriorityExecutor.corePoolSize=10

#com.confio.idc.repositoryDataSourceFactory.numHelperThreads=30

#com.confio.idc.repositoryDataSourceSemaphore.permits=20

#com.confio.idc.databaseManagerExecutor.queueCapacity=300

#com.confio.idc.repositoryDataSourceFactory.minPoolSize=20

#com.confio.idc.repositoryDataSourceFactory.maxPoolSize=300

 

##################################################################

#Scale DPA settings 151-200

##################################################################

#com.confio.idc.services.trendExecutor.maxPoolSize=20

#com.confio.idc.services.trendExecutor.corePoolSize=20

#com.confio.idc.services.lowPriorityExecutor.maxPoolSize=15

#com.confio.idc.services.lowPriorityExecutor.corePoolSize=15

#com.confio.idc.repositoryDataSourceFactory.numHelperThreads=40

#com.confio.idc.repositoryDataSourceSemaphore.permits=20

#com.confio.idc.databaseManagerExecutor.queueCapacity=400

#com.confio.idc.repositoryDataSourceFactory.minPoolSize=30

#com.confio.idc.repositoryDataSourceFactory.maxPoolSize=400

 

##################################################################

#Scale DPA settings 200-250

##################################################################

#com.confio.idc.services.trendExecutor.maxPoolSize=20

#com.confio.idc.services.trendExecutor.corePoolSize=20

#com.confio.idc.services.lowPriorityExecutor.maxPoolSize=15

#com.confio.idc.services.lowPriorityExecutor.corePoolSize=15

#com.confio.idc.repositoryDataSourceFactory.numHelperThreads=50

#com.confio.idc.repositoryDataSourceSemaphore.permits=20

#com.confio.idc.databaseManagerExecutor.queueCapacity=500

#com.confio.idc.repositoryDataSourceFactory.minPoolSize=40

#com.confio.idc.repositoryDataSourceFactory.maxPoolSize=500

 
Last modified

Tags

Classifications

Public