Too many requests for performance counter data have timed out and failed.
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
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.
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:
On the Start menu, click Run.
Type regedit.exe, and then click OK.
In the registry editor navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\%service-name%\Performance. The performance counter provider service that was not able to return performance counter data within the specified collection period is identified as the %service-name%. For example, if the performance counter provider for the Telephony service was not able to return performance counter data within the specified collection period, you would navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Telephony\Performance.
If the entry exists, double-click the Collect Timeout entry.
In the Edit DWORD Value dialog box, change the length of time in the Value data box to a value greater than the present value. The default value is ten seconds.
If the entry does not exist, create the entry as follows:
a. In the registry editor, on the Edit menu, click New.
b. Click DWORD Value.
c. Type Collect Timeout for the value name.
d. Double-click Collect Timeout.
e. In the Edit DWORD Value dialog box, enter a length of time in the Value data box which is a value greater than the present value. The default value is ten seconds.
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.
Target | Microsoft.Windows.Server.10.0.OperatingSystem | ||
Category | EventCollection | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
EventDS | DataSource | Microsoft.Windows.EventProvider | Default |
GenerateAlert | WriteAction | System.Health.GenerateAlert | Default |
<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>