标签: numa

CPU 利用率会影响外部 NUMA 访问的成本吗?

设想

假设我有一个带有 4 个套接字的 SQL Server,每个 NUMA 节点。每个插槽有 4 个物理内核。总共有 512 GB 的内存,因此每个 NUMA 节点有 128 GB 的 RAM。

密钥表被加载到第一个 NUMA 节点中。

假设我们从该表中读取了大量流量。如果拥有 NUMA 节点的插槽的所有物理内核的 CPU 利用率为 100%,这是否会对来自其他插槽的非本地 NUMA 访问成本产生负面影响?或者另一方面是非本地 NUMA 访问的成本与该套接字的繁忙程度无关?

我希望我的问题是有道理的。如果没有,请告诉我,我会尽力澄清。

背景

上周我们的生产服务器出现了数据库问题,我们处理的一些业务似乎比其他业务受到的影响更大。我们有一些逻辑读取的查询需要超过 1 分钟。我们查看了大约 60% 的整体 CPU 利用率。我们没有查看特定于套接字的 CPU 指标。I/O 指标是平均的。

sql-server memory numa

22
推荐指数
2
解决办法
1174
查看次数

有人使用 SUMA、跟踪标志 8048 或跟踪标志 8015 吗?

最近包含 SQL Server 启动跟踪标志 8048 以解决 SQL Server 2008 R2 系统中严重的自旋锁争用问题。

有兴趣听取其他人的意见,他们发现性能值由跟踪标志 8048(将查询内存授予策略从每个 NUMA 节点提升到每个核心)、跟踪标志 8015(SQL Server 忽略物理 NUMA)或 SUMA(交错足够统一的内存访问,某些 NUMA 机器上的 BIOS 选项)。

跟踪标志 8048

跟踪标志 8015

系统工作负载的详细信息、从出现问题的系统收集的指标以及在干预后从系统收集的指标。

跟踪标志 8048 是一个“修复”,但它是最好的修复吗?SQL Server 是否会因为跟踪标志 8015 而忽略物理 NUMA 已经完成了同样的事情?如何将 BIOS 设置为交错内存,让服务器使用 SMP 模拟 SUMA 行为而不是 NUMA 行为?

关于系统

  • 4 六核 Xeon E7540 @ 2.00GHz,超线程
  • 128 GB 内存
  • WS2008R2
  • MSSQL 2008 R2 SP2
  • 最大值 6

关于工作量

  • 由 2 个报告应用程序服务器驱动的 1000 份批处理计划/排队报告。
  • 3 种口味的批次:每天、每周、每月
  • 与 SQL Server 的所有报表应用程序服务器连接都作为单个服务帐户进行
  • 最大报告并发数 = 90

问题系统的主要发现

  • 从 …

performance sql-server memory sql-server-2008-r2 numa

20
推荐指数
1
解决办法
5078
查看次数

为什么 SQL Server 安装程序在此推荐 MAXDOP 8?

我在 AWS i3.16xlarge 上运行 SQL Server 2022 RC1 设置,具有 2 个插槽、2 个 NUMA 节点、每个节点 32 个逻辑处理器、总共 64 个逻辑处理器。

安装程序推荐 MAXDOP 8:

SQL Server 设置和任务管理器

但是,如果您单击该链接来配置 MAXDOP,建议会显示:

MAXDOP 建议

根据那篇知识库文章,MAXDOP 应该是 16,而不是 8。当然,从技术上讲,8 小于 16 - 但 2、4 或 15 也是如此。8 从哪里来?

SQL Server 安装完成且服务启动后,日志显示 SQL Server 自动实施具有 4 个节点的 Soft-NUMA,每个节点有 16 个逻辑处理器:

SQL Server 错误日志

同样,这表明 MAXDOP 应为 16。

这是一个错误,还是我错过了一些明显的事情?是否还有另一个不成文的规则,设置将在 MAXDOP 8 处停止?

sql-server configuration maxdop numa sql-server-2022

16
推荐指数
2
解决办法
2731
查看次数

NUMA 节点 000 上的低 PLE,001 上的高

我正在查看 SQL Server 上的 NUMA 节点上的 PLE(页面预期寿命),并发现了一个相当奇怪的分布。与 001 相比,NUMA 节点 000 的 PLE 非常低。我不确定为什么会这样。我已经检查了我们环境中的多个其他 SQL Server,其他生产服务器没有这种行为。

系统在带有 256GB RAM 的 Dell m620 上运行 SQL Server 2012 Enterprise Edition。这是一台 2 插槽、6 核(支持 HT)的机器。MAXDOP 设置为 6。AFAIK 内存模块均匀地安装在 CPU 的内存条上

有人告诉我 NUMA 节点 000 有其他 SQL 任务要执行,其他节点,但我忘记了我在哪里听到/看到它。

在此处输入图片说明

在此处输入图片说明

PLE 图像

@@Version 显示:Microsoft SQL Server 2012 (SP1) - 11.0.3412.0 (X64)

sql-server sql-server-2012 numa

10
推荐指数
1
解决办法
1094
查看次数

为 SQL Server 和 NUMA 配置 RAM

意外的数据库管理员在这里。

题:

即使该服务器的唯一目的是仅为 SQL Server 数据库引擎提供服务,您是否仍会手动限制 SQL Server 的最大 RAM?

我有 Microsoft Windows 2012 R2 Server、SQL Server 2012 Std、32GB RAM。

管理员不断登录到 SQL Server 以使用其控制台和所有内容。

其次,您如何检查此 Windows 服务器是否启用了 NUMA?

sql-server memory sql-server-2012 numa

10
推荐指数
2
解决办法
1558
查看次数

RSS 配置文件对使用 NUMA 设置的 SQL Server 有影响吗?

我很好奇 Windows 2012 R2 上的默认 NUMAStatic RSS 配置文件是否可以/应该更改为具有 NUMA 设置的 SQL Server。有没有人使用 NUMA 或保守设置对高负载 SQL Server 进行性能基准测试?

performance sql-server network numa performance-tuning

8
推荐指数
1
解决办法
2135
查看次数

为什么 dm_os_memory_clerks 在一个 NUMA 节点上具有 MEMORYCLERK_SQLCLR 值?

我们正在使用 SQLCLR 存储过程来激活服务代理,我想监视 CLR 代码使用的内存。查看sys.dm_os_memory_clerks,我看到只有 NUMA 节点 1 具有与该MEMORYCLERK_SQLCLR类型关联的任何页面。服务器有两个 8 核 CPU,运行 SQL 2014 CU6。

这是预期的吗?或者我应该像我一样看到两个节点上使用的内存MEMORYCLERK_SQLBUFFERPOOL

询问:

SELECT DOMC.memory_node_id
    , DOMC.pages_kb
    , DOMC.virtual_memory_reserved_kb
    , DOMC.virtual_memory_committed_kb 
FROM sys.dm_os_memory_clerks DOMC where type = 'MEMORYCLERK_SQLCLR'
Run Code Online (Sandbox Code Playgroud)

结果:

memory_node_id pages_kb             virtual_memory_reserved_kb virtual_memory_committed_kb
-------------- -------------------- -------------------------- ---------------------------
0              88232                12607744                   1408652
1              0                    0                          0
64             0                    0                          0
Run Code Online (Sandbox Code Playgroud)

sql-server sql-clr sql-server-2014 numa

8
推荐指数
1
解决办法
1927
查看次数

SQL Server 检测到 2 个套接字,每个套接字有 4 个内核,但只有一个 NUMA 节点

我们在 VMWare 主机中有一个 SQL Server 2012 SP 2 CU 8 实例。操作系统为 Windows Server 2012 R2。

Windows 任务管理器说我们有两个套接字和 8 个虚拟内核。此数字对应于来宾下方的实际硬件。

任务管理器套接字和核心数

在任务管理器中,我也无法将视图更改为 NUMA 节点。

仍然没有 NUMA 节点

在 SQL Server 中仍然只能看到一个 NUMA 节点 SQL Server NUMA 配置

来自 Glen Berrys 诊断查询的这个片段也给了我这个信息

EXEC sys.xp_readerrorlog 0, 1, N'detected', N'socket';
Run Code Online (Sandbox Code Playgroud)

SQL Server 检测到 2 个插槽,每个插槽 4 个内核,每个插槽 4 个逻辑处理器,总共 8 个逻辑处理器;使用基于 SQL Server 许可的 8 个逻辑处理器。这是一条情报信息; 无需用户操作。

根据所有这些信息,我可以怀疑我们仅在一个 NUMA 节点上运行,但跨两个套接字运行。

我的问题:

  1. 我们只在一个 NUMA 节点上运行是否正确?
  2. 即使所有内容都位于一个 NUMA 节点上,这是否会影响性能?
  3. 什么组件确切地规定了 NUMA 边界?例如,如果我有一个带两个 Intel E5 处理器的双插槽主板,主板会决定我有多少个 NUMA 节点或处理器。

我认为有很多关于 NUMA 节点的错误信息。如果有人可以回答我的问题或指出详细解释这个概念的有用资源,那将不胜感激。

performance sql-server configuration vmware numa

8
推荐指数
1
解决办法
2399
查看次数

自动软 NUMA 导致奇数个内核

我在我们的一台 SQL Server 2016 生产服务器上运行 sp_blitz,结果之一是 CPU 的核心数为奇数。详细消息表明这是一个非常糟糕的 NUMA 配置。

如果 SQL Server 2016 检测到超过 8 个内核的物理处理器,它将使用自动软 NUMA。我们的特定服务器有两个插槽,每个插槽有 10 个 CPU。

SQL Server 错误日志中的启动消息表明:

自动软 NUMA 已启用,因为 SQL Server 检测到具有超过 8 个物理内核的硬件 NUMA 节点。

结果,SQL Server 创建了四个逻辑 NUMA 节点,每个节点有 5 个内核。

这是性能问题吗?

我们使用 MAXDOP = 4。

这里的并行性是一个问题吗?

sql-server sql-server-2016 numa

7
推荐指数
1
解决办法
1241
查看次数

NUMA 到底有多大影响?

我正在阅读非统一内存访问 (NUMA),我想知道它到底能带来多大的不同?换句话说,在这变得有益之前需要什么水平的吞吐量?

此外,当您想要一个具有多个系统总线的系统时,您需要寻找什么类型的服务器?

performance sql-server numa

5
推荐指数
1
解决办法
199
查看次数