Chapter 28. Monitoring Database Activity

Table of Contents

28.1. Standard Unix Tools
28.2. The Cumulative Statistics System
28.2.1. Statistics Collection Configuration
28.2.2. Viewing Statistics
28.2.3. pg_stat_activity
28.2.4. pg_stat_replication
28.2.5. pg_stat_replication_slots
28.2.6. pg_stat_wal_receiver
28.2.7. pg_stat_recovery_prefetch
28.2.8. pg_stat_subscription
28.2.9. pg_stat_subscription_stats
28.2.10. pg_stat_ssl
28.2.11. pg_stat_gssapi
28.2.12. pg_stat_archiver
28.2.13. pg_stat_io
28.2.14. pg_stat_bgwriter
28.2.15. pg_stat_wal
28.2.16. pg_stat_database
28.2.17. pg_stat_database_conflicts
28.2.18. pg_stat_all_tables
28.2.19. pg_stat_all_indexes
28.2.20. pg_statio_all_tables
28.2.21. pg_statio_all_indexes
28.2.22. pg_statio_all_sequences
28.2.23. pg_stat_user_functions
28.2.24. pg_stat_slru
28.2.25. Statistics Functions
28.3. Viewing Locks
28.4. Progress Reporting
28.4.1. ANALYZE Progress Reporting
28.4.2. CLUSTER Progress Reporting
28.4.3. COPY Progress Reporting
28.4.4. CREATE INDEX Progress Reporting
28.4.5. VACUUM Progress Reporting
28.4.6. Base Backup Progress Reporting
28.5. Dynamic Tracing
28.5.1. Compiling for Dynamic Tracing
28.5.2. Built-in Probes
28.5.3. Using Probes
28.5.4. Defining New Probes

A database administrator frequently wonders, What is the system doing right now? This chapter discusses how to find that out.

Several tools are available for monitoring database activity and analyzing performance. Most of this chapter is devoted to describing PostgreSQL's cumulative statistics system, but one should not neglect regular Unix monitoring programs such as ps, top, iostat, and vmstat. Also, once one has identified a poorly-performing query, further investigation might be needed using PostgreSQL's EXPLAIN command. Section 14.1 discusses EXPLAIN and other methods for understanding the behavior of an individual query.