如何:配置 PerformanceCounter 组件实例
更新:2007 年 11 月
在创建的 PerformanceCounter 组件上有多个必须设置的属性。这些属性确定组件将与之交互的计数器。必须设置的属性包括以下属性:
CategoryName,该属性确定组件将与之交互的性能对象。Windows 中的所有性能计数器都按类别(例如“内存”、“进程”和“处理器”)分组。
CounterName,该属性在指定的类别中标识组件将与之交互的计数器。
InstanceName,该属性标识组件将与之交互的类别实例。请注意,许多类别不包含实例。因此,此属性可能保留为空白。这指示单实例计数器。
说明: 如果“类别”设置为不是由用户定义的类别,则必须从现有的计数器和实例中进行选择。您只能在自定义类别中创建新的计数器和实例。例如,您不能在“内存”类别中创建新的计数器,但如果您创建一个名为“订单”的新类别,您就能在该类别中定义任意多个计数器和实例。
MachineName,该属性标识组件将与之交互的性能计数器所驻留的服务器。可以将此属性设置为“.”来表示本地计算机,或者将其保留为空白以默认使用该值。
ReadOnly,该属性确定是否可以写入所创建的任何自定义计数器。默认情况下,配置用来与现有 Windows 计数器一同工作的任何 PerformanceCounter 组件实例都将以只读模式运行,并且不允许更改这些计数器中的值。但是,当您将组件实例配置为与自定义计数器一起工作时,则可以选择接受以只读模式工作的默认设置,或者将属性值重置为 false 以允许写入值。
说明: 只能在本地计算机上写入计数器。如果想要读取计数器值,可以选择能够访问的任何计算机。
配置 PerformanceCounter 组件的实例
创建 PerformanceCounter 组件的实例。有关更多信息,请参见 如何:创建 PerformanceCounter 组件实例。
通过设置以下属性,指示组件应与之交互的计数器。
属性
设置
能够访问的任何服务器。
存在于服务器上的任何类别。
选定类别内的任何计数器。
如果与之交互的计数器具有多个实例,请将最适合的一个实例设置为 InstanceName 属性的值。
如果正在使用自定义计数器并需要写访问权限,请将 ReadOnly 属性设置为 false。
说明: 可以在“属性”窗口中使用代码指定这些属性,也可以使用 PerformanceCounter 组件实例的构造函数的特殊形式来指定这些属性。
下面的示例显示如何编程设置这些值,以便连接到本地服务器上称为“aborted transactions”的现有 Windows 性能计数器。
' Connect to an existing Windows counter and category Dim abortedTransactions As New PerformanceCounter() abortedTransactions.CategoryName = _ "distributed transaction coordinator" abortedTransactions.CounterName = "aborted transactions" abortedTransactions.MachineName = "." ' Connect to a custom counter and category in writable mode PerformanceCounterCategory.Create("orders", "desc", _ PerformanceCounterCategoryType.SingleInstance, "milk", "desc") Dim myCounter2 As New PerformanceCounter("orders", "milk", False)
// Connect to an existing Windows counter and category System.Diagnostics.PerformanceCounter abortedTransactions = new System.Diagnostics.PerformanceCounter(); abortedTransactions.CategoryName = "distributed transaction coordinator"; abortedTransactions.CounterName = "aborted transactions"; abortedTransactions.MachineName = "."; // Connect to a custom counter and category in writable mode System.Diagnostics.PerformanceCounterCategory.Create( "orders", "desc", PerformanceCounterCategoryType.SingleInstance, "milk", "desc"); System.Diagnostics.PerformanceCounter myCounter2 = new System.Diagnostics.PerformanceCounter("orders", "milk", false);
说明: |
---|
在这段代码中,“.”表示本地计算机。 |