Brendan Gregg 作为系统性能领域的权威专家,现任职于英特尔,从事大规模云计算性能优化。此前在 Netflix 积累的云 perf 经验,使其在英特尔规模生产系统中,推动 eBPF 追踪、火焰图可视化及处理器基准测试等技术落地。这些策略针对万核集群、GPU 加速器等超大规模环境,确保低延迟、高吞吐。
性能工程方法论:从 USE 到 Fast by Friday
Gregg 强调系统性方法论,避免盲目调优。先用 USE 方法(利用率 Utilization、饱和度 Saturation、错误 Error)诊断资源瓶颈:CPU 利用率 > 80% 检查调度,饱和度即 run queue>cores 数,错误如 ECC 告警。证据见其 Linux perf 总结页,对于 Intel Xeon 集群,CPU 饱和常因 irq 不均。
进阶 TSA(线程状态分析),追踪线程 off-CPU 时间。更实战的是 “Fast by Friday”:周初基准、周中 eBPF 追踪、周尾验证。参数:周基准用 perf stat -e cycles,instructions,cache-misses -r 5 ,重复 5 次取中位;阈值 IPC<1.5 或 cache miss>10% 触发深析。
eBPF 追踪:危机工具默认安装
英特尔规模系统痛点:内核驱动崩溃(如 CrowdStrike 蓝屏)。Gregg 博客《No More Blue Fridays》指出,eBPF 用户态加载,无法 panic 内核。“eBPF Observability Tools Are Not Security Tools” 警告勿滥用安全钩子增开销。
落地清单:
- 默认安装:bpftrace, bcc (funccount.bt, biolatency.bt)。
- CPU 追踪:bpftrace -e 'kprobe:finish_task_switch /pid==$PID/ {@[ustack] = count (); }',阈值 switch>1ms/core 告警。
- 风险限:采样率 - F 99Hz,避免 > 5% overhead;云 VM 限 PMC,用软件事件如 sched:sched_switch。
火焰图可视化:AI/GPU 扩展
Gregg 发明火焰图,现推 AI Flame Graphs 可视 GPU / 加速器栈迹,Intel 客户预览。IntelON 2021 谈处理器基准:Netflix 云选型 IPC>2.5 cores。
生成参数:
- perf record -F 99 -a -g -- sleep 30
- perf script | stackcollapse-perf.pl > out.folded
- flamegraph.pl out.folded > flame.svg
GPU 扩展:Doom GPU 火焰图示硬件 profile+CPU 路径。优化:宽栈 frame pointers(Fedora/Ubuntu 已默认),阈值 off-CPU>20% 查锁 / IO。
优化参数与监控清单
CPU / 处理器:
- irqbalance on,/proc/irq/default_smp_affinity=0xf。
- sched-mem=1 (AMD EPYC),/sys/kernel/debug/sched/tune/boost=1 测试。
- 阈值:load avg>cores*1.2,mpstat | awk '{print $3+$5>10}' alert。
内存:
- hugepages /proc/meminfo AnonHugePages>0,echo always > /sys/kernel/mm/transparent_hugepage/enabled。
- slabtop 监控 kmalloc,阈值 > 10% 总 mem。
GPU/AI:
- nvidia-smi -l 1 监控 util>90%;eBPF GPU 火焰阈值 kernel+accel>50%。
监控:Prometheus scrape eBPF exporter,Grafana 火焰图面板;回滚:canary 部署基准对比,delta>5% 回滚。
这些策略已在 Intel 云验证,节省亿级成本。风险:eBPF verifier 拒绝复杂程序,fallback perf;云限 PMCs 用软件计数。
资料来源:
- https://brendangregg.com/ (Linux perf 页、AI Flame Graphs)
- https://brendangregg.com/Slides/IntelON2021_ProcessorBenchmarking (“在 IntelON 谈 Netflix 云处理器基准”)