PostgreSQL log AND trace AND debug 详解
背景 PostgreSQL在代码中放了大量的输出数据库运行状态的函数, 例如这段代码, 在参数文件postgresql.conf中开启了log_connections的情况下, 将输出数据库接收到连接请求时的客户端主机和端口信息. src/backend/postmaster/postmaster.c ...
背景 PostgreSQL在代码中放了大量的输出数据库运行状态的函数, 例如这段代码, 在参数文件postgresql.conf中开启了log_connections的情况下, 将输出数据库接收到连接请求时的客户端主机和端口信息. src/backend/postmaster/postmaster.c ...
背景 Nested Loop循环计算总成本时, 一般来说inner 节点循环多少次, 就要乘以多少次的inner 节点的total_cost. 例如这个例子 : EXPLAIN SELECT * FROM tenk1 t1, tenk2 t2 WHERE t1.unique1 < 10 AND ...
背景 bucardo提供的check_postgres脚本过于庞大, 我把其中一些比较常用的监控项摘取出来, 加上一些经验值做成了一个shell的nagios监控脚本, 包含了大部分的常用监控项. 1. 是否打开归档 2. 是否打开vacuum 3. 数据库年龄 4. 连接数 5. 提交和回滚的比例(问...
背景 再一次证明和开发人员沟通, 其乐无穷. 今天一位开发的同事给我一个SQL, 问我为什么只改了一个条件, 查询速度居然从毫秒就慢到几十秒了, 如下 : SELECT * ...
背景 Serializable 隔离级别 目标是模拟serializable的隔离级别事务的提交顺序转换为串行的执行顺序. 例如 : Start session a serializable Start session b serializable Session a SQL … Session...
背景 群里的一个问题, 用dd来测试一个块设备的写性能, 因为可能会被os cache误导. 所以建议同时使用stap来跟踪一下. 当然stap会带来一定的开销, 得到的实际结果会低于实际的IO水平. [root@db-172-16-3-150 io]# grep -r vfs.write.return ...
背景 最近在写一个客户的PostgreSQL数据库培训PPT, 其中有explain的讲解需求, 刚刚接触PostgreSQL的童鞋对PostgreSQL的explain输出中cost的部分可能会一头雾水, 看不懂cost的值和SQL实际运行时间有什么联系. 为了让大家能更加深刻的了解explain, 我打算对...
背景 我在上一篇文章中讨论了关于调整CPU亲和来降低systemtap带来的性能影响, 本文是一个扩展, 还是用到那个例子, 但是我增加了IO响应时间的柱状图输出, 从柱状图分析IO的一些”奇妙”的东西. 首先启动数据库, 亲和设置为1 pg93@db-172-16-3-150-> taskset -c...
背景 在使用systemtap监控进程或者内核的运行状况时, 我们会发现使用systemtap和不使用systemtap时, 某些操作的运行时间差别会比较大. 这是因为systemtap本身带来的开销导致的, 那么如何减少这部分开销呢? 可选的方法较多, 例如精简systemtap, 减少systemtap的触...
背景 本文的例子 可用于判断程序性能问题是否由于futex锁冲突引起的. This section describes how to identify contended user-space locks throughout the system within a specific time period....