postgresql.backends
Active backendsDimensions:None
Interface Metrics (4)
Dimensions:None
Sources
Technical Annotations (60)
Configuration Parameters (9)
pool_moderecommended: transactiondefault_pool_sizerecommended: 20max_client_connrecommended: 1000query_timeoutrecommended: 30max_connectionsrecommended: 200 (or 100 with pooler)superuser_reserved_connectionsrecommended: 3portrecommended: 5432autovacuum_max_workersrecommended: 3autovacuum_naptimerecommended: 1minError Signatures (7)
LWLock:lock_managerlog patternLWLock:LockManagerlog patternToo Many Connectionserror codeFATAL: sorry, too many clients alreadylog patterncould not connect to server: No such file or directorylog patternIs the server running locally and accepting connectionslog patternFATAL: remaining connection slots are reserved for non-replication superuser connectionslog patternCLI Commands (20)
pgbench -c 100 -j 10 -n -f transaction.sql -T 900diagnosticSELECT count(*) as total_connections, count(*) filter (where state = 'active') as active, count(*) filter (where state = 'idle') as idle, count(*) filter (where state = 'idle in transaction') as idle_in_transaction FROM pg_stat_activity;diagnosticSELECT count(*) FROM pg_stat_activity;diagnosticSELECT setting FROM pg_settings WHERE name = 'max_connections';diagnosticSELECT * FROM pg_stat_activitydiagnosticsudo service postgresql-12 statusdiagnosticsudo service postgresql-12 status | grep portdiagnosticSELECT count(*), state FROM pg_stat_activity GROUP BY state;diagnosticSELECT pid, usename, application_name, state, query_start, state_change FROM pg_stat_activity WHERE state = 'idle';diagnosticSELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE state = 'idle' AND state_change < NOW() - INTERVAL '1 hour';remediationpsmonitoringtopmonitoringiostatmonitoringvmstatmonitoringSELECT state, COUNT(*) AS connection_count, MAX(EXTRACT(EPOCH FROM (now() - state_change))) AS max_age_seconds FROM pg_stat_activity WHERE pid <> pg_backend_pid() GROUP BY state;diagnosticSELECT max_conn, used, max_conn - used AS available, ROUND((used::float / max_conn) * 100, 2) AS usage_percent FROM ( SELECT (SELECT setting::int FROM pg_settings WHERE name = 'max_connections') AS max_conn, (SELECT COUNT(*) FROM pg_stat_activity) AS used ) AS conn_stats;diagnosticSELECT count(*) AS active_autovacuum_workers FROM pg_stat_activity WHERE query LIKE 'autovacuum:%';diagnosticSELECT pid, query, now() - query_start AS duration FROM pg_stat_activity WHERE query LIKE 'autovacuum:%' ORDER BY query_start;diagnosticgcloud sql instances patch MY_INSTANCE --database-flags=autovacuum_max_workers=6remediationSELECT pid, datname, relid::regclass AS table_name, phase, heap_blks_total, heap_blks_scanned, ROUND(heap_blks_scanned::numeric / NULLIF(heap_blks_total, 0) * 100, 1) AS pct_complete, index_vacuum_count FROM pg_stat_progress_vacuum;monitoringTechnical References (24)
CloudWatch Database Insightscomponentaverage active sessionsconceptpgbenchcomponentPgBouncercomponent/etc/pgbouncer/pgbouncer.inifile pathconnection poolingconceptmax_connectionscomponentpgBouncercomponentpg_stat_activitycomponentpg_terminate_backend()component/var/run/postgresql/.s.PGSQL.5432file pathUnix domain socketprotocolpostgresql.conffile pathPgpool-IIcomponenttransaction modeconceptpgpool-IIcomponentpg_stat_replicationcomponentpg_stat_databasecomponentpg_stat_iocomponentEXPLAINcomponentcumulative statistics systemconceptpg_stat_activity_countcomponentautovacuum workerscomponentpg_stat_progress_vacuumcomponentRelated Insights (15)
Lock manager contention reduces throughput by up to 34 percent under high concurrencywarning
▸
Connection limit exhaustion causes memory pressure and context-switching overheadcritical
▸
Excessive max_connections consumes memory and requires connection poolingwarning
▸
High connection count approaching limits degrades monitoring performancewarning
▸
Connection exhaustion prevents new client connectionscritical
Each PostgreSQL connection consumes 5-10MB RAM via fork model. At 200 connections: 1-2GB RAM overhead before queries run. At 500+ connections: excessive context-switching dominates query execution time. Database becomes unresponsive under concurrent load.
▸
PostgreSQL server process not running causes connection refusalcritical
▸
Connection slots exhausted preventing new client connectionscritical
▸
Connection spikes without pooling exhaust backend workerscritical
▸
Connection limit approaching maximum causes application timeoutscritical
▸
Connection failure when requests exceed default 100 connection limitcritical
▸
Connection exhaustion blocks new client connectionscritical
▸
Statistics collection views provide core monitoring data for PostgreSQL operationsinfo
▸
Connection exhaustion prevents new client connectionscritical
▸
High connection count triggers alert thresholdwarning
▸
Autovacuum worker starvation delays vacuum on high-churn tableswarning
▸