One day, you will need to monitor your database to analyse the performences, the number of queries, … Some tools exist !
pg_top
This is the cousin of the simple commant top, but applied to psql. It will show you the active connection.
See the process list
This is the default screen. To start pg_top:
pg_top [-d ] [-U ] [-W]
Where ‘-d’ specifies the database to connect to, ‘-U’ specifies the database user, and ‘-W’ will prompt for the password if a password is required to connect.
Current query
Use the ‘Q’ key and enter a PID once pg_top is started.
Query plan
Use the ‘E’ key and enter a PID once pg_top is started. The ‘E’ commands runs ‘EXPLAIN’ and ‘EXPLAIN ANALYZE’ can be used by using the ‘A’ key followed by a PID.
Lock Aquired
Use the ‘L’ key and enter a PID once pg_top is started.
Table Statistics
Use the ‘R’ key to display user table statistics. Use ‘t’ to toggle between displaying cumulative and differential statistics.
Index statistics
Use the ‘X’ key to display user index statistics. Use ‘t’ to toggle between displaying cumulative and differential statistics.
pg_activity
NAME
pg_activity - Realtime PostgreSQL database server monitoring tool
SYNOPSIS
pg_activity [-UphdC]
DESCRIPTION
pg_activity is a htop like application for PostgreSQL server activity monitoring.
COMMAND-LINE OPTIONS
-U USERNAME, --username=USERNAME Database user name (default: $USER). -p PORT, --port=PORT Database server port (default: "5432"). -h HOSTNAME, --host=HOSTNAME Database server host or socket directory (default: "localhost"). -d DBNAME, --dbname=DBNAME Database name to connect to (default: "postgres"). -C, --no-color Disable color usage. --help Show this help message and exit. --version Show program's version number and exit.
ENVIRONMENT VARIABLES
PGPASSWORD PostgreSQL password PGPASSFILE Path to .pgpass file (default is ~/.pgpass)
DISPLAY OPTIONS
--no-database Disable DATABASE. --no-client Disable CLIENT. --no-cpu Disable CPU%. --no-mem Disable MEM%. --no-read Disable READ/s. --no-write Disable WRITE/s. --no-time Disable TIME+. --no-wait Disable W.
INTERACTIVE COMMANDS
C Activate/deactivate colors. r Sort by READ/s, descending. w Sort by WRITE/s, descending. c Sort by CPU%, descending. m Sort by MEM%, descending. t Sort by TIME+, descending. Space Pause on/off. v Change queries display mode: full, truncated, indented UP / DOWN Scroll process list. q Quit + Increase refresh time. Maximum value : 3s - Decrease refesh time. Minimum Value : 1s F1/1 Running queries monitoring. F2/2 Waiting queries monitoring. F3/3 Blocking queries monitoring. h Help page. R Refresh.
NAVIGATION MODE
UP Move up the cursor DOWN Move down the cursor k Cancel the backend Space Back to activity q Quit
EXAMPLES
PGPASSWORD='mypassword' pg_activity -U pgadmin -h 127.0.0.1 --no-client -C pg_activity -h /tmp
@see : http://manpages.ubuntu.com/manpages/saucy/man1/pg_activity.1.html
You can also query the pg_stat_activity table of your database.
- http://www.postgresql.org/docs/9.2/static/monitoring-stats.html
- http://stackoverflow.com/questions/17654033/how-to-use-pg-stat-activity
- http://www.question-defense.com/2008/11/12/postgres-table-pg_stat_activity-table-fields-explained