CPU Utilization (\%) for MSSQL 2017 DB Engine.
The monitor provides measuring of time that processors actually spent working on SQL Server’s process threads. Note that the running interval of the monitor must not be less than 60 seconds and divisible by 60. Otherwise, the returned data will be inexact.
All allocated CPUs are busy by processing SQL Server tasks.
Evaluate why SQL Server is using a high percentage of CPU using performance monitor SQL Server counters and performance related DMVs such as sys.dm_exec_query_stats.
Troubleshooting Performance Problems in SQL Server 2017
http://go.microsoft.com/fwlink/?LinkId=789165
Create an Extended Events Session
http://go.microsoft.com/fwlink/?LinkId=799311
Name | Description | Default Value |
Alert Priority | Defines Alert Priority. | Normal |
Alert Severity | Defines Alert Severity. | Error |
Enabled | Enables or disables the workflow. | Yes |
Generates Alerts | Defines whether the workflow generates an Alert. | Yes |
Interval (seconds) | The recurring interval of time in seconds in which to run the workflow. | 300 |
Number of samples | Indicates how many times a measured value should breach a threshold before the state is changed. | 6 |
Synchronization Time | The synchronization time specified by using a 24-hour format. May be omitted. |
|
Threshold | The collected value will be compared against this parameter. | 90 |
Timeout (seconds) | Specifies the time the workflow is allowed to run before being closed and marked as failed. | 200 |
Timeout for database connection (seconds) | The workflow will fail and register an event, if it cannot access the database during the specified period. | 15 |
Target | Microsoft.SQLServer.2017.Windows.DBEngine | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2017.Windows.MonitorType.DBEngine.CPUUtilization | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2017.Windows.Monitor.DBEngine.CPUUtilization" Accessibility="Public" Enabled="true" Target="SQL2017WD!Microsoft.SQLServer.2017.Windows.DBEngine" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2017.Windows.MonitorType.DBEngine.CPUUtilization" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2017.Windows.Monitor.DBEngine.CPUUtilization.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2017L!Microsoft.SQLServer.2017.Library.DBEngine"]/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SQL2017L!Microsoft.SQLServer.2017.Library.DBEngine"]/MachineName$</AlertParameter2>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Normal" MonitorTypeStateID="Normal" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Property[Type="SQL2017L!Microsoft.SQLServer.2017.Library.DBEngine"]/MachineName$</MachineName>
<InstanceName>$Target/Property[Type="SQL2017L!Microsoft.SQLServer.2017.Library.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SQL2017L!Microsoft.SQLServer.2017.Library.DBEngine"]/ConnectionString$</ConnectionString>
<MonitoringType>$Target/Property[Type="SQL2017WD!Microsoft.SQLServer.2017.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<Threshold>90</Threshold>
<NumSamples>6</NumSamples>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>