]> granicus.if.org Git - postgresql/commitdiff
Add memory info to getrusage output
authorPeter Eisentraut <peter_e@gmx.net>
Fri, 1 Sep 2017 19:36:33 +0000 (15:36 -0400)
committerPeter Eisentraut <peter_e@gmx.net>
Fri, 1 Sep 2017 19:36:33 +0000 (15:36 -0400)
Add the maxrss field to the getrusage output (log_*_stats).  This was
previously omitted because of portability concerns, but we feel this
might not be a concern anymore.

based on patch by Justin Pryzby <pryzby@telsasoft.com>

src/backend/tcop/postgres.c

index b8d860ebdbf42ebc60cc19c8bffba48007ceeab5..8d3fecf6d6abb28d894f13a1a983f95a95edd5a9 100644 (file)
@@ -4421,11 +4421,8 @@ ShowUsage(const char *title)
        }
 
        /*
-        * the only stats we don't show here are for memory usage -- i can't
-        * figure out how to interpret the relevant fields in the rusage struct,
-        * and they change names across o/s platforms, anyway. if you can figure
-        * out what the entries mean, you can somehow extract resident set size,
-        * shared text size, and unshared data and stack sizes.
+        * The only stats we don't show here are ixrss, idrss, isrss.  It takes
+        * some work to interpret them, and most platforms don't fill them in.
         */
        initStringInfo(&str);
 
@@ -4445,6 +4442,16 @@ ShowUsage(const char *title)
                                         (long) sys.tv_sec,
                                         (long) sys.tv_usec);
 #if defined(HAVE_GETRUSAGE)
+       appendStringInfo(&str,
+                                        "!\t%ld kB max resident size\n",
+#if defined(__darwin__)
+                                        /* in bytes on macOS */
+                                        r.ru_maxrss/1024
+#else
+                                        /* in kilobytes on most other platforms */
+                                        r.ru_maxrss
+#endif
+               );
        appendStringInfo(&str,
                                         "!\t%ld/%ld [%ld/%ld] filesystem blocks in/out\n",
                                         r.ru_inblock - Save_r.ru_inblock,