Optimizing Smart Reporting performance
BMC Helix ITSM: Smart Reporting(Smart Reporting) provides various options to optimize performance of the Smart Reporting application. For ensuring optimized performance, set the required parameters based on the recommended values. For more information, see List of recommended parameter values.
Planning for performance based on your deployment infrastructure
Multiple deployment options are available to achieve optimal performance for Smart Reporting.
For information about the available options, see BMC Helix Innovation Suite deployment architecture in the BMC Helix Innovation Suite documentation.
Setting data restrictions at multiple levels
You can ensure that performance issues do not arise for other components of AR System when using Smart Reporting by restricting the data to display and governing reporting requests. Data restrictions are applied in the following order:
- AR System restrictions
- Smart Reporting data source restrictions
- Smart Reporting view-level restrictions
- Smart Reporting report-level restrictions
- Smart Reporting data source connection restrictions
You can configure the following options to manage the performance of Smart Reporting and AR System server:
To configure data source connection restrictions on Smart Reporting
- Log in to Smart Reporting as an administrator.
- Select Administration > Admin Console.
- Open the Data Sources panel.
- Click the connection.
- On the Connection page, open the Connection Pool panel.
- To optimize data source connections, complete the following steps:
In the Min Connections and Max Connections fields, enter values to designate the number of connections to use from within a connection pool.
Consider the following example:
When you set the maximum connections to 5, only 5 connections will be allowed. When a user accesses a report, one connection is used. However, if a user accesses a Dashboard that lists three reports, three connections are used. Set the value of Max Connections to restrict the number of connections that Smart Reporting can use. When the maximum number of connections is reached, other users cannot access the source until these reports have completed processing.Note:
Increasing the value of Max Connections does not affect Smart Reporting performance unless many users access a large number of reports.
- In the Refresh Time field, enter the time (in hours) after which database connections are refreshed.
The refresh recycles the connections after the set period. Recycling ensures that no connections are stale or left open even though the user is no longer using them. - In the Timeout field, enter the time (in seconds) allowed for the SQL statement to return results.
The value defined should be able to accommodate the queries run against the data source.
To configure restrictions forSmart Reporting query results, complete the following steps:
- Open the Usage Parameters panel.
- Turn on the Max Rows Returned toggle.
- In the Max Rows Returned field, enter the maximum numbers of query results you want returned.
- Open the Usage Parameters panel.
- Click Save.
To configure view-level restrictions for data to be displayed
Define view-level data restrictions for specific modules that are expected to return a large number of records. For example, if your change management reports are not expected to return many records, but your incident reports will return many records, you can define view-level settings for the Incident Management view.
- In Smart Reporting, open a view in Edit mode.
- Click View Optionsin the toolbar.
- Open the Performance panel, modify the View Row Limit parameter.
This parameter sets the limit for rows returned from the database.
To configure AR System for setting restrictions on Smart Reporting data
- Log in to AR System.
- Select Applications > AR System Administration> AR System Administration Console.
- Select System > General > Server Information.
- On the Configuration tab of the Server Information page, modify the value of the Max entries returned by GetList field.
This field sets a row limit for any query sent using the JDBC driver.
Tip
To overwrite the AR System server row limit settings, set a parameter in the JDBC Connection string. In the AR System data source, add a rowLimit parameter, which overrides the system settings and returns the specified number of result set, as shown in the following example:
To configure the data connection limit on Smart Reporting
Configure the Smart Reporting Connection settings to define restrictions on the data connection to the AR System server. The Custom Parameters for the Smart Reporting data connection settings allows you to control the data returned from the AR System server depending on expected volume of data being retrieved for Smart Reporting.
- Log in to the Mid Tier as an administrator, and launch the Mid Tier.
- Open the Smart Reporting console.
- Select Administration > Admin console > Data sources.
- Open the AR System data source.
- On the Connection panel, update the row limit in the Custom Parameters field, such as mode=new;refreshCache=60;rowLimit=10000.
- Click Test Connection.
- Click Save.
Additionally, you can also restrict the number of rows that can be retrieved from the AR System database by using the CCS parameter named Jdbc-Row-Limit. The default value of this parameter is 10,000. However, an administrator can change this value as required based on the data volume.
When retrieving records from the database, the lower value of either the Jdbc-Row-Limit parameter defined in AR System or rowLimit parameter defined in Smart Reporting is considered. For example, if Jdbc-Row-Limit has value 5000 and rowLimit has value 3000, the maximum number of rows that will be retrieved from the database is 3000. Similarly, if Jdbc-Row-Limit has value 4000 and rowLimit has value 5000, the maximum number of rows that will be retrieved from the database is 4000.
See the following table for more examples of how you can use the row_limit and Jdbc_Row_Limit parameters to control the maximum number of records retrieved from the database:
row_limit | Jdbc_Row_Limit | Maximum number of records retrieved |
---|---|---|
5000 | Not Defined | 5000 |
5000 | 3000 | 3000 |
Not Defined | 3000 | 3000 |
5000 | 7000 | 5000 |
5000 | 1000 | 1000 |
Important
If you are a BMC Helix ITSM user, you can find the Jdbc-Row-Limit parameter in the Centralized Configuration console, under the component com.bmc.arsys.server.shared. If you are a Smart Reporting user and want to use this feature, you must add the Jdbc-Row-Limit parameter in the Centralized Configuration.
For more information about the Jdbc-Row-Limit parameter, see
Centralized configuration
in AR System online documentation.
List of recommended parameter values
For optimized performance, we recommend setting the following values for different parameters as required.
Parameter | Description | Minimum/default value | Maximum value |
---|---|---|---|
JDBCMaxCount | Maximum number of connections to the Smart Reporting database. | 25 | 300 |
JDBCMinCount | Minimum number of connections to the Smart Reporting database. | 2 | 50 |
JDBCTimeout | Timeout of JDBC Connections in seconds. | 300 | 1800 |
JDBCRecycle | JDBC Connection refresh or recycle time. | 10800 | NA |
JDBCFetchSize | Default Fetch size for connecting to the Smart Reporting configuration database. | 1000 | NA |
JDBCVerify | Checks the Smart Reporting database connection by returning the schema. | TRUE | NA |
JDBCNoLock | Applies NO LOCK to some database queries when using MS SQL Server. | TRUE | NA |
PSCacheSize | Number of Prepared Statements to cache per connection (maximum). | 20 | NA |
IsolationLevel | Isolation Level for connecting to the Smart Reporting configuration database. | Serializable | NA |
DisableHeatBeat | Disables heartbeat (periodic queries) against the Repository database. | FALSE | NA |
ReportCacheSize | Size of report result set cache in bytes. | 20 | 20 |
ReportCacheMaxAge | The maximum age of result sets in the report result cache in milliseconds. | 86400000 | 86400000 |
ImageCacheMaxBytes | Maximum size of image memory cache in bytes. | 52428800(50 MB) | 52428800(50 MB) |
ReportDefinitionCacheSize | Number of result sets to store in the report result cache. | 1000 | |
ReportDefinitionCacheTimeout | Maximum time in milliseconds to store a report definition in the cache | 86400000 | |
GeometryCacheSize | Defines how many items are allowed in the cache. GeometryCache is initialized with this size. The default size is 4000. | 4000 | |
DashboardDefinitionCacheSize | Number of definitions that can be stored in the cache. | 1000 | |
DashboardDefinitionCacheTimeout | Maximum timeout in milliseconds for an element in this cache. | 86400000 | |
TranslationCacheSize | This specifies how many translation objects should be cached in memory. | 5000 | |
TranslationCacheMaxAge | Maximum timeout in milliseconds for an element in this cache. | 86400000 | |
CachedFilterCacheMethod | Filter methods for data stored in cache. You can specify one of the following values for CachedFilterCacheMethod: NO_CACHE: No memory caching. Data is loaded from the database each time an hierarchy is requested. | CACHE_BY_USER | |
CachedFilterCacheSize | Number of cached filter entries that can be stored in the cache. Unless source substitution or source filters are in use, their is one entry per filter hierarchy. If source substitution or source filters are in use, their may be one entry per user, or source filter value depending on the cache method. Each entry stores the available values for each filter in the hierarchy. | 100 | |
CachedFilterCachePeriod | Maximum timeout in milliseconds for an element in this cache. | 86400000 | |
ExecutionQueueConcurrentTasks | Number of reports that can be run concurrently. | 10 | |
ExecutionQueueInitialWaitTime | Duration in seconds for which the server will wait to finish a report before the client shows the delivery popup and starts polling. | 5 | |
ExecutionQueueMaximumExecutionTime | Maximum time in minutes the reports can run in the execution queue before they are terminated. | 240 | |
DisableTaskScheduler | Indicate whether the task scheduler is active. | FALSE | |
DisableTaskSchedulerPolling | Set to allow or prevent a node from becoming a Master node. | FALSE | |
TaskSchedulerThreads | Number of tasks that can run concurrently. | 5 | |
TaskSchedulerMaxThreadQueue | Maximum number of tasks allowed to wait to be executed, if all threads are currently being used. If the value is set below the number of threads, the system will always allocate at least the same number of slots in the queue as the number of threads. | 20 | |
MaxThreadsPerTransformationPreviewJob | Number of threads that will be available for each Data Transformation Flow, for internal processing in Preview (edit) mode. | 2 | |
MaxBackgroundTransformationThreads | Number of threads that will be available for all Data Transformation Flows, for internal processing during background execution. | 2 |
Comments
Log in or register to comment.