Friday, September 21, 2012

[OpsMgr 2007 R2][OpsMgr 2012] Performance Optimizations

Matt Goedtel (MSFT) has uptaded his post initialy created for OpsMgr 2007.


Management Server Health Service - OM 2007 R2
The recommended settings highlighted in this section are only applicable to Operations Manager 2007 R2.

In Operations Manager 2012, the default settings for these Registry keys for the Health Service have higher values and are already optimized out of the box (at this point).

The following are specific settings with recommended values from the product group based on their performance and scalability tests that can reduce resource utilization on the SQL Servers hosting the Operations Manager databases, and the management servers/Root Management Server:
To reduce resource utilization impact on the Root Management Server and management servers caused by the OpsMgr queues, perform these changes on the RMS/MS’s in the management group:

Registry Path
Registry Value(DWORD)
HKLM\SYSTEM\CurrentControlSet\Services\HealthService\Parameters\Persistence Cache Maximum
102400
HKLM\SYSTEM\CurrentControlSet\Services\HealthService\Parameters\Persistence Version Store Maximum
10240
HKLM\SYSTEM\CurrentControlSet\Services\HealthService\Parameters\State Queue Items (See note below)
20480
HKLM\SYSTEM\CurrentControlSet\Services\HealthService\Parameters\Persistence Checkpoint Depth Maximum
104857600

Note: This key does not exist by default and must be created manually.


Management Servers Config Service and Group Membership Calculation - OM 2007 R2 and OM 2012
In an Operations Manager 2007 R2 management group, to reduce resouce utilization on an Operations Manager 2007 R2 Root Management Server, perform the changes highlighted in the following table. 
In an Operations Manager 2012 management group, perform the changes highlighted in the following table on all management servers that are a member of the "All Management Servers Resource Pool" (which technically is every management server deployed in your management group, unless you have dedicated one or more management servers to a custom-defined pool for Network Device or Cross-Platform monitoring and have manually assigned management servers to the "All Management Servers Resource Pool").

Registry PathRegistry Value (DWORD)
HKLM\SOFTWARE\Microsoft\Microsoft Operations Manager\3.0\Config Service\Polling Interval Seconds
00000078
(2 minutes)
HKLM\SOFTWARE\Microsoft\Microsoft Operations Manager\3.0\GroupCalcPollingIntervalMilliseconds
000dbba0
(15 minutes)

Note: These Registry keys do not exist by default and must be created manually.

Before changing the Group Calculation interval I should point out a few things to help you make a well informed decision. By default group calculation is performed on the RMS every 30 seconds. In a management group supporting the enterprise scenario, you will typically see many custom groups defined for targeting overrides, scoping of user roles, and for controlling the behavior of notification subscriptions (at a minimum). Group calculation discovery rules can impact the performance of the OperationsManager database, as the behavior characteristics are queries run against the database instance space in the form of multiple read operations. If you have lot of groups and their group calculation criteria are complex, it will have a big hit on database performance. Other operations in the management group could be affected as well, such as slower discovery insertion, degraded console performance, and replication of configuration changes to agents is slower. Precisely how much degradation you’ll see in these other areas is predicated upon how much group calculation is overloaded.
Changing the calculation interval to a greater value could affect any overrides that target a group, since an object that would fall under the criteria of a group would not relate to that group and receive the override until the group calculation is performed. If you can tolerate the latency of group membership discovery, then you can increase the interval/frequency to a less frequent schedule, say every four or eight hours as an example.

Data Warehouse Synchronization - OM 2007 R2 and 2012
For reduced resource utilization impact on the OperationsManager databases caused by DW synchronization rules running on the RMS in an Operations Manager 2007 R2 management gorup or the management servers in an Operations Manager 2012 management gorup, create overrides in the Operations Manager console for the following rules to increase the interval and batch size of those operations:

All rules below are in the class Data Warehouse Synchronization Server

Rule/Monitor NameOverride ParameterOverride Value
Data Warehouse monitor initial state synchronization rule
Batch Generation Frequency Seconds
300
Data Warehouse monitor initial state synchronization rule
Batch Size
1000
Data Warehouse object synchronization rule
Batch Generation Frequency Seconds
300
Data Warehouse object synchronization rule
Batch Size
1000
Data Warehouse report deployment rule
* Management Pack List Frequency Seconds
600
Data Warehouse report deployment rule
*Management Pack List Frequency Seconds
550
Data Warehouse report deployment rule
*Management Pack List Frequency Seconds
500
Data Warehouse managed object type synchronization rule
Batch Generation Frequency Seconds
300
Data Warehouse managed object type synchronization rule
Batch Size
1000
Data Warehouse relationship synchronization rule
Batch Generation Frequency Seconds
300
Data Warehouse relationship synchronization rule
Batch Size
1000
*Note: This override parameter actually affects three data sources referenced in this rule.

Console Refresh - OM 2007 R2 and OM 2012
The Operations Manager Console refresh interval is every 15 seconds by default. With multiple consoles in an enterprise scenario, this can negatively impact performance. For best performance, turning off Polling or increasing the interval can help. Perform this change on any Windows computer that has the console installed:

Registry PathRegistry Value (DWORD)
HKCU\Software\Microsoft\Microsoft Operations Manager\3.0\console\CacheParameters\ PollingInterval0 – 10 (0 turns off automatic refresh and requires manual refresh via F5. The value 1 through 10 increments the refresh interval every 15 seconds. The maximum value of 10 is a refresh interval of 2 min 30 seconds).

Before making any changes, always test first and evaluate the results before implementing them in production.  If you make them in production due to constraints in being able to appropriately test/validate in your test lab, first establish a performance baseline before making any of the proposed changes stated here.  After each change, perform another performance measurement and compare it to the initial baseline statistics to determine if the results are above or below the baseline.

This posting is provided "AS IS" with no warranties.

No comments:

Post a Comment