Report resource usage at the end of recovery
authorDavid Rowley <drowley@postgresql.org>
Tue, 15 Sep 2020 23:25:46 +0000 (11:25 +1200)
committerDavid Rowley <drowley@postgresql.org>
Tue, 15 Sep 2020 23:25:46 +0000 (11:25 +1200)
Reporting this has been rather useful in some recent recovery speedup
work.  It also seems like something that will be useful to the average DBA
too.

Author: David Rowley
Reviewed-by: Thomas Munro
Discussion: https://postgr.es/m/CAApHDvqYVORiZxq2xPvP6_ndmmsTkvr6jSYv4UTNaFa5i1kd%3DQ%40mail.gmail.com

src/backend/access/transam/xlog.c

index a38371a64f96cedbcbf15d6b7709f59c11ba668b..61754312e269088c84138cc04f9ffc9cac55fc30 100644 (file)
@@ -76,6 +76,7 @@
 #include "utils/memutils.h"
 #include "utils/ps_status.h"
 #include "utils/relmapper.h"
+#include "utils/pg_rusage.h"
 #include "utils/snapmgr.h"
 #include "utils/timestamp.h"
 
@@ -7169,6 +7170,9 @@ StartupXLOG(void)
                {
                        ErrorContextCallback errcallback;
                        TimestampTz xtime;
+                       PGRUsage        ru0;
+
+                       pg_rusage_init(&ru0);
 
                        InRedo = true;
 
@@ -7435,8 +7439,9 @@ StartupXLOG(void)
                        }
 
                        ereport(LOG,
-                                       (errmsg("redo done at %X/%X",
-                                                       (uint32) (ReadRecPtr >> 32), (uint32) ReadRecPtr)));
+                                       (errmsg("redo done at %X/%X system usage: %s",
+                                                       (uint32) (ReadRecPtr >> 32), (uint32) ReadRecPtr,
+                                                       pg_rusage_show(&ru0))));
                        xtime = GetLatestXTime();
                        if (xtime)
                                ereport(LOG,