Allow autovacuum to log WAL usage statistics.
authorAmit Kapila <akapila@postgresql.org>
Mon, 6 Apr 2020 10:54:51 +0000 (16:24 +0530)
committerAmit Kapila <akapila@postgresql.org>
Mon, 6 Apr 2020 10:54:51 +0000 (16:24 +0530)
This commit allows autovacuum to log WAL usage statistics added by commit
df3b181499.

Author: Julien Rouhaud
Reviewed-by: Dilip Kumar and Amit Kapila
Discussion: https://postgr.es/m/CAB-hujrP8ZfUkvL5OYETipQwA=e3n7oqHFU=4ZLxWS_Cza3kQQ@mail.gmail.com

src/backend/access/heap/vacuumlazy.c

index 3ca7f5d136428787e12c20a94296631bc7b84d85..f3382d37a406e10cc5a0e096f66b8480ed96539e 100644 (file)
@@ -410,6 +410,8 @@ heap_vacuum_rel(Relation onerel, VacuumParams *params,
        int                     nindexes;
        PGRUsage        ru0;
        TimestampTz starttime = 0;
+       WalUsage        walusage_start = pgWalUsage;
+       WalUsage        walusage = {0, 0, 0};
        long            secs;
        int                     usecs;
        double          read_rate,
@@ -614,6 +616,9 @@ heap_vacuum_rel(Relation onerel, VacuumParams *params,
 
                        TimestampDifference(starttime, endtime, &secs, &usecs);
 
+                       memset(&walusage, 0, sizeof(WalUsage));
+                       WalUsageAccumDiff(&walusage, &pgWalUsage, &walusage_start);
+
                        read_rate = 0;
                        write_rate = 0;
                        if ((secs > 0) || (usecs > 0))
@@ -666,7 +671,13 @@ heap_vacuum_rel(Relation onerel, VacuumParams *params,
                                                         (long long) VacuumPageDirty);
                        appendStringInfo(&buf, _("avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n"),
                                                         read_rate, write_rate);
-                       appendStringInfo(&buf, _("system usage: %s"), pg_rusage_show(&ru0));
+                       appendStringInfo(&buf, _("system usage: %s\n"), pg_rusage_show(&ru0));
+                       appendStringInfo(&buf,
+                                                        _("WAL usage: %ld records, %ld full page writes, "
+                                                          UINT64_FORMAT " bytes"),
+                                                        walusage.wal_records,
+                                                        walusage.wal_num_fpw,
+                                                        walusage.wal_bytes);
 
                        ereport(LOG,
                                        (errmsg_internal("%s", buf.data)));