When there is a heavy load on sites, requests to the site crash and the number of busy connections exceeds the pre-configured pool size. Therefore, connector tuning is highly critical in any production deployment of a ColdFusion server or application.
In earlier releases of ColdFusion, you had to perform the following steps:
- Stop the application pool.
- Manually increase the connection pool size.
- Reuse connections based on some estimation.
- Restart the web server.
With Performance Monitoring Toolset in the 2018 release of ColdFusion, you can enable the option Enable
On the same page, you can now configure parameters such as threshold percentage and pool increase percentage.
The Performance Monitoring Toolset takes care of heavy traffic and increases the pool size on the fly.
You can also set the maximum pool size value. The Maximum limit of the pool size for any site cannot cross 2000 (default).
The threshold at which auto-tuning is triggered is at 90% of the pool size and the pool would be increased 20%.
For example, if the pool size is 100, then auto-tuning is triggered, if:
- The busy connections are more than 90.
- The pool size is increased to 120.
During auto-tuning, the pool-size is increased automatically and there is no need to restart IIS.
- After the idle timeout, the pool size that is increased during auto-tuning is reset to the pool size that you had set during connector configuration.
- While configuring connectors, if the sum of pool size of all the sites configured is above 500, then manually increase the maxThreads property of the AJP connector in server.xml.
- During auto-tuning, the pool size is auto-tuned at IIS connector level. In the CF Server page, there is a property maxThreads which does not get auto-tuned. There is a queue at ColdFusion server level, which queues the request if there are no worker threads available. But there is no such queue at mod_jk connector level.
In Apache, the documentation clearly says “The maximum connection pool size can be configured with the attribute connection_pool_size. We generally do not recommend to use this attribute in combination with Apache HTTP Server. For Apache, the toolset automatically detect the number of threads per process and set the maximum pool size to this value.”
Therefore, the connection pool size is not tuned.
Note: Connector auto-tuning is applicable only for IIS and not for Apache.
You can see which site is connected to which ColdFusion instance/ ColdFusion cluster in Topology/Sites
On the Overview page, you can see all sites configured with clusters or sites or groups. For a site to be displayed on the Overview page, make at least one request from the sites configured with ColdFusion.
To view the detailed view of only that site, click any site. To view consolidated information about the sites in the cluster, click Connector on the left pane.
You can only see a maximum of four sites in the Connector page. If there are the other sites, click Sites drop-down and select/de-select the respective sites. The selection is auto-saved for you.
If the sites are configured to a cluster, you can drill down further to see the connection details of theindividual workers.
The Busy connections graph displays the number of busy connections and pool size of a site for that instance of time. Hovering on the auto-tuned marker on the graph indicates how many times the site got auto-tuned in a time interval . The values of the icon are aggregated based on the time interval selected.
List of sites in a cluster
In a cluster, click any site to get a detailed view of the site. When you click any site, you can see the busy connections and health of the worker threads.
On the Busy Connections graph, there is an icon called Auto-tuned that indicates auto tuning of a site.
The new pool size that is shown on the graph is a product of the number of times the site got auto tuned and the pool size percentage in the Settings page.
Auto tuning of your site happens until the maximum pool size is reached, specified in the Settings page.
When the maximum pool size reaches a certain threshold, you can configure Performance Monitoring Toolset to issue alerts.
The Health score section shows the health of the site, based on the load of the site. A site is shown as inactive if the site crosses the idle timeout for IIS.
For more information on calculating health scores, see Health Scores.