Connections and activity
pg_stat_activity
provides a way to get a snapshot of what every client on the server is currently doing. Because it includes a process ID, on UNIX-like systems pg_stat_activity
is also useful to line up with information collected at the operating system level, by utilities such as top
or ps
.
The simplest thing to do with this view is to count how many client backends are currently active:
pgbench=# SELECT count(*) FROM pg_stat_activity WHERE NOT procpid=pg_backend_pid(); count ------- 4
As the query itself will normally appear in the results, that's filtered out by looking up its process ID and excluding it. This is a good practice to get into queries against this view. This total gives you an idea how close you are to reaching the server's max_connections
at any time, and monitoring a high-water mark for its value is a good practice to let you know when you're likely to exceed it.
You can use pg_stat_activity
to see how long a backend...