SystemTap 追踪 PostgreSQL Buffer Read Start 事件
可以使用 SystemTap 追踪 PostgreSQL 的 buffer-read-start 事件,步骤如下:
- 安装 SystemTap
在 Linux 系统中执行以下命令安装 SystemTap:
sudo apt-get install systemtap
- 创建 SystemTap 脚本
在 Linux 系统中创建一个名为'postgresql-buffer-read-start.stp' 的文件,文件内容如下:
probe postgresql.statement.entry {
printf('Statement %d started: %s\n', $statement_id, user_string($query_string));
}
probe postgresql.buffer_read_start {
printf('Buffer read started: %d:%d:%d\n', $filenode, $blocknum, $pages);
}
这个脚本会打印出所有的 PostgreSQL 语句和 buffer read 事件,其中'filenode' 是文件节点号,'blocknum' 是块号,'pages' 是读取的页数。
- 运行 SystemTap 脚本
在命令行中运行以下命令来运行 SystemTap 脚本:
sudo stap postgresql-buffer-read-start.stp
这个命令会启动 SystemTap 并运行脚本,打印出所有的 PostgreSQL 语句和 buffer read 事件。
- 测试结果
在测试 PostgreSQL 时,可以在终端中看到 SystemTap 脚本输出的结果,其中包括 buffer read 事件的详细信息。
注意:在使用 SystemTap 时需要 root 权限。
原文地址: https://www.cveoy.top/t/topic/oXgG 著作权归作者所有。请勿转载和采集!