解决磁盘限制问题

 

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

磁盘问题通常是大型 Exchange 部署的瓶颈。

Exchange 广泛应用使用磁盘子系统,但其用途随磁盘的预期功能而变化。其中包括以下五个重要功能:

  • 临时磁盘
  • 数据库磁盘
  • 事务日志磁盘
  • SMTP 队列
  • 页面文件磁盘

提供以上功能的每组磁盘有不同的 I/O 使用模式,需要独立分析。就因为这些不同的模式,一种磁盘只能用于一种功能。

操作系统临时驱动器是所有格式进行转换(如从 RTF 转换到 HTML)的地方,也是 Microsoft Index Server Indexing 服务在执行爬网过程中创建和访问的所有临时文件的存放位置。


在首次安装时,操作系统将临时文件的创建和使用位置设置在操作系统本身所在的磁盘中。这意味着临时磁盘的所有 I/O 将与从该驱动器运行的程序以及页面文件操作的 I/O 竞争。这种 I/O 竞争会影响性能。为避免操作系统与临时磁盘之间的 I/O 竞争,建议将 TEMP 的全局环境设置更改为指向其他磁盘,并将临时磁盘设置为其自己的磁盘。

请使用下表中列出的计数器来确定在临时磁盘中是否存在任何资源争用现象。

临时磁盘性能计数器

计数器 期望值

PhysicalDisk\Average Disk sec/Read

表示从磁盘读取数据所需的平均时间(以秒计)。

  • 平均值应低于 10 毫秒。
  • 峰值(最大值)不应大于 50 毫秒。

PhysicalDisk\Average Disk sec/Write

表示向磁盘写入数据所需的平均时间(以秒计)。

  • 平均值应低于 10 毫秒。
  • 峰值(最大值)不应大于 50 毫秒。

PhysicalDisk\Average Disk Queue Length

表示在采样间隔内排队等候读取和写入所选磁盘的平均请求数。

  • 平均值应小于磁盘心轴数(如果它实际是个物理磁盘,则该值为 1)。

Exchange 数据库由两个文件组成:

  • .edb 文件(MAPI 内容) 该文件可存储所有 MAPI 邮件,以及存储过程用于定位所有邮件, .edb 和 .stm 文件的校验和、MAPI 邮件的表格。
  • .stm 文件(非 MAPI 内容) 该文件包含与固有的 Internet 内容一起传送的邮件。

由于对这两个文件的访问通常是随机的,因此,可将它们放在相同的磁盘卷上。

在分析每个物理数据库磁盘时,可使用下表中列出的计数器来确定磁盘上是否存在性能下降。

数据库磁盘性能计数器

计数器 期望值

PhysicalDisk\Average Disk sec/Read

表示从磁盘读取数据所需的平均时间(以秒计)。

  • 平均值应低于 20 毫秒。
  • 峰值(最大值)不应大于 50 毫秒。

PhysicalDisk\Average Disk sec/Write

表示向磁盘写入数据所需的平均时间(以秒计)。

  • 平均值应低于 20 毫秒。
  • 峰值(最大值)不应大于 50 毫秒。

PhysicalDisk\Average Disk Queue Length

表示在采样间隔期间排队等候读取和写入所选磁盘的平均请求数。

  • 该平均值应小于磁盘心轴数。如果正在使用 SAN,请忽略此计数器并专注于延迟计数器:PhysicalDisk\Average Disk sec/Read 和 PhysicalDisk\Average Disk sec/Write。

在下图中,一个数据库磁盘 (P:\) 正遇到高写入延迟(如 PhysicalDisk\Average Disk sec/Write 计数器所示),平均延迟了 62 毫秒 (ms),峰值经常在 80 毫秒以上,有时会超过 100 毫秒。

f0497cf2-ca1f-440a-96ef-4696e9c01b93

Exchange 服务器的数据库写入延迟通常在 20 毫秒以下,峰值(最大值)低于 50 毫秒。但是,在使用同步复制时,不可能总是将写入延迟保持在此范围内。对于最终用户来说,除非数据库缓存已满并且不能再写入,否则数据库写入延迟问题通常不会很明显。使用同步复制时,Performance Monitor Database Page Fault Stalls/sec 计数器与 PhysicalDisk\Average Disk sec/Write 计数器相比,能更好地指示客户是否受写入延迟的影响。

在生产服务器上,Database Page Fault Stalls/sec 计数器的值总是为 0,因为数据库页面错误延迟指示数据库缓存已满。数据库缓存已满意味着 Exchange 在页面提交给磁盘以前,不能在缓存中放置项目。另外,在大多数存储子系统中,读取延迟受写入延迟影响。所以,采用默认的存储子系统性能监视器采样速率很可能检测不到这些读取延迟。而远程过程调用 (RPC) 延迟受数据库页面延迟的影响也会有所增加,这可降低客户端体验。

因为与磁盘有关的性能问题会给用户体验造成负面影响,所以建议管理员把对磁盘性能的监视做为日常系统运行状况监视的一部分。在同步复制环境中分析数据库逻辑单位编号 (LUN) 时,请使用下表中列出的计数器来确定磁盘上是否存在性能下降。

用于数据库磁盘性能评估的性能监视器计数器

性能监视器计数器 期望值

PhysicalDisk\Average Disk sec/Read

表示从磁盘读取数据所需的平均时间(以秒计)。

  • 平均值应低于 20 毫秒。
  • 峰值(最大值)不应大于 50 毫秒。

PhysicalDisk\Average Disk sec/Write

表示向磁盘写入数据所需的平均时间(以秒计)。

  • 此计数器并不适合在同步复制环境中指示客户端延迟。

Database\Database Page Fault Stalls/sec

表示因数据库缓存分配时没有可用的页面而不能提供服务的页面错误速率。

  • 该计数器在生产服务器上应该为零。

在下图中,一个数据库磁盘 (Q:\) 遇到极高的写入延迟(如 Average Disk sec/Write counter 计数器所示),平均延迟 313 毫秒。但是 Average Disk sec/Read 的值显示没有延迟问题迹象,其平均延迟为 14 毫秒(建议 < 20 毫秒),在可接受范围内。很明显,Average Disk sec/Write 计数器不适合在同步复制环境中指示客户延迟。RPC Average Latency 在本示例中平均延迟 24 毫秒(建议 < 50 毫秒)。在本方案中,Microsoft Outlook 用户没有受到高写入延迟的影响。

使用性能监视器监视同步复制的数据库磁盘

性能监视器图形

在下图中,根据 RPC Averaged Latency 峰值及其关联的 Database Page Fault Stalls/sec 峰值,数据库负荷已过重。

以下是 RPC Averaged Latency 被 Database Fault Stalls/sec 影响的示例

性能监视器图形

事务日志文件用于维护 .edb 和 .stm 文件的状态和完整。也就是说,日志文件可有效地代表数据。为每个存储组都设置了一个事务日志文件。为了提高性能,Exchange 将每个事务日志文件当作数据库来执行。如果发生灾难,必须重建服务器,可使用最新的事务日志文件来重建数据库。如果有日志文件和最新备份,可以恢复所有的数据。但是,如果日志文件丢失,数据也将丢失。

除了还原备份时,通常情况不读取日志驱动器。这意味着写入性能对事务日志很重要,并且任何分析都要密切地观察这一点。在分析每个物理日志磁盘时,可使用下表中列出的计数器来确定磁盘上是否存在性能下降。

事务日志磁盘性能计数器

计数器 期望值

PhysicalDisk\Average Disk sec/Read

表示从磁盘读取数据所需的平均时间(以秒计)。

  • 平均值应低于 5 毫秒。
  • 峰值(最大值)不应大于 50 毫秒。

PhysicalDisk\Average Disk sec/Write

表示向磁盘写入数据所需的平均时间(以秒计)。

  • 平均值应低于 10 毫秒。
  • 峰值(最大值)不应大于 50 毫秒。

PhysicalDisk\Average Disk Queue Length

表示在采样间隔期间排队等候读取和写入所选磁盘的平均请求数。

  • 该平均值应小于磁盘心轴数。
    如果正在使用 SAN,请忽略此计数器并专注于延迟计数器:
    PhysicalDisk\Average Disk sec/Write 和 PhysicalDisk\Average Disk sec/Read

Database\Log Record Stalls/sec

表示因日志缓冲区已满不能添加到日志缓冲区的每秒日志记录数。

  • 平均值应小于 10/秒。
  • 峰值(最大值)不应大于 100/秒。

Database\Log Threads Waiting

表示通过将数据写入日志而完成数据库更新之前等待的线程数。

如果此数值过高,则说明日志可能成为了瓶颈。

  • 平均值应小于 10 个等待线程。

SMTP 队列将存储 SMTP 邮件,直到 Exchange 将其写入数据库(专用或公用),或将这些邮件发送到其他服务器或连接器。SMTP 队列通常会经历随机的小型 I/O。

在分析每个 SMTP 队列磁盘时,可使用下表中列出的计数器来确定磁盘上是否存在性能下降。

SMTP 队列性能计数器

计数器 期望值

PhysicalDisk\Average Disk sec/Read

表示从磁盘读取数据所需的平均时间(以秒计)。

  • 平均值应低于 10 毫秒。
  • 峰值(最大值)不应大于 50 毫秒。

PhysicalDisk\Average Disk sec/Write

表示向磁盘写入数据所需的平均时间(以秒计)。

  • 平均值应低于 10 毫秒。
  • 峰值(最大值)不应大于 50 毫秒。

PhysicalDisk\Average Disk Queue Length

表示在采样间隔期间排队等候读取和写入所选磁盘的平均请求数。

  • 该平均值应小于磁盘心轴数。

页面文件作为物理内存扩展的同时也是系统放置未使用页或以后所需页的区域。即使在具有大量可用内存的机器中,页面文件也总是有一定的利用率。这种持续的利用率是因为操作系统在内存中试图仅保留所需的页面和用于操作的足够可用空间。例如,只在启动时才使用的打印工具可能把一部分内存分页给磁盘,而且在不使用的情况下不会收回。

在物理内存负载过重的服务器中,很重要的一点是确保所有对页面文件的访问尽快完成,以避免出现服务器崩溃的情况。服务器通常会在页面文件已满前的很长时间就开始查看内存操作的错误。因此,观察页面文件磁盘的使用模式要比磁盘的填充程度更重要。使用下表中列出的计数器来确定页面文件磁盘上是否存在性能下降。

页面文件磁盘性能计数器

计数器 期望值

PhysicalDisk\Average Disk sec/Read

表示从磁盘读取数据所需的平均时间(以秒计)。

  • 平均值应始终低于 10 毫秒。

PhysicalDisk\Average Disk sec/Write

表示向磁盘写入数据所需的平均时间(以秒计)。

  • 平均值应始终低于 10 毫秒。

PhysicalDisk\Average Disk Queue Length

表示在采样间隔期间排队等候读取和写入所选磁盘的平均请求数。

  • 该平均值应小于磁盘心轴数。

Paging File\% Usage

表示在采样间隔期间使用的分页文件数量(以百分比表示)。

高数值表示您可能需要增加 Pagefile.sys 文件的大小或添加更多 RAM。

  • 该值应保持在 50% 以下。

以下列表描述提高磁盘性能的方法:

  • 在阵列控制器上启用缓存
    对于直接附加存储解决方案,当启用阵列控制器的缓存功能时,性能将大大提高。尤其是回写缓存非常有效,并且可能会使性能显著提高。另外重要的一点是,确保阵列控制器具备电池备份功能,这样,任何电源波动或停用都不会导致错误或不一致性。
  • 增加日志缓冲区
    增加日志缓冲区可以提高出现大量日志记录延迟的日志磁盘的性能。有关详细信息,请参阅 Exchange 技术文章“Microsoft Exchange 2000 Internals:Quick Tuning Guide”(英文),而对于 Exchange 2003,日志缓冲区的默认值是 512,并从默认值开始可增加到最大值 9000。
  • 增加数据库缓存
    增加数据库缓存(动态缓冲区分配)的大小可以改善磁盘的性能。但是,不建议增加数据库缓存大小,因为增加的大小随时间变化可能因服务器内存碎片或内存不足而影响内存。
  • 将磁盘分区与存储磁道边界对齐
    将磁盘分区与存储磁道边界对齐对磁盘性能有积极影响。但是,性能改变的程度取决于存储技术和实现情况,因而要依赖存储供应商。
  • 强制实施邮件大小限制
    强制实施邮件大小限制可以减少磁盘利用率,从而改善性能。但是,在强制实施邮件大小限制以前,要考虑对组织的服务级别协议 (SLA) 会产生什么影响。
  • 强制实施邮箱大小限制
    强制实施邮件限制时,强制实施邮箱配额可改善磁盘性能。同样,在考虑强制实施邮箱限制时仍要考虑组织的 SLA。
 
显示: