当 CPU 莫名抖动时,SysOM Agent 如何 3 分钟定位元凶?

简介: 本文揭秘一个真实生产案例:CPU周期性飙升但top无高负载进程。根源是高频访问不存在文件导致negative dentry堆积,引发VFS锁竞争风暴。传统排查耗时数小时,而SysOM Agent通过火焰图+调用栈分析,3分钟精准定位至`native_queued_spin_lock_slowpath`热点,并给出根因与解决方案。

一个真实的生产案例:CPU 周期性飙升,却找不到任何高 CPU 进程。


故事的开始:一个让人抓狂的 CPU 抖动问题

深夜 2 点,小王被监控告警惊醒。

公司核心业务服务器的 CPU 出现了诡异的"抖动"——每隔几秒就会飙到 80%,然后又落回 20%,如此反复。

%Cpu(s):  2.5 us, 45.0 sy,  0.0 ni, 52.5 id...  <- 突然飙升
%Cpu(s):  3.0 us, 12.0 sy,  0.0 ni, 85.0 id...  <- 又落回来
%Cpu(s):  2.0 us, 55.0 sy,  0.0 ni, 43.0 id...  <- 又飙了

奇怪的是:

  • top 看不到任何高 CPU 的进程。
  • sys 很高,但 user 很低。
  • 业务日志没有任何异常。

"到底是谁在搞鬼?" 小王盯着屏幕一脸茫然。


传统排查:大海捞针

按照常规思路,小王开始了漫长的排查:

# 看进程?没有异常
top -c

# 看系统调用?太多了看不过来
strace -p xxx

# 看内核日志?一切正常
dmesg

2 个小时过去了,问题依然没有头绪。

如果你也遇到过类似的场景,一定能理解那种"明明有问题却找不到原因"的抓狂感。


SysOM Agent 登场:3 分钟定位根因

第二天,小王决定试试 SysOM Agent。

阿里云操作系统控制台(https://alinux.console.aliyun.com)是一站式操作系统运维管理平台,提供了内存、I/O、网络、内核崩溃等强大的系统诊断能力,SysOM是操作系统控制台的运维组件。SysOM Agent 是SysOM 的智能助手,接入了 SysOM MCP 的诊断能力。点击右上角的图标即可和 SysOM Agent 对话。

小王只输入了一句话:

“我的实例 i-12345 的 CPU 使用率出现周期性抖动,sys 很高”

接下来发生的事情,让他大开眼界——

第一步:火焰图锁定热点函数

SysOM Agent 自动调用了 CPU Profiling 能力,采集了抖动时间段的火焰图。

结果一目了然:

native_queued_spin_lock_slowpath   <- 占用 40%+ CPU!
  _raw_spin_lock
    lockref_get_not_dead
      legitimize_path
        try_to_unlazy_next
          walk_component
            lookup_fast

Agent 诊断结论:大量 CPU 时间消耗在 native_queued_spin_lock_slowpath  ——这是内核自旋锁的慢路径。

第二步:追溯问题源头

Agent 进一步分析调用栈:

lookup_fast → try_to_unlazy_next → __legitimize_path

这条链路说明:VFS 路径解析时,RCU 快路径失败,被迫走到了需要获取锁的慢路径。

但为什么会这样?

第三步:抓到“真凶”

Agent 进一步分析调用栈:Agent通过火焰图深入分析,确认 CPU 抖动的根因为 Negative Dentry 堆积引发的 VFS 锁竞争风暴。

  • 诱因: 业务逻辑中存在高频访问不存在文件的行为,导致内核 Dentry Cache 中堆积了海量的 Negative Dentry。
  • 触发: 当系统触发内存回收或 Dentry 缓存达到阈值时,内核回收进程会调用 shrink_dentry_list 尝试销毁这些条目,这会频繁修改父目录的序列计数器(d_seq)并持有 dentry 的自旋锁(d_lock)。
  • 冲突: 此时,业务进程的高频路径解析(RCU Path Walk)会因为检测到 dentry 状态变更或序列号不一致而导致 RCU 模式失效。
  • 恶化: 大量并发线程被迫从 RCU 模式切换到 Refcount 模式(Unlazy 流程),并集体尝试调用 legitimize_path 来获取 dentry 的引用。该过程需要频繁竞争 d_lock 自旋锁,最终在 lockref_get_not_dead 处爆发严重的锁竞争。
  • 现象: 这种高密度的锁竞争将 CPU 拖入 native_queued_spin_lock_slowpath 的长时自旋中,表现为系统负载和内核态 CPU 使用率的剧烈抖动。

完整诊断报告详见文末的附录1。

Negative dentry 导致的 CPU 抖动是一个非常隐蔽的问题:

特征

说明

难发现

top/ps 看不到高 CPU 进程

难定位

需要火焰图 + 内核知识

易忽视

抖动可能被误认为"正常波动"

影响大

会导致业务响应延迟不稳定

SysOM Agent 已经帮助多家企业定位过类似问题,平均诊断时间从 4 小时缩短到 5 分钟。

为什么 SySOM Agent 能做到?

1、多维度数据融合

不是简单地看 top/vmstat,而是:

  • 火焰图:精准定位内核热点。
  • 调用栈:理解代码执行路径。
  • bpftrace:动态追踪内核行为。

2、专家级诊断逻辑

Agent 内置了资深 SRE 的诊断思路:

  • 看到 native_queued_spin_lock_slowpath   → 联想到锁竞争。
  • 看到 lookup_fast 降级 → 理解 VFS 缓存机制。
  • 看到 dentry 相关 → 检查文件系统访问模式。

3、一句话交互

不需要你记住复杂的命令,只需描述问题现象:

❌ 传统方式: perf record -ag -- sleep 20 && perf report && bpftrace ...
✅ SysOM Agent: "我的机器CPU sys 很高,有周期性抖动"


立即体验 SysOM Agent

如果你的系统也有类似的 CPU 抖动问题,不妨让 SysOM Agent 试试,让专家级诊断能力触手可及:

1、登录 SysOM 控制台(https://alinux.console.aliyun.com),纳管节点,等待问题复现。

2、打开智能助手,输入问题描述,自动诊断结果。

相关文档:如何纳管节点:https://help.aliyun.com/zh/alinux/component-management进程热点追踪:https://help.aliyun.com/zh/alinux/process-hotspot-tracking

如果你有自己的 Agent,也可以试试接入SysOM MCP(https://github.com/alibaba/sysom_mcp),SysOM MCP 脱胎于阿里云操作系统控制台,把复杂的运维操作转化为 AI 可直接调用的标准工具,让 AI Agent 能像专业工程师一样“动手”诊断系统问题——用户无需懂命令,只需用自然语言提问,即可获得精准的系统级分析。

SysOM MCP 支持 --stdio (本地嵌入)和 --sse (HTTP 服务)两种模式,轻松集成各类 AI 客户端。

要在支持 MCP 协议的 AI Agent 平台(如 Qwen Code)中使用 SysOM MCP,首先需将项目代码克隆到本地:

git clone https://github.com/alibaba/sysom_mcp.git
cd sysom_mcp

再在配置文件中添加如下配置,就可以让 AI 助手能以自然语言驱动操作系统及运维操作。

{
  "mcpServers": {
    "sysom_mcp": {
      "command": "uv",
      "args": ["run", "python", "sysom_main_mcp.py", "--stdio"],
      "env": {
        "ACCESS_KEY_ID": "your_access_key_id",
        "ACCESS_KEY_SECRET": "your_access_key_secret",
        "DASHSCOPE_API_KEY": "your_dashscope_api_key"
      },
      "cwd": "<sysom mcp项目目录>",
      "timeout": 30000,
      "trust": false
    }
  }
}

附录1:完整诊断报告

┌─────────────────────────────────────────────────────────┐
│  SysOM Agent 诊断报告                                    │
├─────────────────────────────────────────────────────────┤
│  问题现象: CPU sys 周期性飙升,load 抖动                 │
│                                                         │
│  根因分析:                                               │
│  1. 用户进程高频访问不存在的路径                 │
│  2. 产生大量 negative dentry 并被周期性回收              │
│  3. VFS 路径解析从 RCU-walk 降级到 REF-walk              │
│  4. dentry 自旋锁竞争导致 CPU 抖动                       │
│                                                         │
│  解决方案:                                               │
│  1. 应急: sync && echo 2 > /proc/sys/vm/drop_caches    │
│  2. 修复: 检查业务代码,避免访问不存在的路径             │
│  3. 优化: 缓存文件存在性检查结果                         │
└─────────────────────────────────────────────────────────┘

附录2:什么是 Negative Dentry?

当你访问一个不存在的文件时:

ls /path/to/nonexistent_file
# ls: cannot access '/path/to/nonexistent_file': No such file or directory

内核不会每次都去磁盘查找,而是会创建一个 negative dentry 来缓存"这个文件不存在"的信息。

这本来是一个优化机制,但当:

  • 大量进程高频访问不存在的路径
  • 同时系统又在回收 dentry 缓存

就会触发 VFS 层面的锁竞争,导致 CPU 抖动。

如何自查?

# 查看 dentry 缓存状态
cat /proc/sys/fs/dentry-state
# 输出: nr_dentry nr_unused age_limit want_pages dummy dummy
# 如果 nr_dentry 数值很大(数十万以上),可能存在问题

SysOM Agent —— 让复杂问题变简单

联系我们

若想使用更全面的 SysOM 功能,请登录阿里云操作系统控制台体验,地址(复制链接至浏览器打开或文末点击阅读原文)

https://alinux.console.aliyun.com/

您在使用操作系统控制台的过程中,有任何疑问和建议,可以搜索钉群号94405014449 入钉钉群反馈。



来源  |  阿里云开发者公众号

作者  |  万瑞萍、陈诗雁

相关文章
|
23天前
|
人工智能 运维 监控
你的 AI Agent 真的在受控运行吗?
以 OpenClaw 为案例,从行业威胁态势与运行时防护的固有局限出发,系统拆解 AI Agent 可观测体系的设计方法论:通过 Session 审计日志、应用日志与 OpenTelemetry 遥测三条数据管道,构建行为审计、威胁检测、成本管控与运维观测的完整闭环。
你的 AI Agent 真的在受控运行吗?
|
3月前
|
人工智能 前端开发 开发工具
从 ReAct 到 Ralph Loop:AI Agent 的持续迭代范式
Ralph Loop是一种AI编程范式,通过Stop Hook拦截机制强制模型持续迭代,直至满足可验证的完成条件(如测试通过、输出特定标记),解决AI“半途而废”问题。它依赖外部状态(Git、文件系统)实现自我参照循环,支持无人值守的AFK开发,已集成于Claude Code等主流工具。
从 ReAct 到 Ralph Loop:AI Agent 的持续迭代范式
|
3月前
|
XML 前端开发 Serverless
自建一个 Agent 很难吗?一语道破,万语难明
本文分享了在奥德赛TQL研发平台中集成BFF Agent的完整实践:基于LangGraph构建状态图,采用Iframe嵌入、Faas托管与Next.js+React框架;通过XML提示词优化、结构化知识库(RAG+DeepWiki)、工具链白名单及上下文压缩(保留近3轮对话)等策略,显著提升TQL脚本生成质量与稳定性。
974 33
自建一个 Agent 很难吗?一语道破,万语难明
|
机器学习/深度学习 自然语言处理 搜索推荐
为什么说多模态是推荐系统破局的关键?来自饿了么一线的实战复盘
推荐系统作为互联网时代连接用户与信息的核心技术,正在经历从传统协同过滤向多模态智能推荐的重要变革。随着深度学习技术的快速发展,特别是大语言模型和多模态预训练技术的成熟,推荐系统开始从单纯依赖用户行为ID特征转向充分利用商品图像、文本描述等丰富内容信息的新范式。
952 18
|
23天前
|
弹性计算 人工智能 前端开发
Agent/Skills/Teams 架构演进过程及技术选型之道
本文系统梳理Agent架构演进路径:Single Agent→Multi-Agent→Agent Skills→Agent Teams,剖析其本质是大模型“领域知识注入”与“长期记忆管理”能力不足的工程补偿。结合阿里云实践及Google、Anthropic最新研究,提出“由简入繁、按需升级”的科学选型方法论,强调架构复杂度须匹配问题复杂度。
Agent/Skills/Teams 架构演进过程及技术选型之道
|
23天前
|
人工智能 安全 API
深入理解OpenClaw技术架构与实现原理(上)
本文深度剖析OpenClaw——当前最热门的个人AI助手系统,涵盖其本地优先、多端联动的总体架构,以及Gateway网关、Agentic Loop、定时任务、工具系统、Channels连接生态、上下文管理、SubAgent子智能体等16大核心模块。全文以AI-Coding实现为特色,强调安全沙箱、协议化设计与自进化能力,展现新一代软件构建范式的开山之作。
深入理解OpenClaw技术架构与实现原理(上)
|
30天前
|
人工智能 安全 Java
给“氛围编程”系上安全带:阿里集团 AI 代码评审实践与 Benchmark 开源
阿里集团历时一年半、经数万亿Token真实场景打磨,推出AI代码评审助手,实现人机协作新范式:AI接管基础评审,人类聚焦核心风险。联合南京大学开源业界首个支持10语言、具备仓库级上下文感知的CodeReview Benchmark(AACR-Bench),由80+资深工程师多轮交叉标注,显著提升隐性缺陷检出率。
给“氛围编程”系上安全带:阿里集团 AI 代码评审实践与 Benchmark 开源
|
23天前
|
人工智能 机器人 Serverless
打造云端数字员工:OpenClaw 的 SAE 弹性托管实践
OpenClaw GitHub星标破14万,标志着AI从对话框迈向自主智能体,以轻量CLI启动本地网关,提供安全、持久、可扩展的Agent运行时。依托阿里云SAE全托管Serverless容器环境,开箱即用、秒级弹性扩缩与跨可用区高可用,让AI真正成为可交付结果的“数字员工”。
|
1月前
|
机器学习/深度学习 人工智能 边缘计算
转行AI需谨慎:那些半途而废的人,都忽略了这几点。
2025年AI岗位需求暴增543%,但超六成转行者半年内放弃。本文揭示五大陷阱:盲目跟风忽视赛道适配、混淆工具使用与真实能力、碎片化学习缺实战闭环、急功近利轻视伦理、为高薪而非兴趣出发,并指出科学路径才是破局关键。(239字)
522 12
|
3月前
|
Web App开发 人工智能 JSON
别再手写提示词!需求澄清 + 50多专业提示词框架自动匹配,效率提升10倍!
本项目推出「prompt-optimizer」智能体,专治提示词撰写痛点:表达不清、框架难选、套用费时。支持50+全球顶尖提示词框架,自动匹配、主动澄清歧义、一键生成优化提示词,并兼容多模型。已开源Skill与Chrome插件,开箱即用。(239字)
别再手写提示词!需求澄清 + 50多专业提示词框架自动匹配,效率提升10倍!

热门文章

最新文章