Connection storm (conexões demais)
Você recebeu 'too many connections', 'remaining connection slots reserved' ou ORA-00018; novas conexões estão sendo rejeitadas. Encontre a origem, alivie a pressão agora e corrija de vez.
Meça a situação: quantas conexões, e quantas estão ativas?
Primeiro olhe o total de conexões, o limite e a divisão entre ativas/ociosas.
SELECT status, COUNT(*) FROM v$session WHERE type='USER' GROUP BY status;
SELECT name, value FROM v$parameter WHERE name IN ('processes','sessions');- A maioria das conexões está idle / idle in transaction
- A maioria está ativa; preciso encontrar a origem
Quem/de onde? Agrupe as conexões por origem
Geralmente o pool de um único servidor de aplicação estourou ou há um vazamento de conexões. Olhe a distribuição por host/usuário/aplicação.
SELECT client_addr, usename, application_name, count(*) FROM pg_stat_activity GROUP BY 1,2,3 ORDER BY 4 DESC;- Uma única aplicação/host estourou as conexões (pool)
- A carga realmente aumentou; todas são legítimas e ativas
Causa raiz: acúmulo de conexões ociosas / vazamento
As conexões são abertas e nunca fechadas, ou ficam 'idle in transaction'; elas ocupam slots à toa.
Causa raiz: o pool da aplicação estourou
O pool de conexões de um servidor de aplicação está ilimitado/grande demais ou vazando. É ele que está gerando as conexões.
Causa raiz: aumento real de carga
As conexões são legítimas e ativas; a capacidade realmente é insuficiente.