发布于 2026-09-10T10:59:40.194707Z · Jan Kristof Nidzwetzki · jnidzwetzki.github.io

Jan Kristof Nidzwetzki 演示了用硬件断点而不是 uprobe 追踪 PostgreSQL。做法是让 CPU 监视某个内存地址,被访问时触发 eBPF 程序,不必替换指令,适合盯高频访问的变量。文中的例子是用 bpftrace 的 watchpoint 探针盯住事务 ID 生成用的 nextXid,每次写入就打印进程号和新值。他测得硬件断点约有三成开销、uprobe 约三成八,两者都因 CPU 模式切换而不便宜。
Jan Kristof Nidzwetzki 演示了用硬件断点而不是 uprobe 追踪 PostgreSQL。做法是让 CPU 监视某个内存地址,被访问时触发 eBPF 程序,不必替换指令,适合盯高频访问的变量。文中的例子是用 bpftrace 的 watchpoint 探针盯住事务 ID 生成用的 nextXid,每次写入就打印进程号和新值。他测得硬件断点约有三成开销、uprobe 约三成八,两者都因 CPU 模式切换而不便宜。
来源记录
- center.info_item · c02a99a1642d7d2a · 2026-10-03T04:08:35.169032Z
- pgweb.info_item · c02a99a1642d7d2a · 2026-10-03T04:08:55.967155Z