# 1. perf record -g + FlameGraph 在 on-CPU profiling 的工程价值? A -g 不采样栈 B FlameGraph 宽度代表调用栈深度 C 火焰图只显示 off-CPU D -g 采样调用栈,FlameGraph 以宽度=CPU 时间可视化定位 CPU 热点 ✓ 正确答案
# 2. ftrace function_graph 在 off-CPU 自定义 tracepoint 工程的工程价值? A function_graph 只记录用户态 B function_graph 记录内核函数调用图与耗时,tracepoint 是静态可开关埋点 ✓ 正确答案 C tracepoint 无法开关 D function_graph 不能显示调用链
# 3. BPF ringbuf 相对传统 perf event buffer 在内存共享、减少 per-CPU 数据丢失与唤醒效率上有何改进?各自适用什么场景? A perf buffer 是共享内存 B ringbuf 共享内存、减少 per-CPU 丢失、高效唤醒,perf buffer 是 per-CPU 易丢失 ✓ 正确答案 C ringbuf 每 CPU 独立丢失 D 两者相同
# 4. Conprof(Linux kernel 6.x cycle-based)在 profiling overhead 的工程取舍? A 用软件定时器采样开销大 B 用硬件周期采样,开销低、贴近实际 CPU 消耗,适合持续剖析 ✓ 正确答案 C 无需新内核 D 只能剖析用户态
# 5. bpftrace 'tracepoint:syscalls:sys_enter_openat { printf("%s %s\n", comm, str(arg0)); }' 的 syscall 追踪? A 它打印内核调用栈 B 它在 openat 进入时打印进程名与路径名(arg0 转字符串),追踪文件访问 ✓ 正确答案 C comm 是被打开的文件名 D 它只能追踪 write
# 6. USDT(User Statically-Defined Tracing)在 dtrace-style static probes 的工程价值? A USDT 是动态符号 B USDT 探针会随代码失效 C USDT 需重启启用 D USDT 是源码预埋的稳定探针,可动态启用、未启用时零开销 ✓ 正确答案
# 7. Pyroscope(Rust-based)在 flamegraph aggregation 的工程价值? A 它只支持 CPU B 它只能做单次剖析 C 它是 Rust 持续剖析平台,聚合多实例调用栈生成火焰图,跨语言支持 ✓ 正确答案 D 它不支持火焰图
# 8. uprobes 在 bpftrace / bcc 与 USDT 协同的 user-space function tracing 工程价值? A uprobe 动态追踪任意用户函数,USDT 是稳定静态探针,有 USDT 优先用 USDT ✓ 正确答案 B uprobe 是源码预埋 C USDT 依赖符号易失效 D uprobe 只能追踪内核
# 9. Parca 在 eBPF-based profiling 的工程价值? A 必须重编译应用 B 用 eBPF 内核采样栈,无侵入、低开销,适合生产持续剖析 ✓ 正确答案 C eBPF 开销极大 D 只支持单个语言
# 10. bpftrace 的 @hist 与 @lquantize 在 latency histogram 的工程价值? A @lquantize 覆盖宽范围 B @hist 是线性分桶 C @hist 对数分桶覆盖宽范围,@lquantize 线性分桶细粒度,用于延迟直方图 ✓ 正确答案 D 两者不能做直方图
# 11. perf 与 ftrace 联合,perf 触发 tracepoint → ftrace 抓 latency 的工程价值如何? A perf 做函数图 B 两者功能完全相同 C ftrace 做全局采样 D perf 全局定位事件,ftrace 深入追踪调用图与延迟,两者互补定位延迟根因 ✓ 正确答案
# 12. 实时信号在 systemtap / perf probe 的工程应用? A 可追踪实时信号的发送/接收与处理,诊断信号丢失与延迟 ✓ 正确答案 B 实时信号不排队 C probe 无法追踪信号 D 实时信号无数据
# 13. USDT probe 在 libc、OpenSSL probe 数量与 overlap guard 的工程价值? A 探针激活后固定失效 B 库内无 USDT 探针 C libc/OpenSSL 内置 USDT 探针可追踪关键路径,overlap guard 保证探针有效 ✓ 正确答案 D overlap guard 会放大开销
# 14. Datadog Continuous Profiler 在 AL2 hardware profiler 的工程价值? A 只能手动触发 B 持续采样生产调用栈,硬件采样低开销,与 trace 关联定位热点 ✓ 正确答案 C 硬件采样开销极大 D 与 trace 无关
# 15. USDT 相对 dynamic uprobe 的 env overhead? A uprobe 源码预埋 B USDT 启用后开销极大 C USDT 未启用零开销、启用低开销且稳定,uprobe 动态灵活但需断点处理 ✓ 正确答案 D USDT 无需预埋
# 16. perf 的采样模式,perf record/report 与硬件计数器(PMC)如何配合? A perf 只能计数不能采样 B perf record 用 PMC 采样栈与事件,perf report 展示热点,采样开销低 ✓ 正确答案 C PMC 是软件计数器 D perf report 不展示调用栈
# 17. USDT 探针与动态追踪,bpftrace 的一行脚本如何定位问题? A bpftrace 只能追踪内核 B bpftrace 用 usdt:/uprobe: 语法 attach 探针,一行脚本统计调用/延迟快速定位 ✓ 正确答案 C USDT 探针无法被 bpftrace attach D 一行脚本不能打印参数