affinity Input-Output mask 服务器配置选项

若要执行多任务,Microsoft Windows 2000 和 Windows Server 2003 有时在不同的处理器之间移动进程线程。 尽管从作系统的角度来看高效,但此活动可以减少在大量系统负载下Microsoft SQL Server 性能,因为每个处理器缓存都会重复重新加载数据。 如果将各个处理器分配给特定线程,则通过消除处理器的重新加载需要,可以提高在这些条件下的性能;线程与处理器之间的这种关联称为“处理器关联”。

SQL Server 通过两个关联掩码选项支持处理器相关性: 关联掩码 (也称为 CPU 关联掩码)和 关联 I/O 掩码。 有关 关联掩码 选项的详细信息,请参阅 关联掩码服务器配置选项。 对具有 33 到 64 个处理器的服务器的 CPU 和 I/O 关联支持需要分别使用 affinity64 掩码服务器配置选项affinity64 Input-Output 掩码服务器配置选项

注释

对具有 33 到 64 个处理器的服务器的关联支持仅在 64 位操作系统上可用。

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

关联 I/O 掩码 的值指定多处理器计算机中的哪些 CPU 有资格处理 SQL Server 磁盘 I/O 操作。 该掩码是一个位图,其中最右边的位指定顺序最低的 CPU(0),该位左边的位指定顺序次低的 CPU(1),依此类推。 若要配置 32 个以上的处理器,请同时设置 关联 I/O 掩码affinity64 I/O 掩码

关联 I/O 掩码的值如下所示:

  • 1 字节关联 I/O 掩码可以封盖多处理器计算机中的最多 8 个 CPU。

  • 多处理器计算机中,一个 2 字节的 关联 I/O 掩码 最多可覆盖 16 个 CPU。

  • 在一台多处理器计算机中,3字节的关联 I/O 掩码可覆盖最多24个CPU。

  • 一个 4 字节的 关联 I/O 掩码 可以管理多处理器计算机中最多 32 个 CPU。

  • 若要涵盖 32 个以上的 CPU,请为前 32 个 CPU 配置四字节 关联 I/O 掩码,并为剩余的 CPU 配置最多四字节 关联64 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 关联 I/O 掩码 选项是专用作,因此仅在必要时才应使用它。 在大多数情况下,Windows 2000 或 Windows Server 2003 默认相关性可提供最佳性能。

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

  • 关联 I/O 掩码 选项和 关联掩码 选项中为 0。

  • 关联 I/O 掩码 选项中为 1, 在关联掩码 选项中为 0。

  • 关联 I/O 掩码 选项中为 0,在 关联掩码 选项中为 1。

关联 I/O 掩码选项是一个高级选项。 如果使用sp_configure系统存储过程更改设置,则仅当显示高级选项设置为 1 时,才能更改关联 I/O 掩码。 在 SQL Server 中,重新配置 关联 I/O 掩码 选项需要重启 SQL Server 实例。

谨慎

不要在 Windows 操作系统中配置 CPU 关联性,同时在 SQL Server 中配置关联掩码。 这些设置尝试实现相同的结果,如果配置不一致,则可能会产生不可预知的结果。 最好使用 SQL Server 中的“sp_configure”选项配置 SQL Server CPU 关联。

另请参阅

监视资源使用情况(系统监视器)
RECONFIGURE (Transact-SQL)
服务器配置选项 (SQL Server)
sp_configure(Transact-SQL)