mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
Improve logging of auto-vacuum and auto-analyze
When logging auto-vacuum and auto-analyze activity, include the I/O timing if track_io_timing is enabled. Also, for auto-analyze, add the read rate and the dirty rate, similar to how that information has historically been logged for auto-vacuum. Stephen Frost and Jakub Wartak Reviewed-By: Heikki Linnakangas, Tomas Vondra Discussion: https://www.postgresql.org/message-id/VI1PR0701MB69603A433348EDCF783C6ECBF6EF0%40VI1PR0701MB6960.eurprd07.prod.outlook.com
This commit is contained in:
@ -441,6 +441,8 @@ heap_vacuum_rel(Relation onerel, VacuumParams *params,
|
||||
TransactionId new_frozen_xid;
|
||||
MultiXactId new_min_multi;
|
||||
ErrorContextCallback errcallback;
|
||||
PgStat_Counter startreadtime = 0;
|
||||
PgStat_Counter startwritetime = 0;
|
||||
|
||||
Assert(params != NULL);
|
||||
Assert(params->index_cleanup != VACOPT_TERNARY_DEFAULT);
|
||||
@ -455,6 +457,11 @@ heap_vacuum_rel(Relation onerel, VacuumParams *params,
|
||||
{
|
||||
pg_rusage_init(&ru0);
|
||||
starttime = GetCurrentTimestamp();
|
||||
if (track_io_timing)
|
||||
{
|
||||
startreadtime = pgStatBlockReadTime;
|
||||
startwritetime = pgStatBlockWriteTime;
|
||||
}
|
||||
}
|
||||
|
||||
if (params->options & VACOPT_VERBOSE)
|
||||
@ -675,6 +682,17 @@ 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);
|
||||
if (track_io_timing)
|
||||
{
|
||||
appendStringInfoString(&buf, _("I/O Timings:"));
|
||||
if (pgStatBlockReadTime - startreadtime > 0)
|
||||
appendStringInfo(&buf, _(" read=%.3f"),
|
||||
(double) (pgStatBlockReadTime - startreadtime) / 1000);
|
||||
if (pgStatBlockWriteTime - startwritetime > 0)
|
||||
appendStringInfo(&buf, _(" write=%.3f"),
|
||||
(double) (pgStatBlockWriteTime - startwritetime) / 1000);
|
||||
appendStringInfoChar(&buf, '\n');
|
||||
}
|
||||
appendStringInfo(&buf, _("system usage: %s\n"), pg_rusage_show(&ru0));
|
||||
appendStringInfo(&buf,
|
||||
_("WAL usage: %ld records, %ld full page images, %llu bytes"),
|
||||
|
Reference in New Issue
Block a user