HP ProLiant DL980 G7 Server User Manual

Page 49

Advertising
background image

CPU page: Viewing and controlling CPU assignment parameters and optimization
recommendations

The CPU page (see

Figure 40 (page 50)

) displays SQL Server Database Engine Processor Affinity

and Analysis Services Process GroupAffinity settings and recommendations for each SQL instance
in the system.

As shown in

Figure 40 (page 50)

, the CPU page shows CPU resources organized in NUMA nodes

and KGroups. In NUMA (Non-Uniform Memory Architecture) systems, logical CPUs (also referred
to as logical processors) are arranged in smaller systems called NUMA nodes. Each node has its
own processors and memory. The system attempts to improve performance by scheduling threads
on processors that are in the same node as the memory being used. (The NUMA architecture is
non-uniform because each processor is close to some parts of memory and farther from other parts
of memory; the processor quickly gains access to the memory that is close by.)

Kgroups (also referred to as K-groups) are supported on Windows Server 2008 R2 and newer
versions that support more than 64 logical CPUs in the server. A KGroup is a processor group
consisting of a static set of up to 64 logical CPUs that is treated as a single scheduling entity.
KGroups are numbered starting with 0. Systems with fewer than 64 logical CPUs always have a
single group: KGroup 0.

Multiple logical CPUs are provided by systems with more than one physical processor or systems
with physical processors that have multiple cores. A logical CPU is one logical computing engine
from the perspective of the OS, application, or driver. Logical CPUs are also provided by threads
that are carved from cores when Intel® Hyper-Threading is enabled — in this case, a core appears
as two logical CPUs corresponding to thread 0 and thread 1.

For better performance, the OS takes physical locality into account when assigning logical CPUs
to groups. All of the logical CPUs in a core, and all of the cores in a physical processor, are
assigned to the same group, if possible. Physical processors that are physically close to one another
are assigned to the same group.

NOTE:

Windows 2008 R2 and newer versions can detect more than 64 logical CPUs are in the

server and attempts to group them into KGroups. The OS balances the number of logical CPUs
per KGroup. For example, if the server has 80 logical CPUs, the OS will create two KGroups.

SQL Server 2008 or older versions do not detect or support more than 64 logical CPUs. They only
see the first KGroup. In the preceding example of the server with 80 logical CPUs, an SQL Server
2008 (or older) running on that system would only use logical CPUs from the first group, wasting
available processing power. Therefore, if you are running SQL Server 2008 or older on Windows
Server 2008 R2 and newer systems, to maximize utilization of all available processor resources
on the system, make sure that the server has fewer than 64 logical CPUs. To ensure this, disable
hyper-threading or disable cores in CPU sockets. For more information, see the SQL Server tuning
recommendations documented in the Best Practices for Tuning Microsoft SQL Server on the HP
ProLiant DL980
white paper at:

http://bizsupport2.austin.hp.com/bc/docs/support/SupportManual/c02861709/c02861709.pdf

Optimizations pages: Viewing and controlling optimization recommendations

49

Advertising