PostgreSQL Systemtap example : Customize probe connect and disconnect
背景 本文要讲一下PostgreSQL的定制化探针, 系统自带的探针以后再讲. 源码下过来之后, 在编译前, 我们能看到数据库探针的定义文件在src/backend/utils/probes.d中. probes.h文件是编译时生成的, 所以要添加探针的话, 只需要修改probes.d文件, 本文添加...
背景 本文要讲一下PostgreSQL的定制化探针, 系统自带的探针以后再讲. 源码下过来之后, 在编译前, 我们能看到数据库探针的定义文件在src/backend/utils/probes.d中. probes.h文件是编译时生成的, 所以要添加探针的话, 只需要修改probes.d文件, 本文添加...
背景 本文是一个systemtap的使用例子, 从这里例子观察到的一个现象. autovacuum_naptime 这个参数和数据库个数的关系, 以及如何影响autovacuum进程唤醒频率的. 数据库进程如下 : [root@db-172-16-3-39 ~]# ps -ewf|grep post...
背景 本文要讲的是Systemtap中的格式话输出函数 : print, println, printf, printd, printdln, sprint, sprintf. 9.1 print print函数可用于打印输出任何类型, General syntax: print ...
背景 统计类型在以前写的几篇BLOG进行过述过. 可参考 : http://blog.163.com/digoal@126/blog/static/16387704020138310438924/ http://blog.163.com/digoal@126/blog/static/163877040201...
背景 数组变量在stap启动时以哈希表形式初始化, 在handler中使用数组时不需要再动态创建. Associative arrays are implemented as hash tables with a maximum size set at startup. Associative a...
背景 本文要讲的是systemtap中的语句类型, 例如在循环中使用的break, continue, 在handler中使用的next, 函数中使用的return, 等. Statement types Statements enable procedural control flow within f...
背景 上一篇讲了预处理阶段的条件预编译, 本文要讲的也是stap预处理阶段的事务: 宏定义. 宏定义在stap中算是个实验特性, 前面我们提到的规则表达式匹配操作也是实验特性. 另外要注意宏定义的顺序, 它在条件预编译前完成. 所以如果宏定义出错的话不会进行后面的条件预编译解析. 宏定义类似C里面的...
背景 One of the steps of parsing is a simple preprocessing stage. The preprocessor supports conditionals with a general form similar to the ternary operator...
背景 1. 标识 变量名, 函数名的命名规则 : 由数字, 字母, 下划线, $ 符号组成. 不能以数字开头. $符号开头的变量名用来表示被跟踪的源码中的变量. 其他开头的变量名用来表示stap脚本中的变量名或函数名. 2. 数据类型 The SystemTap language inclu...
背景 The probe points begin and end are defined by the translator to refer to the time of session startup and shutdown. There are no target variables availabl...