Chat now with support
Chat with Support

Foglight 5.9.5 - Performance Tuning Field Guide

Overview Hardware and Operating System Tuning Management Server Tuning Java Virtual Machine Tuning Backend Database Tuning High Availability (HA) Tuning Agent Tuning Appendix: Performance Health Check Appendix: Analyzing a Support Bundle

Management Server Load Preventing Database Connections

High Foglight® Management Server load may consuming all connections to backend database. This results in any of the following problems:

To resolve this issue, increase available connections to the database.

1
Edit the appropriate <FOGLIGHT HOME>/config/datasource/datasource-dbtype.properties file. Take SQL Server for example, <FOGLIGHT HOME>/config/datasource/datasource-sqlsvr.properties.
maxTotal: The maximum number of connections that can be kept in the pool. Ensure that maxTotal >= maxIdle.
maxIdle: The maximum idle connections kept in the pool.
Example: maxTotal=45 and maxIdle=15. The pool will have at most 15 idle connections, and can dynamically increase size up to 45 under heavy db usage for concurrent operations.
1
Edit the appropriate <FOGLIGHT HOME>/config/datasource/datasource-dbtype.properties file. Take SQL Server for example, <FOGLIGHT HOME>/config/datasource/datasource-sqlsvr.properties.
maxTotal: The maximum number of connections that can be kept in the pool. Ensure that maxTotal >= maxIdle >= minIdle.
initialSize: The initial number of connections that are created when the pool is started. The initialSize is only used when the pool is created.
maxIdle: The maximum idle connections kept in the pool.
Example initial size 15 and max 45: maxTotal=45, initialSize=15, maxIdle=15, minIdle=15. The pool will have at least 15 connections to database, and can dynamically increase size up to 45 under heavy db usage for concurrent operations.
1
Ensure that your user account has appropriate permissions to access the <FOGLIGHT HOME>\server\default\conf directory (Management Server 5.6.x) or <FOGLIGHT HOME>\server\jobss\conf (Management Server 5.7.1 and higher):
Windows®: Log in as an Administrator.
UNIX®/Linux®: Use the Foglight user service account.
Microsoft® SQL Server®: sqlsvr-ds.xml
Oracle®: oracle-ds.xml
MySQLTM: mysql-ds.xml
Postgres: Postgresql-ds.xml
3
Locate the following line in the file, and then change the value of 20 to 50 or higher.
<max-pool-size>${foglight.database.max_pool_size:20}</max-pool-size>
4
(Management Server 5.7.5.3 and higher only) You must remove the foglight.database.max_pool_size entry and just enter the hardcoded value:
<max-pool-size>50</max-pool-size>
1
Windows®: Log in as an Administrator.
UNIX®/Linux®: Use the Foglight user service account.
Microsoft® SQL Server®: sqlsvr-ds.xml
Oracle®: oracle-ds.xml
MySQLTM: mysql-ds.xml
3
Add min-pool-size and max-pool-size elements between password and before prepared-statement-cache-size, as follows:
<min-pool-size>20</min-pool-size>
<max-pool-size>50</max-pool-size>

The described configuration changes increase the load on the Foglight database server. You must make sure that you have adequate resources for both the Foglight Management server and the database server hosting the Foglight repository.

 

High Availability (HA) Tuning

This chapter provides information about the high availability related options that can have an effect on performance, and describes the applicable performance-related options.

Tuning Connection Issues in an HA Implementation

High Availability (HA) means running multiple Foglight® Management Servers in a cluster, where one is the primary and one or more are secondaries (on standby). The general setup, as well as the communication between the members of the cluster, requires special attention.

In some cases, the communication between servers in the cluster is not reliable. Sometimes unwanted behaviors occur, such as:

These issues may be attributable to JGroup (the underlying communication package that JBoss® uses for its HA implementation) and to the fact that a Foglight HA implementation uses UDP for communication by default and UDP is by nature an unreliable protocol.

If you encounter these HA issues, consider performing the following tuning exercise.

Warning: system time not in sync with primary server, Mon Aug 30 11:47:57 ECT 2010 vs Mon Sug 30 11:48:52 EDT 2010.)

b
Edit server/default/deploy/cluster-service.xml by doing the following:
c
Locate the line beginning <TCPPING initial_hosts="thishost[7800],thathost[7800]" and change thathost to the host name of the secondary server in the cluster. If there are more than two servers in the cluster, add those servers to the list as well: thishost[7800],host2[7800],host3[7800].

Managing Hosts with Multiple Network Interfaces

When configuring HA servers that are installed on hosts with multiple network interfaces (that is, with multiple IP addresses and host names), you must specify the IP address that is to be used for communication between the servers.

To specify the IP address or host name to be used for communication, set the following:

--host=<your_ip_or_hostname>

You can set this using the command line interface or by adding the following to the server.config file:

server.cmdline.option0 = "-Djboss.bind.address=127.0.0.1";

or

server.cmdline.option0 = “-Dbind.address”;

server.cmdline.option1 = “127.0.0.1”;

where 127.0.0.1 is the desired IP address

or

server.cmdline.option0 = "-Djboss.bind.address=host1.example.com";

server.cmdline.option1 = "-Dbind.address=host1.example.com";

where host1.example.com is the desired host name

You also need to reconfigure the restarter to perform server health check with the same host name or IP address. To do so, open the restart_monitor.config file, find the line beginning with health.check.url, and replace localhost with the host name or IP address specified with --host.

In addition, an HA configuration has a feature that automatically redirects HTTP requests from secondary servers to the primary server. If the primary server has multiple network interfaces, you must specify the host name that is to be used to serve HTTP requests. You can do this using the command line interface, or by adding the following to the server.config file:

-Dquest.host.name=”host1.example.com”

Related Documents