affinity I/O mask 选项

为了执行多任务,Microsoft Windows 2000 和 Windows Server 2003 有时会在不同的处理器之间移动进程线程。虽然从操作系统方面而言,此活动是高效的,但是在高系统负荷的情况下,该活动会降低 Microsoft SQL Server 的性能,因为每个处理器缓存都会不断地重新加载数据。如果将各个处理器分配给特定线程,则通过消除处理器的重新加载需要,可以提高在这些条件下的性能;线程与处理器之间的这种关联称为“处理器关联”。

SQL Server 2005 通过以下两个关联掩码选项来支持处理器关联:affinity mask(也称为 CPU affinity mask)和 affinity I/O mask。有关 affinity mask 选项的详细信息,请参阅 affinity mask 选项。对具有 33 到 64 个处理器的服务器的 CPU 和 I/O 关联支持还要求分别使用 affinity64 mask 选项affinity64 I/O mask 选项

ms189629.note(zh-cn,SQL.90).gif注意:
对具有 33 到 64 个处理器的服务器的关联支持仅在 64 位操作系统上可用。

affinity I/O mask 选项将 SQL Server 磁盘 I/O 与指定的 CPU 子集绑定。在高端 SQL Server 联机事务处理 (OLTP) 环境中,此扩展可以提高 SQL Server 线程执行 I/O 的性能。此增强功能不支持对各个磁盘或磁盘控制器的硬件关联。

affinity I/O mask 的值指定了在多处理器计算机中有哪些 CPU 可用于处理 SQL Server 磁盘 I/O 操作。该掩码是一个位图,其中最右边的位指定顺序最低的 CPU(0),该位左边的位指定顺序次低的 CPU(1),依此类推。若要配置超过 32 个处理器,请同时设置 affinity I/O maskaffinity64 I/O mask

affinity I/O mask 的值如下所示:

  • 在多处理器计算机中,单字节关联 I/O 掩码最多可以涵盖 8 个 CPU。
  • 在多处理器计算机中,双字节关联 I/O 掩码****最多可以涵盖 16 个 CPU。
  • 在多处理器计算机中,3 字节关联 I/O 掩码最多可以涵盖 24 个 CPU。
  • 在多处理器计算机中,4 字节关联 I/O 掩码****最多可以涵盖 32 个 CPU。
  • 若要包括超过 32 个 CPU,请为前 32 个 CPU 配置一个 4 字节关联 I/O 掩码,并为余下的 CPU 配置最多 4 字节的 affinity64 I/O 掩码****。

关联 I/O 模式中某一位的值为 1,则指定相应的 CPU 可执行 SQL Server 磁盘 I/O 操作;值为 0,则指定相应的 CPU 未安排任何 SQL Server 磁盘 I/O 操作。如果将所有位设置为零或不指定关联 I/O 掩码,则 SQL Server 磁盘 I/O 将由任何可处理 SQL Server 线程的 CPU 执行。

因为设置 SQL Server affinity I/O mask 选项是一项专用操作,所以建议只在需要时使用。大多数情况下,Windows 2000 或 Windows Server 2003 的默认关联就可以提供最佳性能。

指定 affinity I/O mask 选项后,必须将其与 affinity mask 配置选项一起使用。请勿在 affinity I/O mask 开关和 affinity mask 选项中启用相同的 CPU。每个 CPU 对应的位必须处于下列三种状态之一:

  • affinity I/O mask 选项和 affinity mask 选项中均为 0。
  • affinity I/O mask 选项中为 1,在 affinity mask 选项中为 0。
  • affinity I/O mask 选项中为 0,在 affinity mask 选项中为 1。

affinity I/O mask 选项是一个高级选项。如果使用 sp_configure 系统存储过程来更改该设置,则只有在 show advanced options 设置为 1 时才能更改 affinity I/O mask。在 SQL Server 2005 中,重新配置 affinity I/O mask 选项后需要重新启动 SQL Server 实例。

ms189629.Caution(zh-cn,SQL.90).gif注意:
请不要在 Windows 操作系统中配置 CPU 关联后,还在 SQL Server 中配置关联掩码。这些设置实现的效果相同,如果配置不一致,则可能会得到意外的结果。最好使用 SQL Server 中的 sp_configure 选项配置 SQL Server CPU 关联。

请参阅

概念

设置服务器配置选项

其他资源

监视资源使用情况(系统监视器)
RECONFIGURE (Transact-SQL)
sp_configure (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助