diff options
Diffstat (limited to 'src/backend')
-rw-r--r-- | src/backend/access/transam/slru.c | 7 | ||||
-rw-r--r-- | src/backend/access/transam/xlog.c | 26 | ||||
-rw-r--r-- | src/backend/catalog/system_views.sql | 1 | ||||
-rw-r--r-- | src/backend/utils/activity/pgstat_checkpointer.c | 2 | ||||
-rw-r--r-- | src/backend/utils/adt/pgstatfuncs.c | 6 |
5 files changed, 28 insertions, 14 deletions
diff --git a/src/backend/access/transam/slru.c b/src/backend/access/transam/slru.c index e7f73bf4275..889eff1815b 100644 --- a/src/backend/access/transam/slru.c +++ b/src/backend/access/transam/slru.c @@ -716,9 +716,12 @@ SlruInternalWritePage(SlruCtl ctl, int slotno, SlruWriteAll fdata) if (!ok) SlruReportIOError(ctl, pageno, InvalidTransactionId); - /* If part of a checkpoint, count this as a buffer written. */ + /* If part of a checkpoint, count this as a SLRU buffer written. */ if (fdata) - CheckpointStats.ckpt_bufs_written++; + { + CheckpointStats.ckpt_slru_written++; + PendingCheckpointerStats.slru_written++; + } } /* diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 64304d77d37..9102c8d772e 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -6727,14 +6727,15 @@ LogCheckpointEnd(bool restartpoint) */ if (restartpoint) ereport(LOG, - (errmsg("restartpoint complete: wrote %d buffers (%.1f%%); " - "%d WAL file(s) added, %d removed, %d recycled; " - "write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; " - "sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; " - "distance=%d kB, estimate=%d kB; " - "lsn=%X/%X, redo lsn=%X/%X", + (errmsg("restartpoint complete: wrote %d buffers (%.1f%%), " + "wrote %d SLRU buffers; %d WAL file(s) added, " + "%d removed, %d recycled; write=%ld.%03d s, " + "sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, " + "longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, " + "estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X", CheckpointStats.ckpt_bufs_written, (double) CheckpointStats.ckpt_bufs_written * 100 / NBuffers, + CheckpointStats.ckpt_slru_written, CheckpointStats.ckpt_segs_added, CheckpointStats.ckpt_segs_removed, CheckpointStats.ckpt_segs_recycled, @@ -6750,14 +6751,15 @@ LogCheckpointEnd(bool restartpoint) LSN_FORMAT_ARGS(ControlFile->checkPointCopy.redo)))); else ereport(LOG, - (errmsg("checkpoint complete: wrote %d buffers (%.1f%%); " - "%d WAL file(s) added, %d removed, %d recycled; " - "write=%ld.%03d s, sync=%ld.%03d s, total=%ld.%03d s; " - "sync files=%d, longest=%ld.%03d s, average=%ld.%03d s; " - "distance=%d kB, estimate=%d kB; " - "lsn=%X/%X, redo lsn=%X/%X", + (errmsg("checkpoint complete: wrote %d buffers (%.1f%%), " + "wrote %d SLRU buffers; %d WAL file(s) added, " + "%d removed, %d recycled; write=%ld.%03d s, " + "sync=%ld.%03d s, total=%ld.%03d s; sync files=%d, " + "longest=%ld.%03d s, average=%ld.%03d s; distance=%d kB, " + "estimate=%d kB; lsn=%X/%X, redo lsn=%X/%X", CheckpointStats.ckpt_bufs_written, (double) CheckpointStats.ckpt_bufs_written * 100 / NBuffers, + CheckpointStats.ckpt_slru_written, CheckpointStats.ckpt_segs_added, CheckpointStats.ckpt_segs_removed, CheckpointStats.ckpt_segs_recycled, diff --git a/src/backend/catalog/system_views.sql b/src/backend/catalog/system_views.sql index 49109dbdc86..3456b821bc5 100644 --- a/src/backend/catalog/system_views.sql +++ b/src/backend/catalog/system_views.sql @@ -1145,6 +1145,7 @@ CREATE VIEW pg_stat_checkpointer AS pg_stat_get_checkpointer_write_time() AS write_time, pg_stat_get_checkpointer_sync_time() AS sync_time, pg_stat_get_checkpointer_buffers_written() AS buffers_written, + pg_stat_get_checkpointer_slru_written() AS slru_written, pg_stat_get_checkpointer_stat_reset_time() AS stats_reset; CREATE VIEW pg_stat_io AS diff --git a/src/backend/utils/activity/pgstat_checkpointer.c b/src/backend/utils/activity/pgstat_checkpointer.c index 4a0a2d1493a..5a3fb4a9e09 100644 --- a/src/backend/utils/activity/pgstat_checkpointer.c +++ b/src/backend/utils/activity/pgstat_checkpointer.c @@ -56,6 +56,7 @@ pgstat_report_checkpointer(void) CHECKPOINTER_ACC(write_time); CHECKPOINTER_ACC(sync_time); CHECKPOINTER_ACC(buffers_written); + CHECKPOINTER_ACC(slru_written); #undef CHECKPOINTER_ACC pgstat_end_changecount_write(&stats_shmem->changecount); @@ -135,5 +136,6 @@ pgstat_checkpointer_snapshot_cb(void) CHECKPOINTER_COMP(write_time); CHECKPOINTER_COMP(sync_time); CHECKPOINTER_COMP(buffers_written); + CHECKPOINTER_COMP(slru_written); #undef CHECKPOINTER_COMP } diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c index 17b0fc02ef0..f7b50e0b5af 100644 --- a/src/backend/utils/adt/pgstatfuncs.c +++ b/src/backend/utils/adt/pgstatfuncs.c @@ -1222,6 +1222,12 @@ pg_stat_get_checkpointer_buffers_written(PG_FUNCTION_ARGS) } Datum +pg_stat_get_checkpointer_slru_written(PG_FUNCTION_ARGS) +{ + PG_RETURN_INT64(pgstat_fetch_stat_checkpointer()->slru_written); +} + +Datum pg_stat_get_bgwriter_buf_written_clean(PG_FUNCTION_ARGS) { PG_RETURN_INT64(pgstat_fetch_stat_bgwriter()->buf_written_clean); |