↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

用硬件断点追踪 PostgreSQL 的内部变量 RSS

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

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

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