From 4a78d3a9448625ce817f5ae683c475ee6f0294e2 Mon Sep 17 00:00:00 2001 From: Nitin Jadhav Date: Wed, 21 Dec 2022 11:03:57 +0000 Subject: [PATCH 2/2] Separate main buffer and SLRU buffer count from checkpoint complete log message The buffers written information logged in checkpoint complete log message includes main buffer count as well as SLRU buffer count. This patch separates these two information. --- src/backend/access/transam/slru.c | 2 +- src/backend/access/transam/xlog.c | 28 ++++++++++++++++------------ src/include/access/xlog.h | 1 + 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/backend/access/transam/slru.c b/src/backend/access/transam/slru.c index 3379e20f30..714842cc1c 100644 --- a/src/backend/access/transam/slru.c +++ b/src/backend/access/transam/slru.c @@ -605,7 +605,7 @@ SlruInternalWritePage(SlruCtl ctl, int slotno, SlruWriteAll fdata) /* If part of a checkpoint, count this as a buffer written. */ if (fdata) { - CheckpointStats.ckpt_bufs_written++; + CheckpointStats.ckpt_slru_written++; PendingCheckpointerStats.slru_written_checkpoints++; } } diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c index 91473b00d9..0f13b19ade 100644 --- a/src/backend/access/transam/xlog.c +++ b/src/backend/access/transam/xlog.c @@ -6280,14 +6280,16 @@ 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 (%.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", CheckpointStats.ckpt_bufs_written, (double) CheckpointStats.ckpt_bufs_written * 100 / NBuffers, + CheckpointStats.ckpt_slru_written, + (double) CheckpointStats.ckpt_slru_written * 100 / NBuffers, CheckpointStats.ckpt_segs_added, CheckpointStats.ckpt_segs_removed, CheckpointStats.ckpt_segs_recycled, @@ -6303,14 +6305,16 @@ 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 (%.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", CheckpointStats.ckpt_bufs_written, (double) CheckpointStats.ckpt_bufs_written * 100 / NBuffers, + CheckpointStats.ckpt_slru_written, + (double) CheckpointStats.ckpt_slru_written * 100 / NBuffers, CheckpointStats.ckpt_segs_added, CheckpointStats.ckpt_segs_removed, CheckpointStats.ckpt_segs_recycled, diff --git a/src/include/access/xlog.h b/src/include/access/xlog.h index 1fbd48fbda..9b6d7cfe57 100644 --- a/src/include/access/xlog.h +++ b/src/include/access/xlog.h @@ -162,6 +162,7 @@ typedef struct CheckpointStatsData TimestampTz ckpt_end_t; /* end of checkpoint */ int ckpt_bufs_written; /* # of buffers written */ + int ckpt_slru_written; /* # of SLRU buffers written */ int ckpt_segs_added; /* # of new xlog segments created */ int ckpt_segs_removed; /* # of xlog segments deleted */ -- 2.25.1