Chat now with support
Chat with Support

Foglight for Virtualization Enterprise Edition 8.9 - 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

Custom Tablespaces

You can create custom tablespaces by modifying the storage-config.xml file, that is located in the config directory of the Management Server installation.

Group A (configuration) tables can only be created using the SQL scripts available in the <foglight_home>/scripts/sql directory. This can be done using the database tool, foglight-database-tool.jar. For complete information, about this tool, see the Foglight Installation and Setup Guide set.

Group B (observation) tables can also be added. Adding them before the server starts for the first time causes them to be created in the custom tablespace. If the default tablespace already contains group B tables at the time storage-config.xml is updated, they remain in that tablespace until the server rolls up or purges the data in those tables.

Adding group B tables after the Management Server starts causes the server to move them over to the new tablespace as it rolls up long-term data. This means that for some tables, for example, it can take as long as three months before they are created in the database. The actual period of time depends on the configured retention policies. Some tables can remain the default tablespace indefinitely. For complete information about retention policies, see the Administration and Configuration Help.

1
Open the storage-config.xml file for editing.
In the storage-config.xml file, locate the <configuration-destination> element and replace its <default> element with a <tablespace> element using the following syntax:
Where CUSTDATA, CUSTINDEX, and CUSTLOB are the names of your custom tablespaces.
In the storage-config.xml file, locate the <destination> element and replace its <default> element with using the following syntax:
Where SAMPLEDATA, SAMPLEINDEX, and SAMPLETLOB are the names of your custom tablespaces.
4
If the database user has not been granted a quota on the newly created tablespaces, after creating tablespaces in the storage-config.xml file, the database administrator must edit the scripts/sql/oracle_create_db.sql script and add grants for the custom tablespaces, like the one that grants a quota on the USERS tablespace.
a
Run the database tool, foglight-database-tool.jar, to create the group A tables in the specified tablespaces.
b
Instruct the server to update the configuration and create the group B tables using the JMX console. In the JMX console, invoke the mergeConfiguration() method on the Storage Manager Service MBean in the JMX console. This only affects the Group B tables that the server creates from that time on.

Microsoft SQL Server Tuning

Foglight® Management Server accepts the instance-level default for database recovery (regardless of the recovery model of the model database, which is purely a template used to create new databases). There is no harm in changing the recovery model from full to simple, other than point-in-time recoverability is lost. If you require the ability to perform disaster recovery on your Foglight database, you should use the full recovery model and you should make frequent transaction log backups to ensure that it does not grow beyond an undesirable threshold. If you do not require point-in-time recoverability, you can use the simple recovery model, and there will be no additional ramifications.

PostgreSQL Tuning

PostgreSQL Server ships with a basic configuration tuned for wide compatibility rather than performance. Foglight Management Server have done some tuning configurations for the embedded PostgreSQL database, such as:

You could take the above configurations into consideration when setting up an external PostgreSQL database for Foglight Management Server, because these configurations have been verified and are more suitable for Foglight Management Server compared to default values. If you have set up PostgreSQL for other application previously, you could adjust these configurations as needed to keep them in the same PostgreSQL.

The Foglight Management Server uses the following configurations for embedded PostgreSQL database.

work_mem = 8MB

For more information about these configurations and how to tune PostgreSQL, refer to Tuning Your PostgreSQL Server and Performance Optimization.

Troubleshooting

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.

 

Related Documents