Configuring Ignite PI for Scalability
Ignite PI is a scalable solution that can grow as your number of monitored database instances increases. This article describes how to configure Ignite 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 Ignite PI Server machine, and the network.
Required Property Settings
These property settings must be increased to scale Ignite PI above 100 monitored instances.
Note: Ignite PI is installed pre-configured for up to 100 monitored instances.
| # Monitored Instances |
Max Java Heap Size ***
|
Min Repo Connection Pool Size |
Max Repo Connection Pool Size |
| 0-100 |
512MB (=0x200) |
10 |
200 |
| 101-150 |
1024MB (=0x400) |
20 |
300 ** |
| 151-200 |
1536MB (=0x600) |
30 |
400 ** |
| 201-250 |
2048MB (=0x800) |
40 |
500 ** |
| 250+ |
* |
* |
* |
See below for instructions on changing property settings.
* Contact Confio Support (support@confio.com) if you need to exceed 250 monitored instances in a single Repository.
** Make sure your Repository database is capable of handling up to this many connections.
*** Read section Configuring Max Java Heap Size
Configuring Max Java Heap Size
The Max Java Heap Size setting can be set too high for your operating system to handle. For example, Windows requires contiguous memory space. Since Windows loads DLLs that can easily fragment memory, higher Max Java Heap Size settings can be difficult to attain. Typically, the highest setting on Windows is1536MB (=0x600), and on Solaris is 3.8GB (= 0xED8).
If the Max Java Heap Size is set too high for the operating system to handle, the Ignite PI Server will not start. You can check if this case by opening the following file:
<Ignite Home>\iwc\tomcat\logs\jakarta_service_<datestamp>.log
and looking for the following error:
[2009-09-10 13:37:56] [info] JNI Error occurred during initialization of VM
[2009-09-10 13:37:56] [info] JNI Could not reserve enough space for object heap
If you need a higher Max Java Heap Size setting than the operating system will allow, there are several solutions:
- Add memory to your server. For 32-bit Windows, this may not help since 32-bit Windows has limitations on addressable memory.
- If you are using 32-bit Windows to host the Ignite PI Server, you can change operating systems to:
- 64-bit Windows with a 64-bit JRE (see KB Article 1559 for more information)
- If none of the above is a possibility, set the Max Java Heap Size as high as you can. If that is enough to monitor (even though it does not fit into the above guidelines), and you are running Ignite PI 7.0.27 or higher, you can disable the message saying that "Ignite configuration settings are insufficient to monitor X database instances":
Open the file:
<Ignite Home>\iwc\tomcat\ignite_config\idc\system.properties
Set the property:
com.confio.idc.heap.size.check.enable = false
Note: Ignite will still warn you if heap space is getting full
For more information on this issue, you can read an article from Sun.
Additional Property Settings
** for powerful Repositories not on same machine as Ignite
These property settings can be increased to scale Ignite PI above 100 monitored instances. Increasing these settings will put additional load on the Repository, so only increase them if your Repository has available processing bandwidth.
Note: Ignite PI is installed pre-configured for up to 100 monitored instances.
| # Monitored Instances |
Trending Thread Pool Size |
Cleaner Thread Pool Size |
C3PO Helper Thread Count |
SQL Stats Connection Permits |
DB Manager Queue Capacity |
| 0-100 |
10 |
5 |
25 |
20 |
250 |
| 101-150 |
15 |
10 |
30 |
25 |
300 |
| 151-200 |
20 |
15 |
40 |
30 |
400 |
| 201-250 |
25 |
20 |
50 |
35 |
500 |
| 250+ |
* |
* |
* |
* |
* |
* Contact Confio Support (support@confio.com) if you need to exceed 250 monitored instances in a single Repository.
Additional Property Settings
** when Ignite and the Repositories are on the same machine
Ignite is installed pre-configured for up to 100 monitored instances, and property settings need to be adjusted to scale it above 100 monitored instances. Increasing these settings will enable Ignite to do more processing in parallel, which in turn will put additional load on the Repository. Since Ignite and the Repository are "co-resident", increased Repository load will complete with increased Ignite processing, and cause Ignite processing to get behind. Indications of this include:
- The number of Repository connections equals the maximum pool setting.
- Ignite UI is unresponsive at times.
- "Task rejected" errors in the Ignite logs.
In a co-resident situation, it is therefore necessary to limit the amount of parallel processing done by Ignite. 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 Ignite and the Repository (i.e. less-powerful machines can require lower values).
| # Monitored Instances |
Trending Thread Pool Size |
Cleaner Thread Pool Size |
C3PO Helper Thread Count |
SQL Stats Connection Permits |
DB Manager Queue Capacity |
| 0-100 |
10 |
5 |
25 |
20 |
250 |
| 101-150 |
15 |
10 |
30 |
20 |
300 |
| 151-200 |
20 |
15 |
40 |
20 |
400 |
| 201-250 |
20 |
15 |
50 |
20 |
500 |
| 250+ |
* |
* |
* |
* |
* |
* Contact Confio Support (support@confio.com) if you need to exceed 250 monitored instances in a single Repository.
How To Change Property Settings
For Java Heap Settings
Other Settings
- Edit the file <Ignite Home>\iwc\tomcat\ignite_config\idc\system.properties
- Uncomment or add the line(s) for the desired property (see table below).
- 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.
- Save the file.
- Restart the Ignite PI 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 |