Postgresql pg_stat_bgwriter表中缓冲区检查点的单位是什么?
我正在使用postgreSQL-9.1.6并尝试为postgreSQL server构建监控应用程序 我计划从pg_stat_*信息表中选择物理和逻辑I/O stat 根据PG_STAT_数据库中字段的单位,它是块,表示大小为8KB 我可以用blks_READ*8KB计算出物理读取的大小。 但是,PG_STAT_BGWRITER中没有关于统计单位的评论 如何通过缓冲区\检查点计算物理写入的大小Postgresql pg_stat_bgwriter表中缓冲区检查点的单位是什么?,postgresql,Postgresql,我正在使用postgreSQL-9.1.6并尝试为postgreSQL server构建监控应用程序 我计划从pg_stat_*信息表中选择物理和逻辑I/O stat 根据PG_STAT_数据库中字段的单位,它是块,表示大小为8KB 我可以用blks_READ*8KB计算出物理读取的大小。 但是,PG_STAT_BGWRITER中没有关于统计单位的评论 如何通过缓冲区\检查点计算物理写入的大小 任何建议都将不胜感激。摘自Greg Smith的《事实性能手册Postgresql 9.0高性能》,在
任何建议都将不胜感激。摘自Greg Smith的《事实性能手册Postgresql 9.0高性能》,在“数据库活动和统计”一章中: 根据活动而不是时间流逝请求检查点的时间百分比是多少? 平均检查点写入多少数据? 分别有多少百分比的数据是从检查点和后端写入的?
postgres=# select * from pg_stat_database where datname='postgres';
-[ RECORD 3 ]-+------------------------------
datid | 12780
datname | postgres
numbackends | 2
xact_commit | 974
xact_rollback | 57
blks_read | 210769
blks_hit | 18664177
tup_returned | 16074339
tup_fetched | 35121
tup_inserted | 18182015
tup_updated | 572
tup_deleted | 3075
conflicts | 0
postgres=# select * from pg_stat_bgwriter;
-[ RECORD 1 ]---------+------------------------------
checkpoints_timed | 276
checkpoints_req | 8
buffers_checkpoint | 94956
buffers_clean | 0
maxwritten_clean | 0
buffers_backend | 82618
buffers_backend_fsync | 0
buffers_alloc | 174760
stats_reset | 2013-07-15 22:27:05.503125+09
SELECT
(100 * checkpoints_req) /
(checkpoints_timed + checkpoints_req) AS checkpoints_req_pct,
pg_size_pretty(buffers_checkpoint * block_size /
(checkpoints_timed + checkpoints_req)) AS avg_checkpoint_write,
pg_size_pretty(block_size *
(buffers_checkpoint + buffers_clean + buffers_backend)) AS total_written,
100 * buffers_checkpoint /
(buffers_checkpoint + buffers_clean + buffers_backend) AS checkpoint_write_pct,
100 * buffers_backend /
(buffers_checkpoint + buffers_clean + buffers_backend) AS backend_write_pct,
*
FROM pg_stat_bgwriter,
(SELECT cast(current_setting('block_size') AS integer) AS block_size) bs;