You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/sql-server/compute-capacity-limits-by-edition-of-sql-server.md
+50-43Lines changed: 50 additions & 43 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,8 +3,8 @@ title: Compute capacity limits by edition of SQL Server
3
3
description: This article discusses compute capacity limits for SQL Server 2019 and how they differ in physical and virtualized environments with simultaneous multithreading (SMT) processors.
4
4
author: MikeRayMSFT
5
5
ms.author: mikeray
6
-
ms.reviewer: randolphwest
7
-
ms.date: 07/09/2024
6
+
ms.reviewer: randolphwest, derekw
7
+
ms.date: 07/30/2024
8
8
ms.service: sql
9
9
ms.subservice: release-landing
10
10
ms.topic: conceptual
@@ -60,57 +60,31 @@ The following definitions apply to the terms used in this article:
60
60
61
61
- A physical processor can consist of one or more cores. A physical processor is the same as a processor package or a socket.
62
62
63
-
## <aid="numa-64"></a> Breaking change in SQL Server 2022 Cumulative Update 11
63
+
<aid="numa-64"></a>
64
64
65
-
[!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)] limits the number of logical processors per NUMA node to 64. On servers with more than 64 logical processors per NUMA node, you can use a BIOS / firmware configuration to change the number of NUMA nodes per physical socket presented to the operating system, to limit to a maximum of 64 logical processors.
You can consider reducing the number of logical cores per NUMA node. For more information, see [Reduce logical core count per NUMA node](#reduce-logical-core-count-per-numa-node).
Systems with more than one physical processor or systems with physical processors that have multiple cores and/or SMT enable the operating system to execute multiple tasks simultaneously. Each thread of execution appears as a logical processor. For example, if your computer has two quad-core processors with SMT enabled and two threads per core, you have 16 logical processors: 2 processors x 4 cores per processor x 2 threads per core. It's worth noting that:
72
-
73
-
- The compute capacity of a logical processor from a single thread of an SMT core is less than the compute capacity of a logical processor from that same core with SMT disabled.
69
+
## Limit number of logical cores per NUMA node to 64
74
70
75
-
- The compute capacity of the two logical processors in the SMT core is greater than the compute capacity of the same core with SMT disabled.
71
+
You can experience issues such as stack dumps on servers with more than 64 logical processors per NUMA node. A BIOS or firmware configuration can reduce the logical core count to a maximum of 64 logical processors per NUMA node, presented to the operating system.
76
72
77
-
Each edition of [!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)] has two compute capacity limits:
73
+
> [!CAUTION]
74
+
> [!INCLUDE [sssql22-md](../includes/sssql22-md.md)] Cumulative Update 11 introduced a breaking change, where the [!INCLUDE [ssde-md](../includes/ssde-md.md)] doesn't start if it detects more than 64 logical cores per NUMA node.
78
75
79
-
- A maximum number of sockets (or physical processors or processor packages)
76
+
You can reduce the logical core count per NUMA node in an [Azure Virtual Machine](#disable-smt-in-an-azure-virtual-machine), by disabling SMT. For [bare-metal](#reduce-logical-core-count-on-bare-metal-instances)[!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)] instances, you can reduce the logical core count with sub-NUMA clustering (SNC) or Nodes per Socket (NPS) options.
80
77
81
-
- A maximum number of cores as reported by the operating system
78
+
<aid="disable-smt-in-a-virtual-machine"></a>
82
79
83
-
These limits apply to a single instance of [!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)]. They represent the maximum compute capacity that a single instance uses. They don't constrain the server where the instance might be deployed. In fact, deploying multiple instances of [!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)] on the same physical server is an efficient way to use the compute capacity of a physical server with more sockets and/or cores than the capacity limits allow.
80
+
### Disable SMT in an Azure Virtual Machine
84
81
85
-
The following table specifies the compute capacity limits for a single instance of each edition of [!INCLUDE [ssnoversion](../includes/ssnoversion-md.md)]:
86
-
87
-
|[!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)] edition | Maximum compute capacity for a single instance ([!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)][!INCLUDE [ssDE](../includes/ssde-md.md)]) | Maximum compute capacity for a single instance (AS, RS) |
88
-
| --- | --- | --- |
89
-
| Enterprise Edition: Core-based Licensing <sup>1</sup> | Operating system maximum | Operating system maximum |
90
-
| Developer | Operating system maximum | Operating system maximum |
91
-
| Standard | Limited to lesser of 4 sockets or 24 cores | Limited to lesser of 4 sockets or 24 cores |
92
-
| Express | Limited to lesser of 1 socket or 4 cores | Limited to lesser of 1 socket or 4 cores |
93
-
94
-
<sup>1</sup> Enterprise Edition with Server + Client Access License (CAL) licensing is limited to 20 cores per [!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)] instance. (This licensing isn't available for new agreements.) There are no limits under the Core-based Server Licensing model.
95
-
96
-
In a virtualized environment, the compute capacity limit is based on the number of logical processors, not cores. The reason is that the processor architecture isn't visible to the guest applications.
97
-
98
-
For example, a server that has four sockets populated with quad-core processors and the ability to enable two SMT threads per core contains 32 logical processors with SMT enabled. But it contains only 16 logical processors with SMT disabled. These logical processors can be mapped to virtual machines on the server. The virtual machines' compute load on that logical processor is mapped to a thread of execution on the physical processor in the host server.
99
-
100
-
You might want to disable SMT when the performance for each virtual processor is important. You can configure SMT by using a BIOS setting for the processor during the BIOS setup, but it's typically a server-scoped operation that affects all workloads running on the server. You might consider separating workloads that run in virtualized environments, from workloads that would benefit from the SMT performance boost in a physical operating system environment.
101
-
102
-
## Reduce logical core count per NUMA node
103
-
104
-
You can reduce the logical core count per NUMA node on virtual machines, including Azure VMs, or on bare-metal [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)] instances.
105
-
106
-
### Disable SMT in a virtual machine
107
-
108
-
[!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)] has a supported limit of 64 logical cores per NUMA node. In some cases, the Azure Mv3-series VM might exceed this limit, which prevents [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)] from starting, or allowing it to run with degraded performance. To disable SMT, make the following changes using **[wmic](/windows/win32/wmisdk/wmic)** and the **Registry Editor** (`reg.exe`). Be sure to back up your registry before editing it.
82
+
[!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)] has a supported limit of 64 logical cores per NUMA node. In some cases, the Azure Mv3-series VM might exceed this limit, which prevents [!INCLUDE [ssnoversion-md](../includes/ssnoversion-md.md)] from starting, or allowing it to run with degraded performance. To disable SMT, make the following changes using **PowerShell** and the **Registry Editor** (`reg.exe`). Be sure to back up your registry before editing it.
109
83
110
84
1. Check the number of logical cores. SMT is enabled if the ratio is 2:1 (the number of logical cores is twice the number of cores).
111
85
112
-
```cmd
113
-
wmic CPU Get NumberOfCores,NumberOfLogicalProcessors /Format:List
### Reduce logical core count on bare-metal instances
@@ -146,6 +120,39 @@ On **AMD CPUs**, you can enable various Nodes per Socket (NPS) options.
146
120
|`NPS2`| This configuration presents two NUMA nodes per socket, similar to SNC. |
147
121
|`NPS4`| This configuration presents four NUMA nodes per socket. |
148
122
123
+
## Remarks
124
+
125
+
Systems with more than one physical processor or systems with physical processors that have multiple cores and/or SMT enable the operating system to execute multiple tasks simultaneously. Each thread of execution appears as a logical processor. For example, if your computer has two quad-core processors with SMT enabled and two threads per core, you have 16 logical processors: 2 processors x 4 cores per processor x 2 threads per core. It's worth noting that:
126
+
127
+
- The compute capacity of a logical processor from a single thread of an SMT core is less than the compute capacity of a logical processor from that same core with SMT disabled.
128
+
129
+
- The compute capacity of the two logical processors in the SMT core is greater than the compute capacity of the same core with SMT disabled.
130
+
131
+
Each edition of [!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)] has two compute capacity limits:
132
+
133
+
- A maximum number of sockets (or physical processors or processor packages)
134
+
135
+
- A maximum number of cores as reported by the operating system
136
+
137
+
These limits apply to a single instance of [!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)]. They represent the maximum compute capacity that a single instance uses. They don't constrain the server where the instance might be deployed. In fact, deploying multiple instances of [!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)] on the same physical server is an efficient way to use the compute capacity of a physical server with more sockets and/or cores than the capacity limits allow.
138
+
139
+
The following table specifies the compute capacity limits for a single instance of each edition of [!INCLUDE [ssnoversion](../includes/ssnoversion-md.md)]:
140
+
141
+
|[!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)] edition | Maximum compute capacity for a single instance ([!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)][!INCLUDE [ssDE](../includes/ssde-md.md)]) | Maximum compute capacity for a single instance (AS, RS) |
142
+
| --- | --- | --- |
143
+
| Enterprise edition: Core-based licensing <sup>1</sup> | Operating system maximum | Operating system maximum |
144
+
| Developer | Operating system maximum | Operating system maximum |
145
+
| Standard | Limited to lesser of 4 sockets or 24 cores | Limited to lesser of 4 sockets or 24 cores |
146
+
| Express | Limited to lesser of 1 socket or 4 cores | Limited to lesser of 1 socket or 4 cores |
147
+
148
+
<sup>1</sup> Enterprise edition with Server + Client Access License (CAL) licensing is limited to 20 cores per [!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)] instance. (This licensing isn't available for new agreements.) There are no limits under the Core-based Server Licensing model.
149
+
150
+
In a virtualized environment, the compute capacity limit is based on the number of logical processors, not cores. The reason is that the processor architecture isn't visible to the guest applications.
151
+
152
+
For example, a server that has four sockets populated with quad-core processors and the ability to enable two SMT threads per core contains 32 logical processors with SMT enabled. But it contains only 16 logical processors with SMT disabled. These logical processors can be mapped to virtual machines on the server. The virtual machines' compute load on that logical processor is mapped to a thread of execution on the physical processor in the host server.
153
+
154
+
You might want to disable SMT when the performance for each virtual processor is important. You can configure SMT by using a BIOS setting for the processor during the BIOS setup, but it's typically a server-scoped operation that affects all workloads running on the server. You might consider separating workloads that run in virtualized environments, from workloads that would benefit from the SMT performance boost in a physical operating system environment.
155
+
149
156
## Related content
150
157
151
158
-[Editions and supported features of SQL Server 2022](editions-and-components-of-sql-server-2022.md)
0 commit comments