【可观测性工程】内核追踪:ftrace、kprobe、uprobe、tracepoint 生产实战
当用户态观测工具无法定位问题时,深入 Linux 内核追踪层。拆解 ftrace、tracepoint、kprobe、uprobe、bpftrace 的适用场景、WSL/生产复现步骤、安全边界,以及与 eBPF 全景和 linux-net 系列的阅读边界。
发布来自土法炼钢兴趣小组的知识、笔记、进展和应用。主题包括数据结构和算法、编程语言、网络安全、密码学等。
共 9 篇文章 · 返回首页
当用户态观测工具无法定位问题时,深入 Linux 内核追踪层。拆解 ftrace、tracepoint、kprobe、uprobe、bpftrace 的适用场景、WSL/生产复现步骤、安全边界,以及与 eBPF 全景和 linux-net 系列的阅读边界。
不是工具箱罗列,而是一条按顺序推进的调查链:从 pg_stat_statements 定位可疑 queryid,到 EXPLAIN (ANALYZE, BUFFERS) 解剖执行计划,到 pg_stat_activity + wait_event 诊断等待类型,到 pg_locks + pg_blocking_pids() 追踪锁等待树,最后用 OS 层工具(iostat/perf/bpftrace)确认物理瓶颈。覆盖三个特殊场景:计划缓存的快慢切换、CPU 100% 无慢查询的 LWLock 自旋根因、命中率 99% 但 IO 打满的统计骗局。
从内核源码拆解 Linux 网络丢包追踪的完整体系:kfree_skb tracepoint 与 80+ 种 drop_reason 枚举、drop_monitor netlink 子系统、dropwatch 工具、perf 丢包记录、bpftrace 丢包聚合脚本,以及生产环境常见丢包点速查表。
从内核 tracepoint 定义出发,系统讲解 bpftrace、perf、ftrace 三大工具在网络诊断中的实战用法:TCP 重传根因分析、softirq 延迟定位、收发包路径延迟剖析、conntrack 表满监控、per-function 火焰图,以及各工具的适用场景与性能开销对比。
perf 到底看到了什么?PMU 硬件计数器、tracepoint、perf_event_open、perf ring buffer、Processor Trace——本文讲 perf 子系统的内核机制。
系统梳理 Linux I/O 性能分析工具——iostat、blktrace、BCC/bpftrace、ftrace、perf 的使用方法,以及 I/O 瓶颈排查流程与常见问题模式
一份面向线上事故的事件驱动代码排障手册:从症状收敛、strace/eBPF/perf 逐层下钻,到 OpenTelemetry 集成与 Sanitizer 离线复盘。
从 NIC 驱动到用户态 read(),一个网络包在 Linux 内核中到底经历了什么?本文拆解 sk_buff、NAPI、softirq、netfilter 的完整收包路径,并用 bpftrace 实测追踪每一跳的延迟。
你有火焰图,但它只能告诉你 CPU 在忙什么——CPU 不忙的时候呢?从 perf 到 Parca,Linux 性能分析工具链走过了 15 年,是时候搞清楚每个工具的真正定位了。