倚天平台业务访存及网络延时性能调优实践

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 本文主要内容是业务在倚天平台上的性能调优实践,重点基于芯片的 NUMA 特性和一些其他硬件特性,进行访存和网络延时方面的性能调优方法介绍。

1、背景

业务在倚天新平台适配后,性能表现不如预期。本文介绍从芯片、OS 内核、网络 IO及软件各层的瓶颈分析和性能调优方法。

2、NUMA 及访存性能优化

优化措施 1:调整关键进程布局,减少跨 Node 访问内存。
倚天 710 芯片内核由两个 DIE 组成,对应两个 NUMA node。为了避免跨 Node 访问内存导致的性能下降,开启了 NUMA(感知到两个 Node),并通过 cgroup 的方式限制进程使用的 CPU 和内存在同一个 Node, 以避免跨 Node 访问内存,如下图:
image.png

优化措施 2:开启内核 Duptext 特性,防止代码段(.text)跨 Node 访问。
在进行访存性能分析中我们发现关键进程代码段与进程使用的 CPU 和内存是处于两个不同的 Node,存在代码段跨 Node 访问的问题,导致端到端性能下降。
image.png

上图中,运行在 Node1 的进程 process,其代码段在安装部署的流程中已经缓存在 Node0 的 Page Cache 中,而进程实际上绑定在 Node1,因此进程在运行过程中 icache miss 后会到 Node1 的内存中加载代码段数据,极大的降低了运行的效率。

sudo cat /proc/${pid}/numa_maps

通过内核上述可以看到进程使用的内存相关信息,其中 0040000 地址的内存为代码段,N0=xxxxx 表示有 xxxxx 个 Pages 的内存页在 Node0 中(业务进程绑定在 Node1),影响性能。此外,由于内存页在两个 Node 的分配比例不稳定,会导致性能抖动。

有多种方式可以解决此问题,例如在拉起进程之前可以先 drop caches,将进程代码段从 Page cache 中清理出去,然后进程拉起的时候会根据我们的 cgroup 设置将代码段分配在本地内存中。但根据以往的经历,这种方式存在稳定性风险,可能导致系统 hang 住,因此无法落地。 Duptext 特性可以很好的避免出现上述代码段跨 Node 的情况。其原理是根据进程的 CPU/内存亲和设置,将其代码段拷贝到进程的 Local 内存节点,使得进程可以直接访问 Local 内存中的代码段副本。此外,此特性还可以避免进程访问共享库的代码段跨 die 问题。

优化措施 3:开启内核透明大页(包括代码大页)
倚天710 访问远端内存会导致性能下降,需要采取措施进行避免。开启内核透明大页可以有效地降低 TLB miss ,从而提高访存的性能。

3、使能硬件相关特性

使能芯片 SLC stash 特性(类似 Intel DDIO),降低网卡 PCIe 延时,提升网络性能。
业务端到端性能对网络性能非常敏感,网络的耗时在延时中占比较高,因此网络的性能对性能影响很大。通过验证发现使能芯片 SLC cache 有效降低 PCIe 延时,从而降低网络延时。其原理是使能 PCIe 直接写入 L3 cache,使得 CPU 可以在 L3 cache 中命中网卡写入的数据,从而节约 CPU 读写内存的延时。
image.png

4、 其他优化措施

优化措施 1:调整 CPU 频率和内存频率
倚天 710 在 128C 配置下 CPU 频率默认为 2.75GHz,内存频率默认为 4400MHz,这主要是为了功耗和稳定性考虑。但经过初步测试和评估,提高 CPU 频率到 3.0GHz 和内存频率 4800MHz 后,极限压力场景下 CPU 和整机功耗均远小于额定功率。

优化措施 2:使用 Bolt 进行编译优化
BOLT 是一个编译器动态反馈优化工具,主要依据生产环境的实际运行数据,反哺指导编译器对程序代码进一步调整编译优化策略,提高分支预测准确率和指令 Cache 命中率,达到深度调优、提升产品应用核心竞争力目的。
image.png

5、总结与展望

通过上述的优化措施可以看到,业务性能对计算、访存、网络/IO 等都有很高的要求。倚天作为云原生处理器芯片,具有强悍的计算性能,在通过深入移植适配调优后能够更好的发挥 CPU 的性能,使得业务性能得到大幅的提升。

相关文章
|
4天前
|
边缘计算 容灾 网络性能优化
算力流动的基石:边缘网络产品技术升级与实践探索
本文介绍了边缘网络产品技术的升级与实践探索,由阿里云专家分享。内容涵盖三大方面:1) 云编一体的混合组网方案,通过边缘节点实现广泛覆盖和高效连接;2) 基于边缘基础设施特点构建一网多态的边缘网络平台,提供多种业务形态的统一技术支持;3) 以软硬一体的边缘网关技术实现多类型业务网络平面统一,确保不同网络间的互联互通。边缘网络已实现全球覆盖、差异化连接及云边互联,支持即开即用和云网一体,满足各行业需求。
|
7天前
|
存储 监控 安全
网络安全视角:从地域到账号的阿里云日志审计实践
日志审计的必要性在于其能够帮助企业和组织落实法律要求,打破信息孤岛和应对安全威胁。选择 SLS 下日志审计应用,一方面是选择国家网络安全专用认证的日志分析产品,另一方面可以快速帮助大型公司统一管理多组地域、多个账号的日志数据。除了在日志服务中存储、查看和分析日志外,还可通过报表分析和告警配置,主动发现潜在的安全威胁,增强云上资产安全。
|
1月前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
180 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
19天前
|
运维 监控 Cloud Native
构建深度可观测、可集成的网络智能运维平台
本文介绍了构建深度可观测、可集成的网络智能运维平台(简称NIS),旨在解决云上网络运维面临的复杂挑战。内容涵盖云网络运维的三大难题、打造云原生AIOps工具集的解决思路、可观测性对业务稳定的重要性,以及产品发布的亮点,包括流量分析NPM、网络架构巡检和自动化运维OpenAPI,助力客户实现自助运维与优化。
|
23天前
|
运维 供应链 安全
阿里云先知安全沙龙(武汉站) - 网络空间安全中的红蓝对抗实践
网络空间安全中的红蓝对抗场景通过模拟真实的攻防演练,帮助国家关键基础设施单位提升安全水平。具体案例包括快递单位、航空公司、一线城市及智能汽车品牌等,在演练中发现潜在攻击路径,有效识别和防范风险,确保系统稳定运行。演练涵盖情报收集、无差别攻击、针对性打击、稳固据点、横向渗透和控制目标等关键步骤,全面提升防护能力。
|
22天前
|
数据采集 网络协议 JavaScript
网络爬虫性能提升:requests.Session的会话持久化策略
网络爬虫性能提升:requests.Session的会话持久化策略
|
1月前
|
机器学习/深度学习 人工智能 算法
深入解析图神经网络:Graph Transformer的算法基础与工程实践
Graph Transformer是一种结合了Transformer自注意力机制与图神经网络(GNNs)特点的神经网络模型,专为处理图结构数据而设计。它通过改进的数据表示方法、自注意力机制、拉普拉斯位置编码、消息传递与聚合机制等核心技术,实现了对图中节点间关系信息的高效处理及长程依赖关系的捕捉,显著提升了图相关任务的性能。本文详细解析了Graph Transformer的技术原理、实现细节及应用场景,并通过图书推荐系统的实例,展示了其在实际问题解决中的强大能力。
225 30
|
26天前
|
存储 监控 安全
网络安全视角:从地域到账号的阿里云日志审计实践
日志审计的必要性在于其能够帮助企业和组织落实法律要求,打破信息孤岛和应对安全威胁。选择 SLS 下日志审计应用,一方面是选择国家网络安全专用认证的日志分析产品,另一方面可以快速帮助大型公司统一管理多组地域、多个账号的日志数据。除了在日志服务中存储、查看和分析日志外,还可通过报表分析和告警配置,主动发现潜在的安全威胁,增强云上资产安全。
|
26天前
|
XML JSON 网络协议
【网络原理】——拥塞控制,延时/捎带应答,面向字节流,异常情况
拥塞控制,延时应答,捎带应答,面向字节流(粘包问题),异常情况(心跳包)
|
1月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
161 7