按 SQL Server 版本划分的计算能力限制
本主题讨论不同 SQL Server 2012 版本的计算能力限制,以及在具有超线程处理器的物理和虚拟化环境中计算能力限制有何不同。
下表描述了上图中所用的符号:
值 |
说明 |
---|---|
0..1 |
零个或 1 个 |
1 |
恰好一个 |
1..* |
一个或更多 |
0..* |
零个或更多 |
1..2 |
1 个或 2 个 |
重要提示 |
---|
进一步详细阐述:
|
下列定义适用于在本主题中使用的术语:
从 SQL Server、操作系统、应用程序或驱动程序的角度理解,线程或逻辑处理器是一种逻辑计算引擎。
内核是一个处理器单元,可由一个或多个逻辑处理器组成。
物理处理器可包含一个或多个内核。 物理处理器等同于处理器包或插槽。
具有多个物理处理器的系统或是具有含多个内核和/或超线程的物理处理器的系统,可支持操作系统同时执行多项任务。 每个执行线程都显示为一个逻辑处理器。 例如,如果计算机具有启用超线程的两个四核处理器,且每个内核两个线程,则您有 16 个逻辑处理器:2 个处理器 x 每个处理器 4 个内核 x 每个内核 2 个线程。 值得注意的是:
来自超线程内核的单线程的逻辑处理器计算能力不及来自禁用超线程的同一内核的逻辑处理器计算能力。
但是超线程内核中两个逻辑处理器的计算能力则超过了禁用超线程的同一内核的计算能力。
从 SQL Server 2012 开始,每个版本的 SQL Server 都有两个计算能力限制:
插槽最大值(与物理处理器/插槽/处理器包相同)。
操作系统报告的内核最大数量。
这些限制适用于单个 SQL Server 实例。 它们代表单个实例将使用的最大计算能力。 它们不会限制可能部署该实例的服务器。 实际上,在同一物理服务器上部署多个 SQL Server 实例可以有效使用物理服务器的计算能力,因为更多插槽和/或内核的计算能力超出了下表中的计算能力限制。
下表指定每个版本的 SQL Server 2012 的单个实例的计算能力限制:
SQL Server 版本 |
单个实例使用的最大计算能力(SQL Server 数据库引擎) |
单个实例使用的最大计算能力(AS、RS)1 |
---|---|---|
Enterprise Edition:基于内核授予许可1 |
操作系统支持的最大值 |
操作系统支持的最大值 |
开发人员 |
操作系统支持的最大值 |
操作系统支持的最大值 |
Evaluation |
操作系统支持的最大值 |
操作系统支持的最大值 |
商业智能 |
限制为 4 个插槽或 16 核,取二者中的较小值 |
操作系统支持的最大值 |
Standard |
限制为 4 个插槽或 16 核,取二者中的较小值 |
限制为 4 个插槽或 16 核,取二者中的较小值 |
Web |
限制为 4 个插槽或 16 核,取二者中的较小值 |
限制为 4 个插槽或 16 核,取二者中的较小值 |
Express |
限制为 1 个插槽或 4 核,取二者中的较小值 |
限制为 1 个插槽或 4 核,取二者中的较小值 |
Express with Tools |
限制为 1 个插槽或 4 核,取二者中的较小值 |
限制为 1 个插槽或 4 核,取二者中的较小值 |
Express with Advanced Services |
限制为 1 个插槽或 4 核,取二者中的较小值 |
限制为 1 个插槽或 4 核,取二者中的较小值 |
1 对于 Enterprise Edition 配合基于服务器+客户端访问许可证 (CAL) 的许可(对新协议不可用),每个 SQL Server 实例仅限用于最多 20 个内核。 基于内核的服务器许可模型没有限制。
在虚拟化环境中,计算能力限制基于逻辑处理器的数目,而不是内核数目,这是因为处理器体系结构对来宾应用程序不可见。 例如,如果服务器的四个插槽中插入了四核处理器,同时该服务器每个内核可支持两个超线程,这样在启用超线程时就有 32 个逻辑处理器,在禁用超线程时只有 16 个逻辑处理器。 这些逻辑处理器可映射到服务器上的虚拟机,而这些虚拟机在该逻辑处理器上的计算负载映射到主机服务器中物理处理器上的执行线程。
如果每个虚拟处理器的性能很重要,则最好禁用超线程。 用户可以在 BIOS 设置过程中使用 BIOS 的处理器设置启用或禁用超线程,但这通常是服务器范围内的操作,该操作将影响运行在该服务器上的所有工作负荷。 这就可能要求将要运行在虚拟化环境中的工作负荷与会受益于物理操作系统环境中的超线程性能提升的工作负荷分隔开。