性能计数器数据的太多请求已超时且已失败。
此服务的性能计数器提供程序无法在指定的收集超时期间内返回性能计数器数据。此期间对各个性能计数器各不相同,并且可以更改。
系统运行状况不受影响,只是无法收集性能计数器数据。在此问题解决之前,任何监视此计数器以发出警报的规则将不被激活。
示例事件:
Perfproc.dll 库中的性能数据收集函数 CollectSysProcessObjectData 的超时等待已过期。可能是可扩展计数器或从中收集数据的服务存在错误,也可能是尝试此调用时,系统正忙。
相关事件:
来源:Perflib;
事件 ID:1015
可能是因为性能计数器提供程序或从中收集数据的服务发生问题,也可能是请求生成时系统正忙。
如果由于打开或收集超时而发生问题,你可以更改报告错误的提供程序或服务的默认打开或收集超时期间。
默认情况下,操作系统对所有服务均使用 10 秒钟(以毫秒计)的收集或打开超时期间。要为单个服务更改此超时期间,请更改 Open Timeout 或 Collect Timeout 注册表项。
以下步骤适用于 Collect Timeout 项,也可用于 Open Timeout 项。
警告
注册表编辑不当可能会严重损坏你的系统。在更改注册表之前,你应该备份计算机上任何有价值的数据。
更改 Collect Timeout 注册表项:
在“开始”菜单上,单击“运行”。
键入 regedit.exe,然后单击“确定”。
在注册表编辑器中,导航到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\%service-name%\Performance。无法在指定收集期间内返回性能计数器数据的性能计数器提供程序服务被标识为 %service-name%。例如,如果电话服务的性能计数器提供程序无法在指定收集期间内返回性能计数器数据,可以导航到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Telephony\Performance。
如果该项存在,请双击 Collect Timeout 项。
在“编辑 DWORD 值”对话框中,将“数值数据”框中的时间长度值更改为大于当前值的值。默认值是 10 秒。
如果该项不存在,请根据下列步骤创建项:
a. 在注册表编辑器中,在“编辑”菜单上单击“新建”。
b. 单击“DWORD 值”。
c. 键入 Collect Timeout 作为值名称。
d. 双击 Collect Timeout。
e. 在“编辑 DWORD 值”对话框中,在“数值数据”框中输入大于当前值的时间长度值。默认值是 10 秒。
有关性能和可靠性监视的详细信息,请参阅 Microsoft TechNet 网站 http://go.microsoft.com/fwlink/?LinkId=27756。
有关性能计数器不可用性的详细信息,请参阅知识库文章 275659“损坏的性能计数器可能消失或无法用于 Perfmon”,网址为 http://go.microsoft.com/fwlink/?LinkId=27763。
有关性能计数器疑难解答的详细信息,请参阅 Microsoft 知识库文章:152513,“解决性能监视器计数器问题”,网址为 http://go.microsoft.com/fwlink/?LinkId=30322。
Target | Microsoft.Windows.Server.2003.OperatingSystem | ||
Category | EventCollection | ||
Enabled | True | ||
Event_ID | 1015 | ||
Event Source | Perflib | ||
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.2003.OperatingSystem.PerfCounterDataRequestTimeOut.Alert" Enabled="true" Target="Microsoft.Windows.Server.2003.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>PublisherName</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.2003.OperatingSystem.PerfCounterDataRequestTimeOut.Alert.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>