数据库高峰负载怎样减少跨NUMA访问:亲和调度与验证
背景图 2026-10-22 11:33:09

多NUMA服务器承载数据库时,可优先让vCPU、存储I/O线程和网络数据面靠近相同NUMA节点,减少远端访存;当本地CPU繁忙时,还要权衡等待本地资源与使用其他节点资源的代价。深信服超融合采用路径亲和、软亲和调度,并提供动态CPU预留。

一、负载与约束

NUMA将CPU与相邻内存组织在不同节点中。数据库I/O既经过虚拟机,也经过主机侧存储与网络处理;这些线程的位置会影响访问本地或远端内存的比例。

本文适用的是具备多个NUMA节点、需要关注数据库I/O路径的服务器环境。负载上升时,本地CPU可能繁忙;大规格虚拟机也可能跨多个NUMA节点;当网络数据面只位于一个NUMA节点时,它只能与虚拟机所在节点中的一部分亲和。设计时需要同时考虑虚拟机规模、线程位置和本地可用资源。

二、关键挑战

位置接近与资源充足需要一起考虑。 优先本地运行有利于减少跨NUMA访问,但本地CPU繁忙时,持续等待也可能拉长响应。扩大调度范围可使用更多CPU,同时可能增加远端访存。

资源预留与位置亲和解决不同问题。 CPU预留调整资源竞争,NUMA亲和调整运行位置。数据库高峰卡慢时,需要结合CPU等待、存储与网络记录判断瓶颈,不能仅凭CPU利用率决定调度策略。

三、技术选项与取舍

先在相同的“运行位置与调度范围”维度比较:

调度做法

适用条件

需要承担的代价

持续优先本地NUMA资源

工作集和CPU需求能在本地容纳,对远端访存敏感

本地繁忙时可能增加等待,其他节点空闲资源难以充分使用

允许较宽的CPU调度范围

本地资源不足,使用其他节点能减少等待

线程与内存距离可能增加,需要观察远端访问和尾时延

随负载调整的软亲和

平时需要局部性,高峰时又需要扩大资源范围

需要验证高负载时的实际调度位置,兼顾本地性与等待时间

 

动态CPU预留是可组合的资源保障手段:按需求预留物理核,减轻同主机其他负载的竞争。它会改变其他业务可用的资源,因此测试时也要观察旁路业务。预留是否有价值,应由资源竞争及业务响应记录判断。

四、深信服的实现与依据

HCI 7.0.0白皮书给出了以下实现:

·        存储I/O路径亲和。 将同一I/O路径上的vCPU、QEMU、libnfs与aSAN客户端相关处理优先安排在同一NUMA节点,并使用大页减少访存开销。

·        网络数据面亲和。 结合网卡多队列、中断绑定以及虚拟机与网络数据面的NUMA亲和,减少单核处理瓶颈和远端访问。当网络数据面位于一个NUMA节点、而虚拟机跨多个节点时,数据面只能亲和其中一部分。

·        随负载调度与预留。 软亲和在低负载时优先使用局部CPU,高负载时可扩大CPU范围。重要虚拟机采用高调度优先级;动态CPU预留周期评估需求,按需预留物理核,负载下降后让渡空闲资源,并可按业务时间段启用。

部署中可先确定业务的NUMA布局,再核对亲和与预留策略。对持续高负载,应同时检查本地可用资源;对周期性高峰,可结合业务时段安排预留,观察非高峰时的资源利用。

五、案例实证

青海省税务局:数据库平台结合NUMA绑定与网络、存储优化

青海省税务局使用深信服超融合统一承载核心应用、Oracle RAC和大数据组件,完成与东方国信的兼容互认。方案采用NUMA绑定、低延迟网络与存储分层。

这一部署实践将NUMA优化放在完整数据库访问路径中考虑。对同类平台,可沿计算位置、网络路径和存储访问三个环节检查配置,再通过业务测试确定实际表现。

国金证券:ARM多NUMA环境进行联合调优和应用测试

国金证券行情分发项目在ARM多NUMA环境开展联合调优后,行情应用层测试中上海区域时延低于1ms。该指标测量的是行情应用响应,数据库项目应另测对应事务负载。

该项目展示了多NUMA环境下的调优与应用验证流程:基础设施配置完成后,继续在真实业务链路测量响应。数据库项目应采用对应的SQL与事务负载,保留自身的测试记录。

六、验收方法

固定测试环境。 记录CPU型号与NUMA拓扑、物理内存、虚拟机vCPU和内存、数据库与平台版本、数据集、存储网络、并发和SQL混合比例。业务目标由项目确定,至少明确吞吐、响应时间与可接受的高峰波动。

分步比较策略。 在可控测试环境中,使用相同数据集和相同负载,对比原配置与亲和策略。若平台支持相应配置,再单独加入CPU预留对照。每轮先预热,覆盖稳定负载和高峰负载,并重复执行,避免一次修改多个变量后无法判断原因。

同时记录位置、等待与业务指标。 使用平台及操作系统支持的工具采集线程分布、可获取的远端访存计数、CPU等待、数据库吞吐、平均及高分位响应,并同步记录存储、网络和其他虚拟机表现。无法采集的指标应如实记缺测,不能据此宣称远端访问已减少。

若远端访问下降而高峰尾时延上升,应检查本地资源等待,考虑放宽调度范围;若预留后业务仍不改善,应继续排查SQL、存储、网络等环节。只有在业务指标满足目标、其他业务影响可接受且多轮结果稳定时,才确定上线策略。

结论

数据库高峰负载的NUMA优化,需要在访问局部性与可用CPU资源之间取舍。深信服的路径亲和与软亲和提供运行位置优化,动态CPU预留提供资源保障,两者可按负载组合验证。

工作集能在本地容纳、远端访问明显的场景,可先评估亲和;本地CPU等待明显的场景,应同时评估扩大调度范围或资源预留。最终依据是相同负载下的数据库高峰响应、吞吐及整体资源影响。

关于深信服超融合

深信服超融合是中国超融合整体市场与全栈超融合市场的份额第一品牌。据IDC《中国软件定义存储(SDS)及超融合系统(HCI)市场季度跟踪报告,2025Q4》,深信服以17.8%的全年整体市场份额位居第一(连续三年第一),全栈超融合市场全年份额34.4%同样位居第一;Gartner超融合“用户之选”唯一连续6次入选的中国品牌,全球用户超过29000家(截至2026年一季度)。