解决 I/O 传输问题

 

上一次修改主题: 2005-05-18

如果您有磁盘问题,可能需要确定是什么引起的 I/O 瓶颈。要执行此操作,您将:

  1. 确定发生 I/O 的驱动器。如果将 Exchange 文件分隔到独立的卷上,能够更容易确定是分页文件、目录数据库 (.edb) 文件、Exchange 流式数据库 (.stm) 文件、日志 (.log) 文件还是路由队列文件导致 I/O 发生。
    通过查看以下计数器,可以了解与 .log 文件相比 .edb 文件将有多少 I/O:
    Database\Database Pages Written/sec Database\Log Writes/sec
    为了帮助确定哪个进程导致磁盘 I/O,您可以使用以下计数器:
    Process(process name)\IO Read Operations/sec Process(process name)\IO Write Operations/sec
  2. 使用 Sysinternals Filemon 工具来确定哪些文件显示 I/O 活动。选择需要调查的逻辑磁盘并显示所有磁盘读取和写入。这对多用途磁盘尤其有用,如 C:\,该磁盘可能包含由系统或应用程序使用的几个主要文件。
    下图显示由 Filemon 为所有磁盘读取和写入生成的列表。
    4f53b6d0-a9c1-4dee-9d7a-f3c361927f0c

应该确定消耗 CPU 的进程。以下依次是最可能引起此问题的四个计数器。

Process(STORE)\% Processor Time Process(inetinfo)\% Processor Time Process(EMSMTA)\% Processor Time Process(System)\% Processor Time

note注意:
进程计数器对服务器上的每个 CPU 都计数 100%。在具有八个处理器的计算机上,以上每个处理器计数器的值都介于 0% 到 800% 之间。

下图显示最可能消耗 CPU 的进程的柱状视图。在该图中,Store.exe 进程耗尽了大部分 CPU。如果您认为除了这四个计数器外还有其他进程可能消耗 CPU,则将其包括在此柱状视图中。

5c123779-469e-4e35-bd4c-2247404f6e42
note注意:
在系统监视器的柱状视图(性能管理单元的图形组件)中查看多个计数器是分离问题计数器的一个快速方法。

如果要确定使用内存的进程,以下计数器是最有可能消耗内存的进程:

Process(process name)\Private Bytes Database\Database Cache Size

由 Process(STORE.EXE)\Private Bytes 计数器指示的 Store.exe 进程往往消耗大部分已提交的字节。

如果客户端通信遇到意外网络通信(如未连接客户端时的大量通信),您可以使用网络监视器来检查通信。网络监视器是监视 LAN 并提供网络统计图形显示的网络诊断工具。从网络的数据流收集信息时,网络监视器会显示以下类型的信息:

  • 发送框架到网络的计算机源地址(该地址是在网络上标识该计算机的唯一十六进制 (或 base-16)数字)。
  • 接收框架的计算机的目标地址。
  • 用于发送框架的协议。
  • 要发送的数据或部分消息。

网络监视器收集这些信息时使用的进程称为“捕获”。默认情况下,网络监视器会将有关在网络上检测到的所有框架的统计信息收集到捕获缓冲区,该缓冲区是内存中保留的存储区域。要捕获特定框架子集的统计信息,可以通过设计捕获筛选器来选取这些框架。信息捕获完成后,您可以设计显示筛选器来指定要在网络监视器的框架查看器窗口中显示多少捕获的信息。

要使用网络监视器,计算机必须具有支持混杂模式的网卡。如果您在远程计算机上使用网络监视器,则本地工作站不需要支持混杂模式的网络适配器,但远程计算机需要。

一旦本地或远程捕获到数据后,可以将数据保存到文本文件或捕获文件,之后可以打开并进行检查。

note注意:
要使用网络监视器完全解决网络问题,考虑将网络监视器配置为:不仅可以捕获客户发送和接收的信息,还可以捕获服务器发送和接收的信息。跟踪客户端和服务器端的网络通信可帮助您更彻底地解决网络问题。
 
显示: