Exchange环境正式运行后,我们需要对Exchange环境的性能进行评估,确保当前服务器的各项性能均在正常范围内,这样才能保证服务正常运行。我们通常会去监控服务器的内存、CPU、磁盘I/O等信息。下面是我整理的Exchange 2013服务器常用的性能监控项目,以供参考。
目录
4 Exchange 2013 Mailbox计数器... 6
启动 Windows 性能监视器的步骤
单击「开始」,单击“搜索”框,键入 perfmon.msc,然后按 Enter。
下表显示了可接受的阈值和有关 Exchange 域控制器连接计数器的信息。
计数器 | 描述 | 阈值 |
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 资源出现问题。 |
下表显示了可接受的阈值以及有关处理器和进程计数器的信息。
计数器 | 描述 | 阈值 |
Processor(_Total)\% Processor Time | 显示处理器执行应用程序或操作系统进程的时间的百分比。这是处理器未处于空闲状态时的情况。 | 平均应该少于 75%。 |
Processor(_Total)\% User Time | 显示花在用户模式上的处理器时间的百分比。用户模式是受限制的处理模式,旨在用于应用程序、环境子系统和完整子系统。 | 平均应该少于 75%。 |
Processor(_Total)\% Privileged Time | 显示花在特权模式上的处理器时间的百分比。特权模式是一种处理模式,旨在用于操作系统组件和硬件处理驱动程序。它允许直接访问硬件和所有内存。 | 平均应该少于 75%。 |
System\Processor Queue Length(所有实例) | 表示每个处理器所服务的线程数。处理器队列长度可用于确定处理器争用或 CPU 使用率很高是否由处理器处理所分配的工作负荷时容量不足所致。处理器队列长度显示了处理器就绪队列中延迟的线程数以及等待计划执行的线程数。列出的值是进行测量时最后一次观察到的值。 | 每个处理器的队列长度不应大于 5。在具有单个处理器的计算机上,如果观察到队列长度大于 5,则是警告要执行的作业经常多于处理器可以迅速处理的作业。如果此数大于 10,则是明显表示处理器已达到其容量限制,在 CPU 使用率很高时尤其如此。在具有多处理器的系统上,可以按物理处理器数划分队列长度。使用硬处理器关联(进程分配给特定的 CPU 核心)配置的多处理器系统的队列长度值很大,可以指示配置不平衡。尽管处理器队列长度通常未用于容量规划,但还是可以用于确定环境内的系统是否能够运行负载,或者是否应该购买其他处理器或速度更快的处理器以用于将来的服务器。 |
下表显示了可接受的阈值和有关内存计数器的信息。
计数器 | 描述 | 阈值 |
Memory\Available Mbytes | 显示可立即分配给进程或供系统使用的物理内存量 (MB)。它等于分配给备用(已缓存)、可用和零分页列表的内存总和。有关内存管理器的完整解释,请参阅 Microsoft Developer Network (MSDN) 或 Windows Server 2003 资源工具包中的“系统性能和疑难解答指南”。 | 应该保持在 RAM 总量的 5% 以上。 |
Memory\% Committed Bytes In Use | 显示 Memory\Committed Bytes 与 Memory\Commit Limit 的比率。已提交内存是指在需要写入磁盘时已在分页文件中保留空间的使用中的物理内存。提交限制由分页文件的大小确定。如果扩大分页文件,则提交限制会增加,并且该比率会减小。此计数器仅显示当前的百分比值;它不是平均值。 | 如果该值大于 80%,则表明系统很可能无法提供更多的内容。 |
下表显示了可接受的阈值和有关 .NET Framework 计数器的信息。
计数器 | 描述 | 阈值 |
.NET CLR Memory(*)\% Time in GC | 显示进行垃圾收集的时间。当计数器超过阈值时,表示 CPU 正在进行清理,并且不能有效用于加载。向服务器添加内存可以改善这种情况。 | 平均起来应该低于 10%。 |
.NET CLR Exceptions(*)\# of Excepts Thrown / sec | 显示每秒钟抛出的异常数。这包括 .NET Framework 异常和转换为 .NET Framework 异常的非托管异常。例如,非托管代码中的空指针引用异常将在非托管代码中作为 .NET Framework System.NullReferenceException 再次抛出。此指针包含已处理和未处理的异常。 | 应小于每秒请求总数 (RPS) (Web Server(_Total)\Connection Attempts/sec * .05) 的 5%。 |
下表显示了可接受的阈值和有关通用网络计数器的信息。
计数器 | 描述 | 阈值 |
Network Interface(*)\Packets Outbound Errors | 指示由于错误而无法传输的出站数据包数。 | 应始终为 0。 |
TCPv6\Connection Failures | 显示当前状态为 ESTABLISHED 或 CLOSE-WAIT 的 TCP 连接的数目。可以建立的 TCP 连接数受非页面缓冲池大小的限制。当非页面缓冲池用尽时,将不能建立新的连接。 | 不适用 |
TCPv4\Connections Reset | 显示 TCP 连接直接从 ESTABLISHED 状态或 CLOSE-WAIT 状态转换为 CLOSED 状态的次数。 | 重置的次数增加,或者重置的比率持续增加,都可能表明带宽不足。 |
TCPv6\Connections Reset | 显示 TCP 连接直接从 ESTABLISHED 状态或 CLOSE-WAIT 状态转换为 CLOSED 状态的次数。 | 重置的次数增加,或者重置的比率持续增加,都可能表明带宽不足。 |
下表显示了可接受的阈值和有关监控 NTLM 身份验证问题和 MaxConcurrentAPI 问题的通用计数器的信息。
计数器 | 描述 | 阈值 |
\Netlogon\Semaphore Waiters | 正在等待获取信号的线程数量。 | 请参阅 Microsoft 知识库文章 2688798 如何通过使用 MaxConcurrentAPI 设置来进行 NTLM 身份验证的性能调整 |
下表显示了可接受的阈值和有关 ASP.NET 计数器的信息。
计数器 | 描述 | 阈值 |
ASP.NET\Application Restarts | 显示在 Web 服务器的生存期期间已重新启动应用程序的次数。 | 应始终为 0。 |
ASP.NET\Worker Process Restarts | 显示在计算机上已重新启动工作进程的次数。 | 应始终为 0。 |
ASP.NET\Request Wait Time | 显示队列中最新请求等待的毫秒数。 | 应始终为 0。 |
ASP.NET Applications(*)\Requests In Application Queue | 显示应用程序请求队列中的请求数。 | 应始终为 0。 |
下表显示了有关 Exchange 工作负载管理计数器的信息。监视这些计数器非常重要,因为在非高峰期工作负载管理可能在后台运行任务。
计数器 | 描述 |
MSExchange WorkloadManagement Workloads(*)\ActiveTasks | 显示当前工作负载管理在后台运行的活动任务数。 |
MSExchange WorkloadManagement Workloads(*)\CompletedTasks | 显示已经完成的工作负载管理任务数。 |
MSExchange WorkloadManagement Workloads(*)\QueuedTasks | 显示当前正在排队等待处理的工作负载管理任务数。 |
下表显示了有关 HTTP 代理计数器的信息。
计数器 | 描述 |
MSExchange HttpProxy(*)\MailboxServerLocator Average Latency | 显示 MailboxServerLocator Web 服务调用的平均延迟(毫秒)。 |
MSExchange HttpProxy(*)\Average Authentication Latency | 显示最近 200 个示例中对 CAS 请求进行身份验证所花费的平均时间。 |
MSExchange HttpProxy(*)\Average ClientAccess Server Processing Latency | 显示最近 200 个请求中 CAS 处理时间(不包括代理所花费时间)的平均延迟(毫秒)。 |
MSExchange HttpProxy(*)\Mailbox Server Proxy Failure Rate | 显示最近 200 个示例中涉及此客户端访问服务器和 MBX 服务器之间失败的连接百分比。 |
MSExchange HttpProxy(*)\Outsanding Proxy Requests | 显示并发未处理代理请求的数量。 |
MSExchange HttpProxy(*)\Proxy Requests/Sec | 显示每秒处理的代理请求数。 |
MSExchange HttpProxy(*)\Requests/Sec | 显示每秒处理的请求数。 |
下表显示重播日志 I/O 延迟要求计数器。当超过这些值时,数据库副本可能不会足够快速地向被动数据库副本重播日志,从而形成滞后。日志复制性能也可能会受到影响。
计数器 | 描述 | 阈值 |
MSExchange Database\IO Log Read Average Latency | 指示从日志文件读取数据的平均时间(毫秒)。特定于日志重播和数据库恢复操作。 | 平均值应低于 200 毫秒。 峰值(最大值)不应高于 1,000 毫秒。 |
下表显示被动数据库副本 I/O 延迟要求计数器。当超过这些值时,数据库副本可能不会足够快速地向被动数据库副本重播日志,从而形成滞后。日志复制性能也可能会受到影响。
计数器 | 描述 | 阈值 | 疑难解答 |
MSExchange Database\I/O Database Reads (Recovery) Average Latency | 指示从数据库文件读取的平均时间(毫秒)。 | 平均值应低于 200 毫秒。 峰值(最大值)不应高于 1,000 毫秒。 | |
MSExchange Database\I/O Database Writes (Recovery) Average Latency | 指示向数据库文件写入的平均时间(毫秒)。 | 通常,当利用电池供电的写入缓存时,此延迟应小于 MSExchange Database\I/O Database Reads (Recovery) Average Latency。 | |
Database\Database Page Fault Stalls/sec | 指示由于数据库缓存中没有可分配的页面而无法获得服务的页面错误速率。 | 此计数器在生产服务器上应为 0。 | 如果此计数器大于 0,则指示 MSExchange Database\I/O Database Writes (Attached) Average Latency 太高。 |
下表显示主动数据库副本输入/输出 (I/O) 延迟要求计数器。当超过这些值时,客户端体验会降级。例如,用户可能会体验到缓慢的系统性能和邮件传递延迟。
计数器 | 描述 | 阈值 | 疑难解答 |
MSExchange Database\I/O Database Reads (Attached) Average Latency | 指示从数据库文件读取的平均时间(毫秒)。 | 平均值应低于 20 毫秒。 峰值(最大值)不应大于 100 毫秒。 | |
MSExchange Database\I/O Database Writes (Attached) Average Latency | 指示向数据库文件写入的平均时间(毫秒)。 此计数器并不能很好地反映客户端延迟,因为数据库写入是异步的。 | 通常,当利用电池供电的写入缓存时,此延迟应小于 MSExchange Database\I/O Database Reads (Attached) Average Latency。 | |
Database\Database Page Fault Stalls/sec | 指示由于数据库缓存中没有可分配的页面而无法获得服务的页面错误速率。 | 此计数器在生产服务器上应为 0。 | 如果此计数器大于 0,则指示 MSExchange Database\I/O Database Writes (Attached) Average Latency 太高。 |
下表显示活动日志 I/O 延迟要求计数器。当超过这些值时,客户端体验会降级。例如,用户可能会体验到缓慢的系统性能和邮件传递延迟。
计数器 | 描述 | 阈值 | 疑难解答 |
MSExchange Database\IO Log Writes Average Latency | 指示向活动日志文件写入日志缓冲区的平均时间(毫秒)。 | 此计数器在生产服务器上应为 10。 | 如果此计数器大于 10,则指示 MSExchange Database\I/O Database Writes (Attached) Average Latency 太高。 |
Database\Log Record Stalls/sec | 指示每秒因日志缓冲区已满而无法添加到日志缓冲区的日志记录数。 | 平均值应小于每秒 10 条。 峰值(最大值)不应高于每秒 100 条。 | |
Database\Log Threads Waiting | 指示通过将数据库的数据写入日志来等待数据库更新完成的线程数。 | 平均值应小于 10 个等待线程。 |
下表显示可接受的阈值和有关 RPC 客户端访问计数器的信息。
计数器 | 描述 | 阈值 |
MSExchange RpcClientAccess\RPC Averaged Latency | 显示过去 1,024 个数据包的平均延迟(毫秒)。 | 应小于 250 毫秒。 |
MSExchange RpcClientAccess\RPC Requests | 显示 RPC 客户端访问服务当前正处理的客户端请求数。 | 不应大于 40。 |
下表显示了可接受的阈值和有关信息存储计数器的信息。
计数器 | 描述 | 阈值 |
MSExchangeIS Client Type\RPC Requests | 指示当前在信息存储进程中执行的全部 RPC 请求。 | 应始终小于 70。 |
MSExchangeIS Client Type(*)\RPC Average Latency | 显示针对某个特定客户端协议,过去 1,024 个数据包的平均服务器 RPC 延迟(毫秒)。 | 每个客户端的平均时间应小于 50 毫秒。 |
MSExchangeIS Client Type(*)\RPC Average Latency | RPC Latency average (msec) 是每个数据库的 RPC 请求的平均延迟(毫秒)。平均延迟通过加载 exrpc32 以来的所有 RPC 计算得出。 | 应始终小于 50 毫秒,且峰值小于 100 毫秒。 |
下表显示了活动日志 I/O 延迟要求计数器及其可接受的阈值。在超出阈值时,客户体验会下降。例如,用户可能会体验到邮件传递延迟或缓慢的系统性能。
计数器 | 描述 | 阈值 |
MSExchange Database ==> Instances(*)\I/O Database Reads (Attached) Average Latency | 显示每个数据库读取操作的平均时间长度(毫秒)。 | 平均时间应小于 20 毫秒。 |
MSExchange Database ==> Instances(*)\I/O Database Writes (Attached) Average Latency | 显示每个数据库写入操作的平均时间长度(毫秒)。 | 平均时间应小于 50 毫秒。 |
MSExchange Database ==> Instances(*)\I/O Log Writes Average Latency | 显示每个日志写入操作的平均时间长度(毫秒)。 | 平均时间应小于 10 毫秒。 |
MSExchange Database ==> Instances(*)\I/O Database Reads (Recovery) Average Latency | 显示每个被动数据库读取操作的平均时间长度(毫秒)。 | 平均时间应小于 200 毫秒。 |
MSExchange Database ==> Instances(*)\I/O Database Writes (Recovery) Average Latency | 显示每个被动数据库写入操作的平均时间长度(毫秒)。 | 应小于相同实例的读取延迟时间,如 MSExchange Database ==> Instances(*)\I/O Database Reads (Recovery) Average Latency 计数器所测量。 |
下表显示有关客户端连接计数器和 Internet Information Services (IIS) 计数器的信息。
计数器 | 描述 |
MSExchange ActiveSync\Requests/sec | 显示每秒通过 ASP.NET 从客户端接收到的 HTTP 请求数。确定当前的 Exchange ActiveSync 请求速率。仅用于确定当前用户负载。 |
MSExchange ActiveSync\Ping Commands Pending | 显示队列中当前挂起的 ping 命令数。 |
MSExchange ActiveSync\Sync Commands/sec | 显示每秒处理的同步命令数。客户端使用此命令同步文件夹中的项目。 |
MSExchange Availability Service\Availability Requests (sec) | 显示每秒服务的请求数。该请求仅针对于忙/闲信息或包括建议。一个请求可能包含多个邮箱。确定可用性服务请求发生的速率。 |
MSExchange OWA\Current Unique Users | 显示当前登录到 Outlook Web App 的唯一用户数。此值监视唯一活动用户会话数,以便仅在用户注销或其会话超时后从该计数器将其删除。确定当前用户负载。 |
MSExchange OWA\Requests/sec | 显示每秒由 Outlook Web App 处理的请求数。确定当前用户负载。 |
MSExchangeAutodiscover\Requests/sec | 显示每秒处理的自动发现服务请求数。确定当前用户负载。 |
MSExchangeWS\Requests/sec | 显示每秒处理的请求数。确定当前用户负载。 |
Web Service(_Total)\Current Connections | 显示当前与 Web 服务建立连接的数量。确定当前用户负载。 |
Web Service(Default Web Site)\Current Connections | 显示对默认网站建立的当前连接数,此数目对应于命中前端 CAS 服务器角色的连接数。确定当前用户负载。 |
WebService(_Total)\Connection Attempts/sec | 显示尝试连接到 Web 服务的速率。确定当前用户负载。 |
显示没有使用 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、MOVE、COPY、MKCOL、PROPFIND、PROPPATCH、SEARCH、LOCK 或 UNLOCK 方法发出 HTTP 请求的速率。确定当前用户负载。 |
原文地址:http://jialt.blog.51cto.com/4660749/1775129