通用计数器
适用于: Exchange Server 2010 SP2, Exchange Server 2010 SP3
上一次修改主题: 2016-11-28
本主题提供有关对 Microsoft Exchange Server 2010 中所有服务器角色通用的计数器的信息。可以使用性能监视器 (perfmon.exe) 监视这些计数器。有关详细信息,请参阅性能监视器入门指南。有关与 Exchange 2010 相关的其他计数器的信息,请参阅性能和可伸缩性计数器及阈值。
处理器和进程计数器
下表提供有关处理器和进程计数器的信息。
计数器 | 描述 | 阈值 | 疑难解答 |
---|---|---|---|
Processor(_Total)\% Processor Time |
显示处理器执行应用程序或操作系统进程的时间的百分比。这是处理器未处于空闲状态时的情况。 |
平均应该少于 75%。 |
|
Processor(_Total)\% User Time |
显示花在用户模式上的处理器时间的百分比。用户模式是受限制的处理模式,旨在用于应用程序、环境子系统和完整子系统。 |
应该保持在 75% 以下。 |
|
Processor(_Total)\% Privileged Time |
显示花在特权模式上的处理器时间的百分比。特权模式是一种处理模式,旨在用于操作系统组件和硬件处理驱动程序。它允许直接访问硬件和所有内存。 |
应该保持在 75% 以下。 |
如果总的处理器时间较长,请使用此计数器确定导致 CPU 利用率很高的进程。 |
Process(*)\% Processor Time |
显示所有进程线程用于执行指令的已用处理器时间的百分比。指令是计算机中的基本执行单位。线程是执行指令的对象,而进程是运行程序时创建的对象。此计数中包含了处理某些硬件中断和陷阱条件时执行的代码。 |
如果总的处理器时间较长,请使用此计数器确定导致 CPU 利用率很高的进程。 |
|
System\Processor Queue Length(所有实例) |
表示每个处理器所服务的线程数。处理器队列长度可用于确定处理器争用或 CPU 使用率很高是否由处理器处理所分配的工作负荷时容量不足所致。处理器队列长度显示了处理器就绪队列中延迟的线程数以及等待计划执行的线程数。列出的值是进行测量时最后一次观察到的值。 |
每个处理器的队列长度不应大于 5。 |
在具有单个处理器的计算机上,如果观察到队列长度大于 5,则是警告要执行的作业经常多于处理器可以迅速处理的作业。如果此数大于 10,则是明显表示处理器已达到其容量限制,在 CPU 使用率很高时尤其如此。 在具有多处理器的系统上,可以按物理处理器数划分队列长度。使用硬处理器关联(进程分配给特定的 CPU 核心)配置的多处理器系统的队列长度值很大,可以指示配置不平衡。 尽管处理器队列长度通常未用于容量规划,但还是可以用于确定环境内的系统是否能够运行负载,或者是否应该购买其他处理器或速度更快的处理器以用于将来的服务器。 |
内存计数器
下表显示通用内存计数器。
计数器 | 描述 | 阈值 | 疑难解答 |
---|---|---|---|
Memory\Available Mbytes |
显示物理内存量 (MB),可立即分配给进程或供系统使用。它等于分配给备用(已缓存)、可用和零分页列表的内存总和。有关内存管理器的完整解释,请参阅 Microsoft Developer Network (MSDN) 或 Windows Server 2003 资源工具包中的“系统性能和疑难解答指南”。 |
应该始终保持在 100 MB 以上。 |
|
Memory\Pool Nonpaged bytes |
包含可保证始终驻留在物理内存中的系统虚拟地址,因而可以从任何地址空间进行访问,而不会发生分页输入/输出 (I/O)。与页面缓冲池类似,非页面缓冲池是在系统初始化期间创建的,由内核模式的组件用来分配系统内存。 |
不适用。 |
|
Memory\Pool Paged bytes |
显示可以分页到磁盘分页文件的共享系统内存部分。页面缓冲池是在系统初始化期间创建的,由内核模式的组件用来分配系统内存。 |
不适用。 |
如果监视到页面缓冲池字节数增加,则表明可能存在内存泄漏。 |
Memory\Cache Bytes |
显示文件系统缓存的当前大小(字节)。默认情况下,缓存最多使用 50% 的可用物理内存。计数器值是 Memory\System Cache Resident Bytes、Memory\System Driver Resident Bytes、Memory\System Code Resident Bytes 及 Memory\Pool Paged Resident Bytes 的总和。 |
不适用。 |
在应用程序缓存其内存使用率后应该保持稳定。检查出此计数器的值显著减小,这可能归因于工作集修整和分页过多。 由内容索引编目和连续的复制日志复制操作使用。 |
Memory\Committed Bytes |
显示提交的虚拟内存量(字节)。提交的内存是在磁盘分页文件上保留了空间的物理内存。每个物理驱动器上可以有一个或多个分页文件。此计数器仅显示最后一次观察到的值;它不是平均值。 |
不适用。 |
确定使用中的已提交字节数。 |
Memory\%Committed Bytes in Use |
显示 Memory\Committed Bytes 与 Memory\Commit Limit 的比率。已提交内存是指在需要写入磁盘时已在分页文件中保留空间的使用中的物理内存。提交限制由分页文件的大小确定。如果扩大分页文件,则提交限制会增加,并且该比率会减小。此计数器仅显示当前的百分比值;它不是平均值。 |
不适用。 |
如果此值较大(大于 90%),您可能会开始看到提交失败。这清楚表明了系统内存很紧张。 |
内存分页计数器
下表显示通用内存分页计数器。
计数器 | 描述 | 阈值 | 疑难解答 |
---|---|---|---|
Memory->Transition Pages Repurposed/sec |
表明系统缓存紧张。 |
平均应小于 100。峰值应该小于 1,000。 |
|
Memory\Page Reads/sec |
表示必须从磁盘而不是内存读取数据。表示内存不足并且分页即将开始。如果该值每秒大于 30,则表示服务器无法处理负荷。 |
平均应小于 100。 |
|
Memory\Pages/Sec |
显示从磁盘中读取页面或向磁盘写入页面以解决硬页面错误的速率。此计数器是导致系统范围延迟的错误类型的主指示器。它是 Memory\Pages Input/sec 和 Memory\Pages Output/sec 的总和。它是用页数计算的,以便在不用进行转换的情况下就可以同其他页计数(如 Memory\Page Faults/sec)做比较。它包含为了解决错误而在文件系统缓存(通常由应用程序请求)和非缓存映射内存文件中检索的页面。 |
平均起来应该低于 1,000。 |
此计数器返回的值可能大于预期值。这些值可能与分页文件活动或缓存活动都不相关。这些值可能是由按序列读取内存映射文件的应用程序导致的。 使用 Memory\Pages Input/sec 和 Memory\Pages Output/sec 来确定页面文件 I/O。 |
Memory\Pages Input/sec |
显示从磁盘中读取页面以解决硬页面错误的速率。在进程引用不是位于其工作集的虚拟内存中的页面或物理内存其他位置的页面时,会发生硬页面错误,必须从磁盘检索硬页面错误。当页面出现错误时,系统会尝试将多个连续页面读入内存,以使读操作的效用最大化。将 Memory\Pages Input/sec 的值与 Memory\Page Reads/sec 的值进行比较以确定每个读操作期间读入内存的平均页面数。 |
平均起来应该低于 1,000。 |
|
Memory\Pages Output/sec |
显示将页面写入磁盘以释放物理内存中空间的速率。仅当在物理内存中更改页面时,才会将其写回至磁盘,因此页面可能保留数据而不是代码。页面输出速率很高可能表示内存不足。当物理内存不足时,Microsoft Windows 会将更多页面写回至磁盘以释放空间。此计数器显示了页面数,并且无需转换即可与其他页面计数进行比较。 |
平均起来应该低于 1,000。 |
内存占用计数器
下表显示通用进程内存占用计数器。
计数器 | 描述 | 阈值 | 疑难解答 |
---|---|---|---|
Process(*)\Private Bytes |
显示此进程已分配并且无法与其他进程共享的当前字节数。 |
不适用。 |
此计数器可用于根据进程确定任何内存泄漏。 对于信息存储进程,请将此计数器值与数据库缓存大小进行比较以确定信息存储进程中是否有内存泄漏。信息存储专用字节的增加以及数据库缓存中增加相同的字节即表示行为正确(没有内存泄漏)。 |
Process(*)\Virtual Bytes |
表示进程当前耗用的虚拟地址空间量(字节)。 |
不适用。 |
用于确定进程是否耗用大量的虚拟内存。 |
进程工作集计数器
下表显示通用进程工作集计数器。
计数器 | 描述 | 阈值 | 疑难解答 |
---|---|---|---|
Process(_Total)\Working Set |
显示此进程的工作集的当前大小(字节)。工作集是进程中的线程最近接触的内存页面的集合。如果计算机中的可用内存量高于阈值,则页面在未使用时会保留在进程的工作集中。可用内存降到阈值以下时,工作集中的页面会被修整。如果在页面离开主内存前需要这些页面,它们将以软故障方式回到工作集中。 |
不适用。 |
工作集的大幅增长或下降都会导致分页。 确保将分页文件设置为推荐的值 RAM+10。如果修整了工作集,则请添加 Process(*)\Working Set 以确定受影响的进程。此计数器可指示系统范围或进程范围的问题。交叉引用此计数器和 Memory\System Cache Resident Bytes 以确定是否发生了系统范围的工作集修整。 |
进程句柄计数器
下表显示通用进程句柄计数器。
计数器 | 描述 | 阈值 | 疑难解答 |
---|---|---|---|
Process(*)\Handle Count |
显示此进程当前打开的句柄的总数。此数字是此进程中的每个线程当前打开的句柄总数。 |
不适用。 |
特定进程中句柄计数的增加可能是发生句柄泄漏的错误进程的症状,这将导致服务器上发生性能问题。此问题并不一定会出现,但是在一段时间内对其进行监视以确定是否发生句柄泄漏十分重要。 |
.NET Framework 计数器
下表显示 Microsoft .NET Framework 计数器。
计数器 | 描述 | 阈值 | 疑难解答 |
---|---|---|---|
.NET CLR Memory(*)\% Time in GC |
显示进行垃圾收集的时间。当计数器超过阈值时,表示 CPU 正在进行清理,并且不能有效用于加载。向服务器添加内存可以改善这种情况。 |
平均起来应该低于 10%。 |
如果此计数器增加为较大值,则可能有一些对象仍在使用 Gen 1 垃圾收集并会升级到 Gen 2。Gen 2 收集需要完整的全局编目以用于清理。添加其他 .NET Framework 内存计数器以确定是否发生这种情况。 |
.NET CLR Exceptions(*)\# of Excepts Thrown / sec |
显示每秒钟抛出的异常数。这包括 .NET Framework 异常和转换为 .NET Framework 异常的未受管异常。例如,非托管代码中的空指针引用异常将在托管代码中作为 .NET Framework System.NullReferenceException 再次引发。此计数器包含已处理和未处理的异常。 |
应小于每秒请求总数 (RPS) (Web Server(_Total)\Connection Attempts/sec * .05) 的 5%。 |
异常只应在极少情况下发生,而不应在程序的正常控制流中发生。此计数器可以作为因异常抛出速率很大(>100 秒)而导致的潜在性能问题的指示器。此计数器不是一段时间内的平均值。它显示前两个示例中观察的值的差值除以示例间隔持续时间。 |
.NET CLR Memory(*)\# Bytes in all Heaps |
显示其他四个计数器的总和:Gen 0 堆大小、Gen 1 堆大小、Gen 2 堆大小以及大型对象堆大小。此计数器表示 GC 堆上当前分配的内存(字节)。 |
不适用。 |
内存的这些区域属于 MEM_COMMIT 类型。此计数器的值总是比 Process\Private Bytes 的值小,Process\Private Bytes 对进程的 MEM_COMMIT 区域进行计数。Private bytes minus # bytes in all heaps 是由非托管对象提交的字节数。 用于监视可能的内存泄漏,或者监视受管或未受管对象的内存使用率是否过大。 |
网络计数器
下表显示通用网络计数器。
计数器 | 描述 | 阈值 | 疑难解答 |
---|---|---|---|
Network Interface(*)\Bytes Total/sec |
指示网络适配器处理数据字节的速率。除了数据包头等协议信息之外,此计数器还包括所有应用程序数据和文件数据。 |
对于 100 兆字节/秒 (MBps) 的网络适配器,应低于 6-7 MBps。 对于 1000 兆位/秒 (Mbps) 的网络适配器,应低于 60-70 Mbps。 |
|
Network Interface(*)\Packets Outbound Errors |
指示由于错误而无法传输的出站数据包数。 |
应始终为 0。 |
|
TCPv4\Connections Established |
显示当前状态为 ESTABLISHED 或 CLOSE-WAIT 的 TCP 连接的数目。可以建立的 TCP 连接数受非页面缓冲池大小的限制。当非页面缓冲池用尽时,将不能建立新的连接。 |
不适用。 |
确定当前用户负载。 |
TCPv6\Connection Failures |
显示当前状态为 ESTABLISHED 或 CLOSE-WAIT 的 TCP 连接的数目。可以建立的 TCP 连接数受非页面缓冲池大小的限制。当非页面缓冲池用尽时,将不能建立新的连接。 |
不适用。 |
确定当前用户负载。 |
TCPv4\Connections Reset |
显示 TCP 连接直接从 ESTABLISHED 状态或 CLOSE-WAIT 状态转换为 CLOSED 状态的次数。 |
重置的次数增加,或者重置的比率持续增加,都可能表明带宽不足。 |
有些浏览器发送 TCP 重置 (RST) 数据包,因此在使用此计数器确定重置速率时请务必小心。 |
TCPv6\Connections Reset |
显示 TCP 连接直接从 ESTABLISHED 状态或 CLOSE-WAIT 状态转换为 CLOSED 状态的次数。 |
重置的次数增加,或者重置的比率持续增加,都可能表明带宽不足。 |
有些浏览器发送 TCP 重置 (RST) 数据包,因此在使用此计数器确定重置速率时,请务必小心。 |
Exchange 域控制器连接计数器
下表显示 Exchange 域控制器连接计数器。
计数器 | 描述 | 阈值 | 疑难解答 |
---|---|---|---|
MSExchange ADAccess Caches(*)\LDAP Searches/Sec |
显示每秒发出的 LDAP 搜索请求数。 |
不适用。 |
可用于确定当前 LDAP 搜索速率。 |
MSExchange ADAccess Domain Controllers(*)\LDAP Read Time |
显示发送 LDAP 读请求至指定域控制器并接收响应的时间(毫秒)。 |
平均应该低于 50。峰值(最大值)不应大于 100 毫秒。 |
|
MSExchange ADAccess Domain Controllers(*)\LDAP Search Time |
显示发送 LDAP 搜索请求并接收响应的时间(毫秒)。 |
平均应该低于 50。峰值(最大值)不应大于 100 毫秒。 |
|
MSExchange ADAccess Processes(*)\LDAP Read Time |
显示发送 LDAP 读请求至指定域控制器并接收响应的时间(毫秒)。 |
平均应该低于 50。峰值(最大值)不应大于 100 毫秒。 |
|
MSExchange ADAccess Processes(*)\LDAP Search Time |
显示发送 LDAP 搜索请求并接收响应的时间(毫秒)。 |
平均应该低于 50。峰值(最大值)不应大于 100 毫秒。 |
|
MSExchange ADAccess Domain Controllers(*)\LDAP Searches timed out per minute |
显示前一分钟内返回 LDAP_Timeout 的 LDAP 搜索的次数。 |
对于所有角色,应该始终小于 10。如果这些值较大,则可能表明 Active Directory 资源出现问题。 |
|
MSExchange ADAccess Domain Controllers(*)\Long running LDAP operations/Min |
显示每分钟此域控制器上运行的时间超过指定阈值的 LDAP 操作数目。(默认阈值为 15 秒。) |
应始终小于 50。 |
如果这些值较大,则可能表明 Active Directory 资源出现问题。 |
© 2010 Microsoft Corporation。保留所有权利。