Commit b7ce6de9 authored by Amit Kapila's avatar Amit Kapila

Allow autovacuum to log WAL usage statistics.

This commit allows autovacuum to log WAL usage statistics added by commit
df3b1814.

Author: Julien Rouhaud
Reviewed-by: Dilip Kumar and Amit Kapila
Discussion: https://postgr.es/m/CAB-hujrP8ZfUkvL5OYETipQwA=e3n7oqHFU=4ZLxWS_Cza3kQQ@mail.gmail.com
parent 8ef9451f
...@@ -410,6 +410,8 @@ heap_vacuum_rel(Relation onerel, VacuumParams *params, ...@@ -410,6 +410,8 @@ heap_vacuum_rel(Relation onerel, VacuumParams *params,
int nindexes; int nindexes;
PGRUsage ru0; PGRUsage ru0;
TimestampTz starttime = 0; TimestampTz starttime = 0;
WalUsage walusage_start = pgWalUsage;
WalUsage walusage = {0, 0, 0};
long secs; long secs;
int usecs; int usecs;
double read_rate, double read_rate,
...@@ -614,6 +616,9 @@ heap_vacuum_rel(Relation onerel, VacuumParams *params, ...@@ -614,6 +616,9 @@ heap_vacuum_rel(Relation onerel, VacuumParams *params,
TimestampDifference(starttime, endtime, &secs, &usecs); TimestampDifference(starttime, endtime, &secs, &usecs);
memset(&walusage, 0, sizeof(WalUsage));
WalUsageAccumDiff(&walusage, &pgWalUsage, &walusage_start);
read_rate = 0; read_rate = 0;
write_rate = 0; write_rate = 0;
if ((secs > 0) || (usecs > 0)) if ((secs > 0) || (usecs > 0))
...@@ -666,7 +671,13 @@ heap_vacuum_rel(Relation onerel, VacuumParams *params, ...@@ -666,7 +671,13 @@ heap_vacuum_rel(Relation onerel, VacuumParams *params,
(long long) VacuumPageDirty); (long long) VacuumPageDirty);
appendStringInfo(&buf, _("avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n"), appendStringInfo(&buf, _("avg read rate: %.3f MB/s, avg write rate: %.3f MB/s\n"),
read_rate, write_rate); 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, ereport(LOG,
(errmsg_internal("%s", buf.data))); (errmsg_internal("%s", buf.data)));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment