云计算内核开发 × AI 辅助编程
从 KVM 虚拟化到 eBPF 性能分析,AI 让开发更高效。
// 原代码存在不必要的内存拷贝
// 优化方案:使用指针传递 + 零拷贝技术
void process_data(const char* input, size_t len) {
// 直接操作输入缓冲区,避免拷贝
const char* ptr = input;
while (len--) {
process_byte(*ptr++);
}
}
理解这 4 类工具,你就掌握了 AI 编程的完整版图。 它们就像开发工具链中的不同角色,各司其职。
技术顾问角色
带 AI 大脑的编辑器
IDE 代码补全助手
命令行 AI 工具
基于 C/云计算开发场景,我们重点推荐 Claude Code。 以下是详细的对比分析。
Anthropic 官方出品的 AI 编程助手
能理解复杂项目结构,C 语言指针、内存管理等都不在话下
直接在终端使用,完美契合云计算开发者的工作流
支持私有部署,敏感代码不出本地
能同时处理多个相关文件,理解项目级别的依赖关系
| 工具 | 类型 | 优点 | 缺点 | 最适合场景 |
|---|---|---|---|---|
| Claude Code | AI IDE/CLI | 代码理解强、命令行原生、安全可控 | 需要订阅 | C/云计算、复杂项目 |
| Cursor | AI IDE | VS Code 体验、上手简单 | GUI 依赖、云端处理 | Web 开发、快速原型 |
| GitHub Copilot | AI 插件 | 补全精准、生态成熟 | 单文件思维、项目理解弱 | 日常编码、函数生成 |
| aider | AI CLI | 开源免费、Git 集成 | 需要自己配置模型 | 开源爱好者、定制需求 |
这是一套经过验证的实战流程,适用于任何 AI 编程工具。 掌握这 5 步,你就能高效地与 AI 协作。
清晰描述你想要实现什么。越具体,AI 的输出越精准。
❌ 模糊的描述:
"帮我写个网络程序"
✓ 清晰的描述:
"用 C 语言实现一个高性能 TCP 服务器:
- 使用 epoll 实现多路复用
- 支持至少 10000 并发连接
- 每个连接需要独立的读缓冲区
- 目标平台是 Linux (CentOS 7)"
根据任务类型选择合适的 AI 工具。
Claude Code / Cursor
GitHub Copilot
Claude.ai / ChatGPT
AI CLI 工具
让 AI 了解你的项目背景。上下文越充分,结果越准确。
告诉 AI 你的项目是如何组织的
提供需要参考或修改的现有代码
说明命名风格、错误处理方式等
性能要求、兼容性、安全限制
# 在项目根目录启动 Claude Code
cd ~/my-project
claude
# Claude 会自动读取:
# - CLAUDE.md (项目说明)
# - 相关源文件
# - Git 历史
AI 生成代码后,你需要审查和验证。
AI 生成的代码不是 100% 正确的。作为资深开发者,你的审查是必不可少的环节。
遇到问题?让 AI 帮你调试。迭代优化直到满意。
你: 代码编译报错了,错误信息是:
"undefined reference to 'epoll_create1'"
AI: 这个错误说明你的系统 epoll 支持可能有问题。
请检查:
1. 内核版本 (需要 2.6.27+)
2. 编译时是否正确链接
尝试在编译命令中添加 -lrt 参数:
gcc -o server server.c -lrt
你: 加了 -lrt 还是报错
AI: 让我看看你的代码... 问题出在头文件。
epoll_create1 需要 _GNU_SOURCE 宏。
在文件开头添加:
#define _GNU_SOURCE
#include <sys/epoll.h>
这些是 C/云计算开发者最常遇到的场景, 每个场景都附有可直接使用的提示词模板。
有一个处理网络数据包的函数,在高并发下性能不够理想,需要优化。
请帮我优化这个 C 函数的性能:
[code here]
当前问题:
- 在 10k 并发下 CPU 使用率过高 (80%+)
- 函数被频繁调用,是热点路径
优化目标:
- 降低 CPU 使用率
- 减少内存分配次数
- 保持代码可读性
环境信息:
- 目标平台:Linux x86_64
- 编译器:GCC 9+
- 可使用 SIMD 指令
需要编写一个自动化脚本,监控服务器状态并在异常时发送告警。
请帮我写一个服务器监控脚本:
需求:
1. 监控 CPU、内存、磁盘使用率
2. 监控指定进程是否存活
3. 监控 TCP 端口是否可连接
4. 异常时通过企业微信发送告警
技术要求:
- 使用 Bash 或 Python
- 兼容 CentOS 7 / Ubuntu 20.04
- 低资源占用
- 支持配置文件
输出要求:
- 完整脚本代码
- 配置文件模板
- systemd service 文件
有一个复杂的 C 模块,需要为其他团队生成 API 文档。
请为以下 C 代码生成 API 文档:
[code here]
文档要求:
1. 每个公开函数的说明
2. 参数说明(类型、含义、约束)
3. 返回值说明
4. 使用示例
5. 线程安全性说明
6. 错误处理指南
格式要求:
- Markdown 格式
- 中文文档
- 包含代码高亮
有一段 10 年前的 C 代码,需要重构以提高可维护性和安全性。
请帮我重构这段 C 代码:
[code here]
重构目标:
1. 提高代码可读性
2. 修复潜在的内存安全问题
3. 添加适当的错误处理
4. 拆分过长的函数
约束条件:
- 保持 API 兼容性
- 不改变核心逻辑
- 兼容 GCC 4.8+ (CentOS 7)
请分步骤进行:
1. 先分析现有代码的问题
2. 给出重构方案
3. 逐步实现
4. 说明每个改动的原因
程序在高并发下偶现崩溃,怀疑是竞态条件。
请帮我诊断这个崩溃问题:
程序信息:
- 多线程网络服务
- 使用 pthread + epoll
- 偶现崩溃(约每 100 小时一次)
崩溃信息:
[crash log / core dump backtrace here]
相关代码:
[code here]
请分析:
1. 可能的竞态条件在哪里
2. 如何修复
3. 如何添加防护措施
4. 建议的测试方法
华为云 ECS 实例运行高负载计算任务,需要优化内核调度参数以减少延迟抖动,提升实时性能。
请帮我优化华为云 ECS 的内核调度参数:
环境信息:
- 华为云 ECS(鲲鹏 920 / x86 可选)
- OS:openEuler 22.03 / CentOS 7.9
- 内核:5.10+ / 4.19 LTS
- 工作负载:实时数据处理的计算密集型任务
当前问题:
- CPU 调度延迟抖动较大(p99 > 500us)
- 多核负载不均衡
- 中断处理占用过多 CPU 时间
优化目标:
- 降低调度延迟和抖动
- 提高 CPU 缓存命中率
- 优化 NUMA 亲和性
- 隔离关键业务 CPU
请提供:
1. 内核启动参数调优建议(isolcpus、nohz_full 等)
2. sysctl 调度器参数配置
3. IRQ 亲和性配置脚本
4. cgroups v2 资源隔离方案
5. 验证和监控方法
华为云上的 KVM 虚拟机网络 I/O 性能不达标,需要调优 virtio 和后端驱动。
请帮我优化 KVM 虚拟机的网络 I/O 性能:
环境信息:
- 宿主机:华为云物理机,openEuler 22.03
- 虚拟机:CentOS 7.9,virtio-net 网卡
- 业务:高吞吐量网络转发(10Gbps+)
- CPU:支持 DPDK 和 vhost-user
当前问题:
- 网络吞吐量只能达到 6Gbps
- CPU 在软中断上消耗过高(30%+)
- P99 延迟不稳定
请提供优化方案:
1. virtio-net 参数调优(多队列、合并缓冲区)
2. vhost-net vs vhost-user 选择建议
3. CPU 亲和性绑定(vCPU 和 vhost 线程)
4. 内存大页配置(HugePages)
5. 中断合并和 RSS 配置
6. 性能测试和验证方法
Kubernetes 集群中某容器频繁 OOM,或 CPU 资源被其他容器抢占导致性能抖动。
请帮我分析和解决容器资源问题:
环境信息:
- Kubernetes 1.25+
- 容器运行时:containerd / docker
- 内核:支持 cgroups v2
- 节点:华为云 ECS(8C32G)
问题描述:
- 容器内存使用接近 limit 但未 OOM,性能下降
- CPU 使用率波动大,疑似被其他容器抢占
- 需要精确控制资源分配
请提供:
1. cgroups v2 资源限制配置方法
2. CPU quota 和 shares 的正确使用
3. 内存 OOM 评分和优先级设置
4. 如何分析和排查资源争抢问题
5. Prometheus 监控指标推荐
6. 资源 Request/Limit 最佳实践
需要开发一个内核模块实现自定义的系统调用拦截或设备驱动。
请帮我开发一个 Linux 内核模块:
需求描述:
- 功能:实现一个字符设备驱动,支持 read/write/ioctl
- 平台:openEuler / CentOS,内核 4.19+
- 需要支持多个进程并发访问
技术要求:
1. 使用内核互斥锁保护共享数据
2. 实现 poll/waitqueue 支持阻塞读
3. 使用 kmalloc/vmalloc 管理内核内存
4. 支持 ioctl 进行配置控制
5. 提供 /proc 接口查看状态
请提供:
1. 完整的内核模块代码框架
2. Makefile 和 Kconfig 配置
3. 用户态测试程序
4. 常见内核编程注意事项
5. 调试方法(dmesg、ftrace、kgdb)
高并发网络服务器需要优化 Linux 网络协议栈,提升吞吐量和降低延迟。
请帮我优化 Linux 网络协议栈性能:
场景信息:
- 服务器:华为云 ECS,25G 网卡
- 业务:高并发 TCP 服务(10万+ 连接)
- 目标:降低延迟,提高吞吐量
当前配置:
[sysctl -a | grep net 的关键参数]
请提供优化方案:
1. 内核网络参数调优(sysctl.conf)
- TCP 缓冲区大小
- 连接队列长度
- TIME_WAIT 处理
- 拥塞控制算法选择
2. 网卡多队列和 RSS 配置
3. 是否需要 XDP/DPDK 加速?适用场景?
4. 监控和问题排查工具
- ss、netstat、ethtool
- perf、bcc 工具
5. 性能测试方法(iperf3、wrk)
数据库服务器 I/O 延迟高,需要优化存储子系统配置。
请帮我优化存储 I/O 性能:
环境信息:
- 存储:华为云 EVS(SSD / 高IO)
- 文件系统:ext4 / xfs
- 业务:MySQL / PostgreSQL 数据库
- 问题:随机读写延迟高,IOPS 上不去
当前配置:
- I/O 调度器:[cat /sys/block/sda/queue/scheduler]
- 文件系统挂载参数:[mount | grep data]
请提供优化方案:
1. I/O 调度器选择(none/mq-deadline/kyber/bfq)
2. 块设备队列深度调整
3. 文件系统挂载参数优化
4. 预读和缓存配置
5. NUMA 相关的存储优化
6. 性能测试和验证方法(fio 配置)
生产环境性能瓶颈分析,需要使用性能剖析工具定位热点。
请帮我分析程序性能瓶颈:
程序信息:
- 语言:C/C++
- 场景:CPU 密集型计算 / I/O 密集型服务
- 问题:性能不达标,需要定位瓶颈
已收集的数据:
- perf record -g -p 采样数据
- [或者提供 perf report 输出]
请帮我:
1. 分析 perf 报告,找出热点函数
2. 生成火焰图的命令和方法
3. 使用 BCC 工具进一步分析
- profile: CPU 采样
- offcputime: 休眠时间分析
- biolatency: 块 I/O 延迟
- tcpretrans: TCP 重传
4. 常见性能反模式识别
5. 优化建议
Skills 是 Claude Code 的扩展能力,让 AI 掌握特定领域的专业知识和工作流程。 掌握 Skills,让你的开发效率倍增。
Skill = 领域知识 + 工作流程 + 最佳实践
预置的专业知识,如内核开发规范、云计算最佳实践
标准化的任务执行流程,确保质量和一致性
检测到相关任务时自动激活,无需手动调用
理解项目背景,提供精准的建议和代码
内存安全、性能优化、并发编程
驱动开发、内核调优、性能剖析
Docker、Kubernetes、云原生
性能剖析、火焰图、调优建议
在 Claude Code 中查看已安装的 Skills 列表
# 在 Claude Code 中输入
/skills
# 或查看特定 skill 的帮助
/skill-creator --help
从社区或官方仓库安装 Skills
# 安装官方 skill
/skill-install cpp-coding-standards
# 安装社区 skill
/skill-install github.com/user/kernel-debug-skill
Skills 会在检测到相关任务时自动激活
# 自动触发示例
你: "帮我优化这个 C 函数的性能"
# Claude 自动激活 cpp-coding-standards skill
# 手动调用
你: "/tdd 实现一个线程安全的队列"
# 强制使用 TDD 工作流
为团队创建专属的 Skills
# 创建新 skill
/skill-creator
# Skill 文件结构
~/.claude/skills/
├── my-kernel-skill/
│ ├── SKILL.md # Skill 定义
│ ├── knowledge/ # 知识库
│ └── templates/ # 模板文件
虽然没有华为云官方的 Skill,但以下 Skills 对云计算内核开发非常有帮助:
# 步骤 1:描述你的任务
你: 我需要优化华为云 ECS 的内核调度参数,降低实时任务的延迟抖动。
当前环境是 openEuler 22.03,鲲鹏 920 处理器。
# Claude 自动识别场景,可能激活以下 Skills:
# - cpp-coding-standards(如果需要编写 C 代码)
# - security-review(如果涉及安全相关配置)
# - backend-patterns(系统设计建议)
# 步骤 2:Claude 会提供专业的调优建议
AI: 我来帮你优化内核调度参数。针对鲲鹏 920 + openEuler 22.03,
建议从以下几个方面入手:
1. 内核启动参数...
2. sysctl 配置...
3. IRQ 亲和性...
# 步骤 3:请求生成具体配置
你: 请生成完整的 sysctl 配置文件和验证脚本
# 步骤 4:Claude 生成可用的代码和配置
AI: [生成 sysctl.conf 配置]
[生成验证脚本]
[提供测试方法]
Skills 会在需要时自动激活,无需刻意记忆
描述任务越具体,AI 的建议越精准
遇到问题可以持续对话,逐步优化
专为华为云杭州团队设计,覆盖虚拟化内核、鲲鹏/昇腾适配、高性能 I/O 等核心领域。
| 技术领域 | 核心工具 | AI 辅助方案 | 推荐 Skills/MCP |
|---|---|---|---|
| C/C++ 内核 | Linux Kernel 5.10+ | 代码生成、内存安全检查、性能优化 | cpp-coding-standards, security-review |
| 虚拟化技术 | KVM/QEMU, DPDK, SR-IOV | 驱动开发、I/O 路径分析、性能调优 | docker-patterns, backend-patterns |
| eBPF/性能监控 | BCC, bpftrace, perf | 脚本生成、数据分析、火焰图解读 | performance-analysis (自定义) |
| 硬件适配 | 鲲鹏/昇腾 SDK, 擎天卡 | 驱动适配、汇编优化、SIMD 指令 | arm-optimization (自定义) |
| 云原生/Go | Kubernetes, Containerd | Operator 开发、CRD 设计、控制器逻辑 | golang-patterns, k8s-patterns |
| 测试/CI | CodeArts, Jenkins | 测试用例生成、流水线配置、代码审查 | tdd-workflow, code-review |
可直接复制到 ~/.claude/skills/ 目录使用
skills/
├── README.md # Skill 创建完整指南 ⭐
├── kernel-scheduler-tuning/ # 内核调度参数优化
├── smoke-test-ops/ # 冒烟测试专家
├── cloud-performance-analysis/ # 云性能分析 (perf/eBPF)
├── kernel-debug-assistant/ # 内核调试助手
├── kvm-virt-optimization/ # KVM 虚拟化优化
├── huawei-kvm-debug/ # 华为云 KVM 诊断 ⭐
└── kunpeng-perf-tuning/ # 鲲鹏 920 性能调优 ⭐
查看 skills/README.md 获取完整的 Skill 创建指南,包括模板、最佳实践和华为云专用示例。
# 克隆仓库
git clone https://github.com/jiangbingo/ai-coding-guide.git
# 复制 Skills 到 Claude Code
cp -r ai-coding-guide/skills/* ~/.claude/skills/
# 验证安装
claude skills list
你: 我的鲲鹏 920 服务器实时任务有 500us 延迟抖动,帮我优化。
AI: [自动激活 kernel-scheduler-tuning]
→ 收集 CPU 拓扑和 NUMA 信息
→ 分析当前隔离配置
→ 生成 GRUB 和 sysctl 优化方案
你: 帮我做一个 openEuler 内核的冒烟测试。
AI: [自动激活 smoke-test-ops]
→ 检查内核版本和 KVM 支持
→ 测试虚拟机生命周期
→ 验证网络和存储 I/O
→ 生成测试报告
你: KVM 宿主机 CPU 使用率很高,帮我分析热点。
AI: [自动激活 cloud-performance-analysis]
→ 采集 perf 数据和火焰图
→ 识别 Top 5 热点函数
→ 分析性能反模式
→ 给出优化建议
你: 内核模块崩溃了,Call Trace 如下...
AI: [自动激活 kernel-debug-assistant]
→ 解析 Call Trace 定位崩溃函数
→ 分析根因(空指针/竞态/内存越界)
→ 生成修复补丁代码
→ 提供预防措施
你: 需要在鲲鹏 920 上部署 NFV 虚拟机,要求 20Gbps+ 吞吐。
AI: [自动激活 kvm-virt-optimization]
→ 分析 NUMA 拓扑和 CPU 隔离
→ 生成 libvirt XML 优化配置
→ 配置 virtio 多队列和 vhost 绑定
→ 提供性能验证方法
内核调度参数优化
云性能分析专家
内核调试助手
冒烟测试专家
KVM 虚拟化优化
如何在 Claude Code 中实践多 Agent 协作架构
多个 Agent 同时分析不同方面
├── [Perf Agent] → CPU 热点
├── [KVM Agent] → VM Exit
├── [NUMA Agent] → 内存亲和性
└── 最后汇总结果
适用:全面性能评估
任务按顺序通过多个 Agent
Step 1: [Perf] 识别瓶颈
↓
Step 2: [KVM] 深入分析
↓
Step 3: [Tuner] 生成方案
↓
Step 4: [Test] 验证效果
适用:问题 → 解决 → 验证
根据分析结果决定下一步
[Perf Agent] 分析
├── CPU 限流? → [Kernel Agent]
├── 跨 NUMA? → [NUMA Agent]
└── VM Exit? → [KVM Agent]
适用:根因不明确
一个 Agent 遇到难题,咨询其他
[Debug Agent] 发现崩溃
├── 咨询 [Kernel Agent]
├── 咨询 [Memory Agent]
└── 确认根因
适用:复杂问题诊断
用户: 鲲鹏 920 + openEuler,virtio 网卡只能跑到 6Gbps,需要优化到 20Gbps+
## Claude Code 执行流程
### Step 1: Orchestrator 任务分解
目标: 网络吞吐优化 6Gbps → 20Gbps
平台: 鲲鹏 920 + openEuler
类型: KVM 虚拟化网络
### Step 2: 并行诊断(3 个 Agent 同时工作)
[Perf Agent] 分析性能数据...
→ virtio_net 处理占用 15% CPU
→ 中断处理占用 8% CPU
→ 热点: virtnet_send_command
[KVM Agent] 分析虚拟化配置...
→ virtio 队列数: 1 (瓶颈!)
→ vhost 线程: 未绑定 CPU
→ RSS: 未启用
[NUMA Agent] 分析 NUMA 亲和性...
→ vCPU 分布在 Node 0
→ 网卡在 Node 1
→ 跨 NUMA 访问: 38% (性能损失!)
### Step 3: 汇总诊断结果
├── 瓶颈 1: virtio 单队列 (影响 40%)
├── 瓶颈 2: 跨 NUMA 访问 (影响 30%)
└── 瓶颈 3: vhost 线程竞争 (影响 15%)
### Step 4: [Tuner Agent] 生成优化方案
1. 启用 virtio 多队列 (8 队列)
<driver name='vhost' queues='8'/>
2. vhost 线程绑定到独立 CPU
<emulatorpin cpuset='2-3'/>
3. NUMA 亲和性优化
<numatune><memory mode='strict' nodeset='0'/></numatune>
### Step 5: [Test Agent] 生成验证脚本
#!/bin/bash
# 预期吞吐: > 20Gbps
iperf3 -c server -t 60 -P 8
### Step 6: [Report Agent] 生成最终报告
原始吞吐: 6Gbps → 优化后: 25Gbps (预期)
提升: 316%
# 方法 1:明确指示多 Agent 协作
你: 请同时启动以下分析:
1. [Perf Agent] 分析 CPU 热点
2. [KVM Agent] 分析 VM Exit 分布
3. [NUMA Agent] 分析 NUMA 访问模式
完成后汇总结果。
# 方法 2:流水线模式
你: 按 KVM 网络优化流程执行:
Step 1: [Perf] 采集性能数据
Step 2: [KVM] 分析虚拟化开销
Step 3: [Tuner] 生成优化方案
Step 4: [Test] 生成验证脚本
# 方法 3:条件分支
你: 首先做性能分析。
如果发现 CPU 限流 > 10%,启动调度器优化。
如果发现跨 NUMA > 20%,启动 NUMA 优化。
如果发现 VM Exit 频繁,启动 KVM 优化。
详细的多 Agent 协作架构设计、协作协议、最佳实践,请查看:
安装 Claude Code
curl -fsSL https://claude.ai/install.sh | sh
配置项目 CLAUDE.md
创建项目知识库,说明内核版本、目标平台、编码规范
安装云计算 Skills
cp skills/* ~/.claude/skills/
# 场景:KVM 虚拟机网络 I/O 性能调优
# 1. 描述任务
你: 帮我分析 KVM 虚拟机的网络 I/O 性能问题。
环境:鲲鹏 920 + openEuler 22.03 + virtio-net
问题:吞吐量只能达到 6Gbps,目标是 20Gbps+
# 2. AI 自动激活相关 Skills
AI: [激活 kernel-scheduler-tuning 和 smoke-test-ops]
我来帮你分析 KVM 网络性能问题。
收集 virtio 相关的性能数据...
追踪网络 I/O 路径...
分析结果:
1. vhost 线程在 CPU 0 上,与网络中断竞争
2. virtio 队列数只有 1,未充分利用多核
3. 未启用 RSS 和中断合并
# 3. 生成优化方案
你: 请生成完整的优化配置
AI: [生成 XML 配置] [生成 sysctl 配置] [生成 vhost 绑定脚本]
# 4. 验证效果
你: 应用后如何验证?
AI: [生成测试脚本] [提供预期指标] [告警阈值建议]
掌握基础后,这些资源能帮你更深入地使用 AI 编程工具。
安装 Claude Code 或选择一个 AI 工具
用本文的提示词模板试一个简单任务
逐步把 AI 融入你的日常工作流
"AI 不会取代程序员,但会用 AI 的程序员会取代不会用的。"