pgsql: Add connection establishment duration logging - Mailing list pgsql-committers

From Melanie Plageman
Subject pgsql: Add connection establishment duration logging
Date
Msg-id E1tsO99-00277f-1a@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Add connection establishment duration logging

Add log_connections option 'setup_durations' which logs durations of
several key parts of connection establishment and backend setup.

For an incoming connection, starting from when the postmaster gets a
socket from accept() and ending when the forked child backend is first
ready for query, there are multiple steps that could each take longer
than expected due to external factors. This logging provides visibility
into authentication and fork duration as well as the end-to-end
connection establishment and backend initialization time.

To make this portable, the timings captured in the postmaster (socket
creation time, fork initiation time) are passed through the
BackendStartupData.

Author: Melanie Plageman <melanieplageman@gmail.com>
Reviewed-by: Bertrand Drouvot <bertranddrouvot.pg@gmail.com>
Reviewed-by: Fujii Masao <masao.fujii@oss.nttdata.com>
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Reviewed-by: Jacob Champion <jacob.champion@enterprisedb.com>
Reviewed-by: Jelte Fennema-Nio <postgres@jeltef.nl>
Reviewed-by: Guillaume Lelarge <guillaume.lelarge@dalibo.com>
Discussion: https://postgr.es/m/flat/CAAKRu_b_smAHK0ZjrnL5GRxnAVWujEXQWpLXYzGbmpcZd3nLYw%40mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/18cd15e706ac1f2d6b1c49847a82774ca143352f

Modified Files
--------------
doc/src/sgml/config.sgml                      | 13 ++++++
src/backend/postmaster/launch_backend.c       | 31 +++++++++++++++
src/backend/postmaster/postmaster.c           |  6 +++
src/backend/tcop/backend_startup.c            | 11 ++++++
src/backend/tcop/postgres.c                   | 33 ++++++++++++++++
src/backend/utils/init/postinit.c             |  6 +++
src/backend/utils/misc/postgresql.conf.sample |  2 +-
src/include/miscadmin.h                       |  8 ++++
src/include/tcop/backend_startup.h            | 57 +++++++++++++++++++++++++--
src/include/utils/timestamp.h                 |  9 +++++
src/test/authentication/t/001_password.pl     | 18 ++++++++-
src/tools/pgindent/typedefs.list              |  1 +
12 files changed, 189 insertions(+), 6 deletions(-)


pgsql-committers by date:

Previous
From: Michael Paquier
Date:
Subject: pgsql: Remove initialization from PendingBackendStats
Next
From: Tom Lane
Date:
Subject: pgsql: Build whole-row Vars the same way during parsing and planning.