1. 事务监控
通过设置事务超时预警,可以监控自动回滚的事务并定位其中的语句问题,并且也可以监控执行时间过长的语句。
statement_timeout
参数说明:在事务提交时开始计时,当事务执行时间超过 statement_timeout 时,打印超时预警信息。
取值范围:整型,最小值为0
- 默认值:0
statement_force_abort_timeout
参数说明:用于监控事务,当事务执行时间超过 statement_force_abort_timeout,将会回滚事务,检查周期为 statement_timeout。
- 当 statement_force_abort_timeout 小于 statement_timeout 时,取值等于 statement_timeout。
- 当 statement_force_abort_timeout 大于等于 n 倍的 statement_force_abort_timeout 小于 n+1倍的 statement_timeout 时,将会在 n+1倍的 statement_timeout 时触发事务回滚。
取值范围:整型,最小值为0
- 默认值:0
2. 自动清理
系统自动清理进程(autovacuum)自动执行 VACUUM 和 ANALYZE 命令,回收被标识为删除状态的记录空间,并更新表的统计数据。
autovacuum
参数说明:控制数据库自动清理进程(autovacuum)的启动。自动清理进程运行的前提是将track_counts设置为on。
取值范围:布尔型
- 默认值:on
log_autovacuum_min_duration
参数说明:当自动清理的执行时间大于或者等于某个特定的值时,向服务器日志中记录自动清理执行的每一步操作。设置此选项有助于追踪自动清理的行为。
举例如下:
- 将 log_autovacuum_min_duration 设置为250ms ,记录所有运行大于或者等于250ms 的自动清理命令的相关信息。
- 取值范围:整型(毫秒),最小值为-1
说明:
- 设置为 0 ,表示所有的自动清理操作都记录到日志中。
- 设置为 -1 ,表示所有的自动清理操作都不记录到日志中。
- 当参数设置为非 -1 时,当由于锁冲突的存在导致一个自动清理操作被跳过,记录一条消息。
- 默认值:-1
autovacuum_max_workers
参数说明:设置能同时运行的自动清理线程的最大数量。
取值范围:整型,最小值为1
- 默认值:3
autovacuum_naptime
参数说明:设置两次自动清理操作的时间间隔。
取值范围:整型,最小值为1
- 默认值:1 min
autovacuum_vacuum_threshold
参数说明:设置触发 VACUUM 的阈值。当表上被删除或更新的记录数超过设定的阈值时才会对这个表执行 VACUUM 操作。
取值范围:整型,最小值为0
- 默认值:50
autovacuum_analyze_threshold
参数说明:设置触发 ANALYZE 操作的阈值。当表上被删除、插入或更新的记录数超过设定的阈值时才会对这个表执行 ANALYZE 操作。
取值范围:整型,最小值为0
- 默认值:50
autovacuum_vacuum_scale_factor
参数说明:设置触发一个 VACUUM 时增加到 autovacuum_vacuum_threshold 的表大小的缩放系数。
取值范围:浮点型,0.0~100.0
- 默认值:0.2
autovacuum_analyze_scale_factor
参数说明:设置触发一个 ANALYZE 时增加到 autovacuum_analyze_threshold 的表大小的缩放系数。
取值范围:浮点型,0.0~100.0
- 默认值:0.1
autovacuum_freeze_max_age
参数说明:设置事务内的最大时间,使得表的 pg_class.relfrozenxid 字段在 vacuum 操作执行之前被写入。
- VACUUM 也可以删除 pg_clog/ 子目录中的旧文件。
- 即使自动清理进程被禁止,系统也会调用自动清理进程来防止循环重复。
取值范围:整型,1亿~20亿
- 默认值:200 000 000
autovacuum_vacuum_cost_delay
参数说明:设置在自动 VACUUM 操作里使用的开销延迟数值。
取值范围:整型,-1~100
说明:
- 设置为-1,表示使用常规的 vacuum_cost_delay。
- 默认值:20 ms
autovacuum_vacuum_cost_limit
参数说明:设置在自动 VACUUM 操作里使用的开销限制数值。
取值范围:整型,-1~10000
- 默认值:-1,表示使用常规的 vacuum_cost_limit。