IR中断打断问题分析¶
问题背景¶
中断是Linux系统核心异步响应机制,可强制打断当前CPU正在执行的进程任务,优先处理硬件设备紧急事件,是系统响应外设请求、完成设备交互、实现任务调度的基础能力。正常频次的中断处理不会影响业务稳态运行,但若中断触发过于频繁、处理耗时不合理,会持续抢占业务CPU时间片,破坏任务执行连续性。 在Ascend平台模型推理、训练业务场景中,Host侧负责算子队列管理与任务下发,NPU负责计算任务执行。业务运行过程中,底层硬件驱动会通过专属中断信号同步任务状态:算子入队下发时触发sq_send_trigger_irq中断,算子执行完成、队列状态更新时触发cq_update_irq中断。两类中断由系统内核调度处理,若中断触发频次过高、CPU中断负载不均衡,会持续打断模型算子下发、数据搬运等核心业务线程,造成下发流程卡顿、流水线空泡、任务堆积,最终拖累整机及集群业务性能。
问题现象¶
客户业务基于 Ascend+Kunpeng(A+K) 平台部署运行,对标 Ascend+X86(A+X) 平台,业务整体吞吐、延迟等核心性能指标存在明显劣化,无法达到预期性能标准。 经初步全维度排查,排除算子执行异常、NPU计算瓶颈、内存泄漏、网络通信异常、环境配置错误、驱动故障等常规问题。通过系统资源监控与内核状态观测发现:A+K平台部分CPU核心中断次数异常偏高,大量系统资源消耗在硬件中断处理流程中,持续抢占业务算力资源。该异常导致单节点算子下发调度受阻、出现明显慢卡节点,在多卡集群场景下形成“快等慢”的短板效应,拖累整体集群吞吐性能,最终造成A+K平台整体性能显著弱于A+X平台。
定位过程¶
为精准定位高频中断的触发类型、负载分布、耗时时段及对业务的影响,本次采用内核调度采集工具联合业务性能剖析工具,开展多维度数据关联分析,逐层收敛问题根因,完整定位流程如下:
- 内核中断与调度数据全量采集 使用官方ftrace采集工具,采集模型稳态运行阶段的内核调度、硬中断、软中断全维度数据,精准捕获sq_send_trigger_irq、cq_update_irq两类业务关键中断的触发频次、CPU分布、处理耗时等核心信息,工具详情参考:ftrace_tools工具([https://gitcode.com/Ascend/msinsight/tree/master/scripts/ftrace_tools])。
- 多源数据联合交叉分析 将ftrace采集的中断日志数据,与业务Profiler性能数据、CPU占用数据、算子下发耗时、集群Rank耗时对比数据进行时间轴对齐关联。精准匹配中断高发时段与业务性能劣化、算子下发卡顿、集群延迟升高时段的对应关系,区分系统常规中断与昇腾硬件业务异常高频中断。
- 中断负载与CPU热点定位 通过数据分析横向对比各CPU核心中断负载,发现中断任务未均衡分散,存在单CPU核心集中处理大量sq_send_trigger_irq、cq_update_irq中断的热点问题。该核心持续被中断任务抢占,业务线程频繁被打断,算子下发流程不连续,出现大量调度空泡。
- 集群慢卡与性能瓶颈锁定 结合MindStudio Insight集群数据分析各Rank运行状态,确认中断负载过高的CPU对应的业务节点为集群慢卡。该节点因持续中断抢占导致算子下发滞后、任务堆积,其他正常Rank持续等待该节点完成交互同步,最终引发集群整体性能劣化。
- 问题优化 针对本次定位的CPU中断负载不均、单核心中断过载、业务线程被频繁打断的核心问题,采用CPU绑核优化方案,工具详情参考:绑核脚本。 通过绑核工具配置CPU亲和性,实现业务进程与中断任务的核隔离:将模型算子下发、数据搬运等核心业务线程绑定至指定空闲CPU核心,同时将高频硬件中断(sq_send_trigger_irq、cq_update_irq)进行中断亲和性配置,分散至其他CPU核心处理。彻底解决单CPU核心同时承载大量中断任务与核心业务任务导致的资源抢占问题,避免业务线程被高频中断频繁打断,保障算子下发流程的连续性。
问题根因¶
- 硬件交互固有中断机制 Ascend平台Host与NPU通过中断机制完成任务下发、状态同步,sq_send_trigger_irq、cq_update_irq为模型运行必备的硬件交互中断,业务高并发下发场景下,中断触发频次会天然升高,存在固有调度开销。
- 中断负载不均衡(核心根因) A+K平台默认中断调度策略未做针对性优化,两类核心业务中断过度集中在个别CPU核心,未实现多核负载均衡。单CPU核心长期高频处理硬件中断,持续抢占模型算子下发、数据搬运等核心业务线程时间片,频繁打断业务连续执行。
- 架构适配差异加剧问题 相较于X86平台,Kunpeng ARM架构在中断调度响应、多核负载分配机制上存在适配差异,默认调度配置对高频短时硬件中断的兼容性更弱,更容易出现单点中断过载、业务线程被频繁抢占的问题,最终导致A+K平台性能显著劣于A+X平台。
- 连锁集群性能劣化 单点CPU中断过载引发节点下发卡顿、慢卡问题,在多卡集群并行场景下,形成全局性能短板,所有正常Rank需等待慢卡节点完成任务同步,大幅拉高集群整体通信等待耗时与推理延迟,降低业务吞吐能力。
定位方法论总结¶
针对Ascend平台模型业务出现的性能对标劣化、集群快慢卡差异、算子下发卡顿、CPU内核开销偏高等疑似中断干扰问题,可固化标准化定位流程,快速排查IR中断异常瓶颈:
- 初步特征筛查 对比多平台、多节点性能差异,排查是否存在单节点性能拖底、CPU内核态开销偏高、下发链路空泡增多等特征,排除算子、硬件、通信、代码常规问题。
- 专项中断数据采集 通过ftrace工具采集整机硬中断、软中断、CPU调度数据,重点观测sq_send_trigger_irq、cq_update_irq等昇腾业务专属中断的触发频次与CPU分布。
- 业务数据联合关联 对齐Profiler算子下发数据、集群Rank耗时数据与中断高发时段,确认中断高频是否与业务卡顿、性能劣化强相关,区分正常中断开销与异常过载瓶颈。
- 精准定位优化方向 锁定中断过载的CPU热点核心、高频异常中断类型,确认是否存在负载不均衡、调度策略不适配等问题,针对性开展中断亲和性、绑核、调度参数调优。
对工具的改进建议¶
当前ftrace工具可完整采集中断触发、CPU调度基础数据,但针对昇腾平台业务中断的专项分析能力不足,人工筛选、关联成本较高,为提升同类问题定位效率,提出以下优化建议:
- 新增昇腾专属中断识别聚合能力 工具默认仅支持通用中断统计,建议针对性适配sq_send_trigger_irq、cq_update_irq等昇腾硬件核心中断,单独统计触发频次、单CPU负载、平均处理耗时,自动聚合业务相关中断数据,过滤系统无关中断干扰。
- 增加中断与业务链路关联能力 支持将中断高发时段与算子下发、任务队列、集群同步流程自动关联,可视化展示中断打断业务线程的具体时序与耗时损耗,无需人工比对时间轴,快速定位受影响的业务链路。
- 新增中断负载均衡检测与告警 增加CPU核心中断负载离散度统计,自动识别单点中断过载、负载不均等异常场景,配置阈值告警,提前发现潜在慢卡风险,支撑业务上线预检与常态化巡检。
- 输出优化建议报告 基于中断分布数据,自动输出中断亲和性配置、CPU绑核策略、调度参数调优建议,降低人工分析与优化门槛,提升问题闭环效率。