Too many requests for performance counter data have failed

Microsoft.Windows.Server.10.0.OperatingSystem.PerfCounterDataRequestTimeOut.Alert (Rule)

Too many requests for performance counter data have timed out and failed.

Knowledge Base article:

Summary

The performance counter provider for this service was not able to return performance counter data within the specified collect time-out period. This period varies for each performance counter and can be changed.

System health is not affected, only the ability to collect performance counter data. Until this problem is resolved, any rule that is monitoring this counter for alerts will not be activated.

Sample Event:

The time-out waiting for the performance data collection function CollectSysProcessObjectData in the Perfproc.dll library has expired. There may be a problem with this extensible counter or the service it is collecting data from or the system may have been very busy when this call was attempted.

Related Events:

Source: Perflib;

Event ID: 1015

Causes

Either there is a problem with the performance counter provider or service it is collecting data from, or the system was too busy when the request was generated.

Resolutions

If you experience problems due to open or collect timeouts, you can change the default open or collect time-out period for the provider or service that is reporting the error.

By default, the operating system uses the same collect or open time-out period of 10 seconds (measured in milliseconds) for all services. To override this time-out period for an individual service, change the Open Timeout or the Collect Timeout registry entry.

The following procedure applies to the Collect Timeout entry but the same procedure can be applied to the Open Timeout entry.

Caution

Incorrectly editing the registry may severely damage your system. Before making changes to the registry, you should back up any valued data on the computer.

To change the Collect Timeout registry entry:

External

For more information about performance and reliability monitoring, see the Microsoft TechNet Web site at http://go.microsoft.com/fwlink/?LinkId=27756.

For more information about performance counter unavailability, see Knowledge Base Article 275659, “Corrupted Performance Counters May Disappear or Be Unavailable to Perfmon,” at http://go.microsoft.com/fwlink/?LinkId=27763.

For more information about troubleshooting performance counters, see Microsoft Knowledge Base Article: 152513, “Troubleshooting Performance Monitor Counter Problems,” at http://go.microsoft.com/fwlink/?LinkId=30322.

Element properties:

TargetMicrosoft.Windows.Server.10.0.OperatingSystem
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
Too many requests for performance counter data have timed out
{0}
Event LogApplication

Member Modules:

ID Module Type TypeId RunAs 
EventDS DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.Windows.Server.10.0.OperatingSystem.PerfCounterDataRequestTimeOut.Alert" Enabled="true" Target="ServervNext!Microsoft.Windows.Server.10.0.OperatingSystem" ConfirmDelivery="true">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="EventDS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventSourceName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>Perflib</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>1015</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.Windows.Server.10.0.OperatingSystem.PerfCounterDataRequestTimeOut.Alert.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>