Pular para conteúdo

PG-LONGTX-001 · Transações longas ou sessões "idle in transaction"

Severidade Confiança Permissão Aplica-se a
Alta Confirmado pg_monitor (pg_read_all_stats) PostgreSQL 14+, RDS, Aurora, Azure Flexible

O que verifica

Sessões de clientes em pg_stat_activity com transação aberta há mais de 5 minutos (max_tx_s: 300), ou em idle in transaction há mais de 60 segundos (idle_tx_s: 60). Mostra quem (usuário, aplicação, endereço) e a última consulta.

Por que importa

A transação aberta mais antiga define o horizonte do vacuum no cluster inteiro: linhas mortas mais novas que ela não podem ser removidas, e tabelas e índices incham. Ela também pode segurar locks que bloqueiam outras sessões.

Próxima ação

Encontre a aplicação de cada pid. idle in transaction quase sempre é um COMMIT esquecido ou uma conexão devolvida ao pool no meio da transação. Como rede de proteção:

ALTER SYSTEM SET idle_in_transaction_session_timeout = '10min';
SELECT pg_reload_conf();

Limitações

Um retrato só vê as transações abertas no momento da verificação.