必须用codebuddy生成火焰图定位cpu热点,先验证v2.3.0+ ai-enhanced版本及perf技能文件存在,再用自然语言指令或手动命令采样60秒,通过svg悬停看self占比、自顶向下追踪调用链定位问题代码,阻塞问题需换用线程分析命令,最后用export导出带水印pdf并分享链接。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

线上服务CPU突然飙到95%,告警消息刷屏,但trace追了六条链路都没找到根因——这时候必须用CodeBuddy生成火焰图,让所有线程的调用栈在一张图上摊开,最宽的火苗直接暴露真实热点。
确认环境是否就绪
登录服务器后,先执行codebuddy --version,输出应包含v2.3.0+且显示ai-enhanced标识。若报错“command not found”,说明未启用TencentOS Server 4 AI增强版镜像,需重新部署实例——【普通TencentOS镜像不带CodeBuddy】。
执行ls /usr/local/share/codebuddy/skills/perf,能看到flamegraph.sh和async-profiler.jar两个文件才算完整安装。
一键生成火焰图
方法一:自然语言指令(推荐)
直接输入:codebuddy "生成60秒CPU火焰图,输出SVG和PDF报告"。
AI会自动检测perf权限、挂载debugfs、运行采样、渲染图形、打包报告——全程无需人工干预。
方法二:手动触发采样
执行codebuddy skill perf flamegraph --duration 60 --output /tmp/flame。
注意:--duration参数必须是整数秒,小于30秒的采样结果不可信;输出路径/tmp/flame需有写入权限,否则采样中途静默失败。
解读火焰图关键区域
第一步:打开生成的cpu_flamegraph.svg文件,用浏览器打开即可交互查看。
第二步:鼠标悬停任意矩形,看右上角tooltip显示的「self」占比——这是该函数自身消耗CPU时间的比例,不是调用它的父函数耗时。
第三步:从顶部最宽的矩形开始向下追踪调用链,例如看到Pattern.compile占宽42%,其下方紧连ReportService.generate(),说明热点在报表服务里反复编译正则表达式。
第四步:点击该矩形,右侧会高亮显示对应Java源码行号(需项目已部署调试符号),直接定位到问题代码行。
如果发现大量Unsafe.park或Object.wait堆叠在底部,说明不是CPU热点而是线程阻塞问题,此时应改用codebuddy "分析线程阻塞状态"命令。
导出与分享报告
执行codebuddy export flamegraph --id latest --format pdf --share,系统自动生成带水印的PDF报告,并返回一个72小时有效的下载链接。
链接支持微信扫码直下,无需登录控制台——适合发给协作同事或钉钉群同步结论。
【注意:--share参数必须显式声明,否则只保存到本地】











