奖励已下发|【社区to talk】第21期 NUMA架构优化如何为虚拟化平台性能带来革命性提升?
  

七嘴八舌bar 3445

{{ttag.title}}


背景概述:

随着金融、医疗、物流等行业核心业务向虚拟化/云平台迁移,高并发场景对性能的要求日益严苛。尤其在VMware替代浪潮下,用户亟需验证新平台能否满足甚至超越原有性能表现。其中,访存密集型应用(如Redis、HANA、AI引擎等)对内存访问延迟极为敏感,而NUMA架构作为现代服务器主流设计,其优化能力成为虚拟化性能的关键突破口。深信服通过自适应NUMA调度等创新技术,显著提升虚拟机在跨节点内存访问、负载均衡及信创场景下的表现,为业务连续性提供硬核保障。

亮点聚焦:
自适应NUMA调度
      动态分配vCPU至最优NUMA节点,智能规避跨节点内存访问(减少50%+远端访问延迟)。
      自动暴露vNUMA拓扑至虚拟机,由OS层决策资源调度,提升内存局部性。
      实测效果:达梦数据库(TPM-C↑18%)、Redis(QPS↑25%)、Memcache(TPS↑21%)性能显著提升。

信创场景深度优化
     识别多NUMA节点间物理距离,优先将虚拟机vNUMA绑定至相邻pNUMA节点。
     存储&网络亲和性:将数据转发进程(DP)、存储服务(qemu/libnfs/aSAN)与vCPU强制调度至同NUMA节点,减少IO路径延迟(大块写性能↑20%)。

全栈资源协同调度
     存储服务层NUMA绑定:完整IO路径进程(vCPU→虚拟存储)同节点调度+大页内存机制,降低处理开销。
     网卡多核负载均衡:突破单核转存瓶颈,结合NUMA亲和性提升高并发吞吐量。

对标业界方案优势
     对比H厂商(手动绑定)、VMware(基础自适应):新增信创适配、存储服务调度、网络亲和、关键VM优先级保障四维优化。
     UnixBench实测:同主机8虚拟机性能领先竞品34.17%(HCI 6.9.0)。


「本期话题来啦!」

1、你在部署Redis、HANA等内存敏感型应用时,是否遇到过NUMA架构导致的性能波动?

2、面对信创服务器多NUMA、小核数的特性,你认为“距离感知调度”和“网络存储亲和性”哪项技术对业务提升更关键?

3、在替代VMware的实践中,你是否测试过新平台的NUMA性能对标表现?

4、你的业务是否曾利用NUMA API(如libnuma)做过针对性适配?

【畅聊时间】

2025年6月21日-6月27日


【本期奖励】

1、优秀回复奖:凡回复的内容,被管理员设置为优秀回复的,即可获得200S豆打赏!
2、最高人气奖:被管理员设置为优秀回复并且点赞数最多的用户,可获得500S豆奖励(要求点赞数至少在10条以上)

上期话题回顾:
序号
账号名称
uid
奖励
1
SHGong
515195
300
2
郑州陈冠希
157628
300

SHGuo 发表于 2025-6-5 17:58
  
你在部署Redis、HANA等内存敏感型应用时,是否遇到过NUMA架构导致的性能波动?

是的,在部署Redis和HANA等内存敏感型应用时,我确实遇到过NUMA架构导致的性能波动。由于NUMA架构的内存访问延迟特性,跨节点访问内存的性能明显低于本地访问,这导致在高并发场景下,应用的响应时间和吞吐量受到影响。尤其是在负载不均衡的情况下,某些节点的性能瓶颈会影响整个系统的表现。
面对信创服务器多NUMA、小核数的特性,你认为“距离感知调度”和“网络存储亲和性”哪项技术对业务提升更关键?

我认为“距离感知调度”对业务提升更为关键。由于信创服务器的多NUMA架构,优化内存访问路径可以显著降低访问延迟,提高应用性能。通过距离感知调度,可以确保内存和计算资源在同一节点上,从而减少跨节点访问的频率,提升整体性能。而网络存储亲和性虽然也重要,但在内存敏感型应用中,内存访问延迟的影响更为直接和显著。
在替代VMware的实践中,你是否测试过新平台的NUMA性能对标表现?

是的,在替代VMware的过程中,我对新平台的NUMA性能进行了对标测试。通过对比虚拟机在不同平台上的内存访问延迟、吞吐量和负载均衡情况,我发现新平台在NUMA调度和内存访问优化方面表现出色,能够在高并发场景下有效降低延迟,提升整体性能。这些测试结果为我们选择新平台提供了有力的数据支持。
你的业务是否曾利用NUMA API(如libnuma)做过针对性适配?

是的,我们的业务曾利用NUMA API(如libnuma)进行过针对性适配。通过使用libnuma,我们能够更精确地控制内存分配和线程调度,确保关键应用在NUMA架构下获得最佳性能。这样的适配使得我们能够更好地利用服务器资源,降低内存访问延迟,提高了整体应用的响应速度和稳定性。
郑州陈冠希 发表于 2025-7-2 11:57
  
1. 部署 Redis、HANA 等内存敏感型应用时是否遇到过 NUMA 架构导致的性能波动?
在部署 Redis、HANA 等内存敏感型应用时,NUMA 架构导致的性能波动是非常常见的问题。这类应用对内存访问延迟极其敏感,而 NUMA 架构下 CPU 访问本地内存(同一节点)和远程内存(跨节点)的延迟差异显著(通常远程访问延迟是本地的 2-3 倍)。
以 HANA 为例,当数据分布在非本地 NUMA 节点时,CPU 跨节点访问内存会导致明显的延迟升高,尤其在大数据量查询或复杂计算场景下,性能可能下降 30% 以上。Redis 作为单线程模型,若进程被调度到与数据所在 NUMA 节点不亲和的 CPU 核心,会因远程内存访问导致响应时间变长,甚至出现周期性延迟峰值。
典型案例:某金融业务部署 HANA 时未做 NUMA 优化,集群节点间数据分布不均,部分节点 CPU 频繁跨 NUMA 访问,监控显示内存访问延迟从 50ns 飙升至 150ns,交易处理吞吐量下降约 40%。通过 NUMA 绑核(将进程固定在对应节点 CPU)和数据本地化优化后,性能恢复正常。
2. 信创服务器多 NUMA、小核数特性下,“距离感知调度” 和 “网络存储亲和性” 哪项技术对业务提升更关键?
需根据业务类型分场景判断,但整体来看‘距离感知调度’通常更关键,原因如下:
(1)距离感知调度(NUMA 亲和性调度)的核心价值
解决 CPU 与内存的延迟痛点:信创服务器多采用 ARM 架构,小核数(如 64 核 / 节点)+ 多 NUMA 节点(4-8 节点)的配置下,CPU 跨节点访问内存的延迟问题更突出。距离感知调度通过将进程绑定到本地 NUMA 节点的 CPU,避免远程内存访问,直接降低 50% 以上的内存延迟。
适配小核数的资源竞争场景:小核数意味着每个 NUMA 节点的 CPU 资源有限,若调度策略不优化,进程频繁在不同节点间迁移,会加剧跨节点访问。例如数据库业务中,通过调度策略将线程固定在本地节点,可提升 20%-30% 的事务处理性能。
(2)网络存储亲和性的适用场景
适用于 IO 密集型与分布式业务:当业务依赖网络存储(如分布式文件系统、块存储)时,网络存储亲和性可将数据访问路由到本地 NUMA 节点关联的网络接口(如 PCIe 网卡),减少网络数据包跨节点转发的延迟。例如 Kubernetes 集群中,Pod 调度到与存储节点同 NUMA 的服务器,可降低 10%-15% 的 IO 延迟。
局限性:对计算密集型、内存敏感型业务(如 HANA、Redis)效果不如 NUMA 调度直接,且信创服务器的网络接口通常与 NUMA 节点绑定,基础架构已做部分优化。
(3)综合建议
内存敏感型业务(数据库、中间件):优先落地距离感知调度,通过内核参数(如numactl)或容器调度策略(如 Kubernetes 的 NUMA 插件)实现进程与 NUMA 节点的亲和性。
混合负载或分布式存储业务:两者结合优化,例如在 OpenStack 中同时配置 VM 的 NUMA 绑核和存储卷的本地挂载策略。
3. 替代 VMware 实践中是否测试过新平台的 NUMA 性能对标表现?
在替代 VMware(如迁移至 KVM、OpenStack 或信创虚拟化平台)的实践中,NUMA 性能对标是关键测试项,典型表现如下:
(1)VMware 与新平台的 NUMA 支持差异
维度        VMware vSphere        新平台(如 KVM+QEMU)
NUMA 虚拟化支持        原生支持 NUMA 拓扑感知,VM 创建时可指定 NUMA 节点亲和性,性能损耗低(<5%)        需要通过 QEMU 参数(如- numa)手动配置,早期版本 NUMA 仿真精度不足,性能损耗可能达 10%-15%
热迁移 NUMA 适配        迁移时自动优化目标节点 NUMA 亲和性,内存本地化率高        热迁移时 NUMA 亲和性易丢失,需额外工具(如 libnuma)修复,可能导致迁移后性能波动
资源超售 NUMA 影响        超售策略与 NUMA 结合较成熟,通过 vSphere SDRS 调度避免跨节点资源竞争        超售场景下 NUMA 调度策略较简单,CPU/memory 超售时易出现跨节点访问,尤其在信创小核数平台更明显
(2)性能测试案例
测试环境:8 节点信创服务器(每节点 4 NUMA,64 核 ARM),VMware vSphere 7 vs KVM+OpenStack Train。
测试场景:Oracle RAC 数据库 VM,4vCPU+32GB 内存,压力测试(TPCC)。
结果:
VMware:NUMA 亲和性配置后,TPMC 值约 120 万,内存访问本地率 95%。
KVM:未优化时 TPMC 约 95 万(性能下降 20%),通过numactl --membind绑定 VM 到本地 NUMA 节点后,TPMC 提升至 110 万(接近 VMware 的 92%),但热迁移后需重新绑定。
(3)优化建议
新平台替代 VMware 时,需重点测试 NUMA 场景下的:
VM 创建时的 NUMA 拓扑映射精度(如 QEMU 的-smp numa参数配置)。
动态资源调整(如 vCPU 热添加)对 NUMA 亲和性的影响。
分布式存储与 NUMA 节点的绑定策略(如 Ceph OSD 与 NUMA 节点关联)。
4. 业务是否曾利用 NUMA API(如 libnuma)做过针对性适配?
在高性能计算、数据库集群等场景中,利用 libnuma 等 NUMA API 做针对性适配是常见优化手段,典型实践包括:
(1)数据库业务适配
MySQL 集群优化:通过 libnuma API 将 MySQL 实例的线程绑定到本地 NUMA 节点 CPU,并设置innodb_numa_tablespace=1使表空间数据优先存储在本地内存,减少跨节点访问。某电商订单系统优化后,查询延迟从 8ms 降至 5ms,并发量提升 30%。
Redis 集群拓扑设计:在多 NUMA 节点服务器上,使用 libnuma 获取节点拓扑,将 Redis 分片(Shard)固定到对应 NUMA 节点,避免跨节点数据访问。例如 6 节点 NUMA 服务器部署 6 分片 Redis 集群,每个分片绑定 1 个节点,内存访问本地率从 60% 提升至 98%,P99 延迟从 500μs 降至 150μs。
(2)容器与云原生场景
Kubernetes NUMA 插件开发:基于 libnuma API 获取节点拓扑,自定义 Scheduler 插件实现 Pod 的 NUMA 亲和性调度。例如在 AI 训练任务中,将 TensorFlow Worker Pod 调度到与 GPU 同 NUMA 节点的 CPU,减少数据传输延迟,模型训练速度提升 15%-20%。
Docker 容器 NUMA 绑核:通过numactl -m node0 -C 0-15命令将容器进程绑定到 NUMA 节点 0 的 CPU 核心和内存,适用于单节点多容器部署场景,避免容器间跨 NUMA 资源竞争。
(3)性能监控与调优
使用 libnuma API 开发监控工具,实时采集各 NUMA 节点的内存访问延迟、跨节点流量等指标。例如在 Hadoop 集群中,通过监控发现 DataNode 进程跨 NUMA 访问频繁,调整 JVM 参数-XX:NUMA对称性=1并绑定进程到本地节点,MapReduce 任务执行时间缩短 25%。
(4)注意事项
libnuma API 的使用需结合内核参数(如kernel.numa_balancing=0关闭自动负载均衡),避免系统调度与手动绑定冲突。
信创平台可能存在 NUMA API 兼容性问题(如 ARM 架构下 libnuma 版本适配),需提前测试接口返回的拓扑信息准确性。
发表新帖
热门标签
全部标签>
每日一问
新版本体验
纪元平台
GIF动图学习
功能体验
产品连连看
安装部署配置
标准化排查
安全效果
高手请过招
社区新周刊
测试报告
【 社区to talk】
每周精选
信服课堂视频
答题自测
技术笔记
西北区每日一问
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
日志审计
问题分析处理
流量管理
每日一记
运维工具
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
排障笔记本
产品预警公告
玩转零信任
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
2023技术争霸赛专题
卧龙计划
华北区拉练
天逸直播
以战代练
秒懂零信任
技术晨报
平台使用
技术盲盒
山东区技术晨报
文档捉虫
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
升级&主动服务
高频问题集锦
POC测试案例
全能先锋系列
云化安全能力
专家说
热门活动
产品动态
行业实践
产品解析
关键解决方案

本版版主

2372
1674
39

发帖

粉丝

关注

本版达人

七嘴八舌bar

本周分享达人