Systemtap EXP: PostgreSQL IN-BUILD mark Class 7 - others(statement,xlog,sort)
背景 本文介绍一下剩余的几个PostgreSQL探针: 1. 语句状态改变探针, 在pg_stat_activity.status值改变时触发, 值为字符串, 可以从中获取到SQL语句. 2. xlog探针, 在插入WAL record时触发. 可以获取到被插入record的rmid, info fla...
背景 本文介绍一下剩余的几个PostgreSQL探针: 1. 语句状态改变探针, 在pg_stat_activity.status值改变时触发, 值为字符串, 可以从中获取到SQL语句. 2. xlog探针, 在插入WAL record时触发. 可以获取到被插入record的rmid, info fla...
背景 本文要讲的是PostgreSQL内建的锁类别的探针,以及使用stap跟踪的方法. 正文 PostgreSQL锁类别探针分为轻量锁, 重量锁, 以及死锁的探针. 轻量锁探针 : probe lwlock__acquire(LWLockId, LWLockMode); 当得到轻量锁时触发,...
背景 本文介绍relation 读写相关的探针: 包含读relation以及写relation(例如index, table,tmp table或者他们的fsm, vm文件等). 从这些探针中我们可以得到一下信息 : 1. 读relation开始: forkNum, blocknum, tbs_oid,...
背景 本文开始讲PostgreSQL内建探针的另一个分类, buffer. buffer分类探针中包含: 1. buffer读开始, 结束; 2. shared buffer flush开始, 结束(结束点指将数据交付到内核, 并非磁盘, 所以如果要计算flush时间的话, 这个探针不合适)(在F...
背景 本文将讲一下PostgreSQL内建的checkpoint相关探针. 包含: checkpoint开始, 完成; checkpoin的clog部分开始, 完成; checkpoin的subtransaction部分开始, 完成; checkpoin的multixact部分开始,...
背景 本文要讲的是PostgreSQL内建探针的第二个分类 : query. 相比第一个分类transaction, query更加精细. 例如函数调用, 可以精细到函数内部的每个SQL, 以及嵌套函数的最底层的SQL等. 包含SQL查询开始, 结束, 语义解析开始, 结束, 重写开始, 结束, plan开始...
背景 本文开始将以PostgreSQL内建的探针为例, 探讨一下围绕这些探针可以实现哪些想要的功能. 使用systemtap时, 需要把postgresql mark name中的-换成两个下划线. 第一个分类是事务相关探针 : Name Paramet...
背景 前面几篇blog介绍了使用systemtap统计PostgreSQL单挑SQL以及整个会话的io操作. 本文将要介绍一下对数据库单条SQL的网络传输包, 传输字节数的统计. 以及整个会话的统计. 需要用到的探针如下 : tapset/tcp.stp /** * probe tcp.r...
背景 执行一个SQL需要多少条单步指令或指令块? 这个问题可以通过Instruction probes来得到. 参考以前写的一篇blog : http://blog.163.com/digoal@126/blog/static/163877040201383042846295/ 同时也测试一下使用普通全局...
背景 本例为上一篇blog的扩展, 可输出到块设备, 以及区分os cache的io请求操作. 相当精细. stp文件如下 : global io_stat1%[120000] // 非cache读写字节数(单SQL) global io_stat11%[120000] // 非cache读写耗...